2006-08-07 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2
3         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
4         Hopefully fixes #78949.
5         
6         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
7         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
8         bytes. Fixes #78972.
9
10 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11
12         * filewatcher.c: we need to set errno here.
13
14 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15
16         * filewatcher.c: let Win32Exception get the error value.
17
18 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19
20         * filewatcher.c: translate errno into win32 errors for Win32Exception
21         to know what happened.
22
23 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
24
25         * threadpool.c: Fix more warnings.
26
27         * assembly.c (search_loaded): Fix warnings.
28
29         * threadpool.c (mono_thread_pool_finish): Fix warnings.
30         (mono_async_invoke): Ditto.
31
32 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
33
34         * object.c (mono_remote_class_vtable): Need to create proxy vtable
35         entries for __ComObject type in addition to ComImport types.
36         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
37         about hash table.
38         
39         All code is contributed under the MIT/X11 license.
40
41 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
42
43         * image.c: avoid tentative loading of modulerefs that contain
44         no metadata (P/Invoke library names).
45
46 2006-07-28  Dick Porter  <dick@ximian.com>
47
48         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
49         mono_loader_lock() somewhere, so don't delete the critical section
50         for now.  Found by running and exiting monodevelop.
51
52 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
53
54         * filewatcher.c: define the inotify syscalls when we're building on
55         linux and have sys/syscall.h. The build system might not have support
56         for inotify but the target system might have it.
57
58 2006-07-26  Miguel de Icaza  <miguel@novell.com>
59
60         * domain.c: Documentation updates.
61
62         * loader.c (mono_free_method): Do not release the method
63         information if we are being profiled, as profilers will use this
64         information at shut down to present some data to the user.
65
66         This is needed so that the profiler does not crash, as the
67         profiler tends to keep MonoMethods around, and they might become
68         invalid if we free these.
69
70         (mono_get_method_constrained): Return the original CIL stream
71         method as well, so verification can be performed against it.
72
73 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
74
75         * filewatcher.[ch]: support for inotify file system watcher.
76         * icall.c: add new internal calls for the inotify file system watcher.
77
78 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
79
80         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
81         #78888.
82
83 2006-07-20  Dick Porter  <dick@ximian.com>
84
85         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
86         warning.
87
88 2006-07-20  Dick Porter  <dick@ximian.com>
89
90         * threads.c (start_wrapper): Do the thread cleanup while we still
91         hold a reference to its object.  Fixes bug 78123.
92
93 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
94
95         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
96         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
97           "managed-to-managed".
98         * icall.c: Redirect string constructors that take sbyte* to
99           ves_icall_System_String_ctor_RedirectToCreateString.
100         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
101           to CreateString () methods with matching signature.
102         * reflection.c: Use original security informations for
103           MONO_WRAPPER_MANAGED_TO_MANAGED.
104         * security-manager.c: Use original security informations for
105           MONO_WRAPPER_MANAGED_TO_MANAGED.
106         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
107           that is a placeholder and only its address should be used.
108         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
109           that is a placeholder and only its address should be used.
110
111 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
112
113         Begin implementing COM Interop.
114         * appdomain.c: Increment corlib version.
115         * class.c: Set ComImport classes' parent to __ComObject.
116         * loader.c: Mark cominterop methods as such.
117         * domain.c: Add __ComObject class to MonoDefaults structure.
118         * image.c: Add 2 hashtables to the image for COM Interop related methods
119         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
120         using the mempool allocator
121         
122         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
123         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
124         declaration for mono_metadata_type_dup_mp.
125         
126         * debug-helpers.c: Added strings for two additional wrapper types
127         * object.c: Create proxy objects for ComImport classes
128         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
129         and added __ComObject class to MonoDefaults structure.
130         
131         * object-internals.h: Finish MonoRealProxy definition, and add definition of
132         MonoComInteropProxy and MonoComObject.
133         
134         * marshal.c: Added support for COM Interop
135         (signature_cominterop): Converts managed signature to corresponding
136         unmanaged COM signature.
137         (cominterop_get_function_pointer): gets unmanaged function pointer via
138         COM object vtable
139         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
140         (cominterop_get_method_interface): returns interface type that method is defined on
141         (mono_mb_emit_cominterop_call): emits native call to function pointer
142         gotten from vtable
143         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
144         that matches signature of unmanaged function.
145         (cominterop_get_native_wrapper): wrapper around adjusted method call.
146         (cominterop_get_invoke): forwards call from proxy to __ComObject
147         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
148         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
149         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
150         
151         * marshal.h: Added Marshal icall declarations.
152         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
153         so we can access them in finalizer
154         
155 2006-07-14  Dick Porter  <dick@ximian.com>
156
157         * object.c (mono_type_initialization_cleanup): Fix a race
158         condition by temporarily commenting out the critical section
159         deletion.
160
161 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
162
163         * reflection.c (create_custom_attr): Fix some warnings.
164         (create_custom_attr_data): Ditto.
165         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
166         types. Fixes #78855.
167
168 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
169
170         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
171
172         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
173
174 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
175
176         * reflection.c (resolve_object): Add support for DynamicMethod.
177
178         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
179         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
180
181 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
182
183         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
184         don't leak GPtrArray's pdata has we have no use (nor free) for it.
185
186 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
187
188         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
189         Fixes #77888.
190
191 2006-06-30  Raja R Harinath  <rharinath@novell.com>
192
193         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
194         slightly: remove a shadow local variable.
195
196 2006-06-29  Raja R Harinath  <rharinath@novell.com>
197
198         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
199         definition that introduces the virtual function slot.
200         Also fix Coverity #105.
201
202 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
203
204         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
205         for dynamic assemblies. Fixes #78724.
206
207 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
208
209         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
210         Fixes #78722.
211
212 2006-06-21  Martin Baulig  <martin@ximian.com>
213
214         * reflection.c
215         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
216         fixes #76484.
217
218 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
219
220         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
221
222 2006-06-20  Raja R Harinath  <rharinath@novell.com>
223
224         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
225         nor TYPEREFs.
226         * class.c (mono_class_create_from_typespec): Add 'context' argument.
227         Inflate result if necessary.
228         (mono_class_get_full): Remove old version.  Rename from
229         'mono_class_get' and add 'context' argument.  Pass it to
230         ..._create_from_typespec.
231         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
232         (mono_ldtoken): Revert change below.
233
234 2006-06-20  Martin Baulig  <martin@ximian.com>
235
236         * class.c (mono_ldtoken): Don't pass the generic context to
237         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
238
239 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
240
241         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
242         and later freeing it. Fixes #78638.
243
244 2006-06-15  Miguel de Icaza  <miguel@novell.com>
245
246         * icall.c (mono_class_get_throw): Revert over-zealous error
247         throwing, the caller for mono_class_get_throw will cope with
248         errors when classes are not properly initialized already.
249
250         The code still copes with loader exceptions though.
251
252         Fixes the regression in reftype1 and reftype3 from the CAS tests.
253         
254 2006-06-14  Miguel de Icaza  <miguel@novell.com>
255
256         Fixes the `make run1' version of RuntimeAbort (to be commited,
257         source is in Bugzilla).
258         
259         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
260         FALSE on class loading failure instead of returning true.
261
262         * class.c (mono_class_create_from_typedef): It is possible for
263         mono_metadata_interfaces_from_typedef_full to fail if a class is
264         not found, cope with this.
265         
266
267 2006-06-14  Dick Porter  <dick@ximian.com>
268
269         * socket-io.c: 
270         * process.c: Fix a bunch of signed/unsigned warnings from gcc
271         4.1.1
272
273 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
274
275         * culture-info-table.h : oops, forgot to make it nsync with r61548.
276
277 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
278
279         * icall.c: Another fix for building mono in Visual Studio.
280
281 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
282
283         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
284         
285 2006-06-09  Martin Baulig  <martin@ximian.com>
286
287         * debug-mono-symfile.c: Put this back and really fix it this
288         time. Sorry for all the trouble.
289
290 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
291
292         * icall.c (mono_class_get_throw): Fix a warning.
293         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
294         ReflectionTypeLoadException if needed. Fixes #78606.
295
296         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
297         (mono_class_init): Ditto.
298
299         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
300         ref_only exceptions.
301         (mono_loader_clear_error): Make this work even if there is no error.
302
303 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
304
305         * object-internals.h marshal.c marshal.h icall.c: Implement method 
306         Marshal.GetComSlotForMethodInfo using internal call.
307
308 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
309
310         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
311         a function for signalling it.
312
313         * class.c (mono_class_from_typeref): Use the new kind of loader error when
314         a referenced assembly is not found.
315
316         * loader.c (mono_loader_error_prepare_exception): Add support for 
317         LOADER_ERROR_ASSEMBLY. Fix formatting.
318
319 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
320
321         * domain.c appdomain.c class-internals.h marshal.c: Add support 
322         for VARIANT marshalling on windows and increment corlib version
323         since Variant struct was added.
324
325 2006-06-03  Miguel de Icaza  <miguel@novell.com>
326
327         * debug-mono-symfile.c: Revert Martin's previous patch which broke
328         stack trace line information:
329
330         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
331         (Martin) when looking up B which is between A and C, return A not C.
332
333         Bug is #78573.
334
335         Thanks to Alexander Olk for tracking this down.
336
337 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
338
339         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
340         
341         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
342         avoid clobbering its value.
343         (mono_string_to_lpstr): Fix a warning on windows.
344
345 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
346
347         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
348
349         * reflection.c loader.c: Removed references to 'dummy' flag.
350
351         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
352
353         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
354         it gets GC tracking.
355
356         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
357         GC tracking.
358         
359         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
360
361         * marshal.c threadpool.c: Update callers of mono_async_result_new.
362
363         * appdomain.c: Bump corlib version.
364
365 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
366
367         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
368         CEE_STIND_REF when working with object references.
369
370 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
371
372         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
373         Fixes #78539.
374
375 2006-05-30  Miguel de Icaza  <miguel@novell.com>
376
377         * loader.c (method_from_memberref): Fix argument value for
378         mono_loader_set_error_method_load (I was passing the MonoClass
379         instead of the class name char *).
380
381 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
382
383         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
384         CEE_STIND_REF when working with object references.
385
386 2006-05-30  Martin Baulig  <martin@ximian.com>
387
388         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
389         mono_method_full_name() change and replace the ':' with a '.'
390         here.
391
392 2006-05-30  Martin Baulig  <martin@ximian.com>
393
394         * debug-mono-symfile.c
395         (mono_debug_symfile_lookup_location): Fix the algorithm:
396         when looking up B which is between A and C, return A not C.
397
398 2006-05-29  Martin Baulig  <martin@ximian.com>
399
400         * mono-debug.h
401         (MonoDebugMethodInfo): Make the typedef public.
402         (MonoDebugSourceLocation): New public struct.
403
404         * mono-debug.c
405         (mono_debug_source_location_from_address): Removed.
406         (mono_debug_source_location_from_il_offset): Removed.
407         (mono_debug_il_offset_from_address): Removed.
408         (mono_debug_address_from_il_offset): Removed.
409         (mono_debug_lookup_method): New public function.
410         (mono_debug_lookup_source_location): New public function; replaces
411         the old mono_debug_source_location_from_*() functions; see the
412         inline documentation.
413         (mono_debug_free_source_location): New public function.
414         (mono_debug_print_stack_frame): New public function; see the
415         inline documentation.
416
417         * debug-mono-symfile.c
418         (mono_debug_find_source_location): Renamed into
419         mono_debug_symfile_lookup_location(); only take a
420         `MonoDebugMethodInfo *' and an `offset' argument; added inline
421         documentation.
422         (mono_debug_find_method): Renamed into
423         mono_debug_symfile_lookup_method().
424
425 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
426
427         * assembly.c (mono_assembly_open_full): Dont overwrite the status
428         returned by mono_image_open_full ().
429
430         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
431         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
432         #78517.
433
434         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
435         #78518.
436
437 2006-05-27  Miguel de Icaza  <miguel@novell.com>
438
439         * class.c (mono_class_from_typeref): handle missing images
440         earlier, deals with bug #78418.   Refactor code; 
441
442         Fix a warning introduced in my previous commit (some stale code
443         from before I revisited my patch).
444
445         * class.c (mono_class_create_from_typedef): On failure, remove the
446         class from the MonoImage->class_cache as the class is not
447         initialized;   Fixes the leak pointed out by Paolo.
448
449 2006-05-25  Dick Porter  <dick@ximian.com>
450
451         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
452         DeleteCriticalSections until I figure out which one may still be
453         sometimes locked when mono_thread_cleanup is called.
454
455 2006-05-24  Dick Porter  <dick@ximian.com>
456
457         * threads.c (mono_thread_cleanup): Move the threading cleanup out
458         of mono_thread_manage and back into its own function, so it can be
459         called after the finalizer thread has finished.
460
461         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
462
463 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
464
465         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
466         Fixes #78495.
467
468         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
469         with non-blittable elements.
470         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
471
472 2006-05-24  Martin Baulig  <martin@ximian.com>
473
474         * mono-debug-debugger.h (MonoDebuggerEvent): Added
475         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
476
477         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
478         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
479         `mono_debugger_event_handler' to NULL.
480
481 2006-05-24  Martin Baulig  <martin@ximian.com>
482
483         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
484
485 2006-05-24  Martin Baulig  <martin@ximian.com>
486
487         * mono-debug-debugger.h
488         (mono_debugger_create_notification_function): Added
489         `MonoCodeManager *' argument.
490
491 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
492
493         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
494
495 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
496
497         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
498         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
499         implementation.
500
501 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
502
503         * icall.c: precise GC support: objects can't be stored in unmanaged
504         memory anymore, even if they are kept alive by other references: since
505         they can move the GC needs to be able to always find them.
506
507 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
508
509         * object.c: precise GC support for static fields. Support
510         for moving GCs: write barriers and pinned allocation for interned
511         strings.
512
513 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
514
515         * domain.c, domain-internals.h: precise GC support for the MonoDomain
516         structure.
517
518 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
519
520         * class.c, gc.c: sgen and precise GC updates.
521
522 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
523
524         * marshal.h, marshal.c: added write barrier wrapper and precise type
525         fixes.
526
527 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
528
529         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
530         support.
531
532 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
533
534         * reflection.c: precise and sgen GC updates.
535
536 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
537
538         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
539
540 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
541
542         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
543
544 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
545
546         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
547         MONO_TYPE_OBJECT. Fixes #78462.
548
549 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
550
551         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
552         and blittable types.
553
554 2006-05-17  Miguel de Icaza  <miguel@novell.com>
555
556         * class.c (mono_class_get_exception_for_failure): Implement parts
557         of a TODO: if the loader error is set (instead of the class
558         error), we return a Loader exception that can be properly thrown
559         elsewhere.
560
561         This was exposed by some Winforms 2.0 code that I tried to run
562         (Atsushi pointed me to it).
563
564 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
565
566         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
567         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
568         
569         * marshal.c (emit_marshal_vtype): Add limited support for 
570         UnmanagedType.LPStruct. Fixes #78427.
571
572         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
573         Applied a patch from kangaroo to fix #77523.
574
575 2006-05-17  Martin Baulig  <martin@ximian.com>
576
577         * threads.c
578         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
579         (debugger_thread_created): Removed.
580         (debugger_thread_exited): Removed.
581
582 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
583
584         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
585
586         * object-internals.h (MonoReflectionResource): Sync with managed version.
587
588 2006-05-12  Wade Berrier <wberrier@novell.com>
589
590         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
591
592 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
593
594         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
595         functions try to allocate from the image mempool.
596
597 2006-05-12  Dick Porter  <dick@ximian.com>
598
599         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
600
601 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
602
603         * object.c: The FieldGetter and FieldSetter methods require the full
604         name of the class, not only the name. Fixes bug #78277.
605
606 2006-05-11  Miguel de Icaza  <miguel@novell.com>
607
608         * loader.c (method_from_memberref): Do not pass the NULL klass to
609         mono_loader_set_error_() methods.  Pass the non-NULL value
610         (class). 
611
612 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
613
614         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
615         (mono_assembly_close): Null out assembly->image->references after freeing it.
616
617         * image.c (mono_image_close): Free image->references.
618         
619         * reflection.c (mono_image_basic_init): Fix a small memory leak.
620
621 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
622
623         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
624         before checking if it's NULL (g_assert).
625
626 2006-05-10  Martin Baulig  <martin@ximian.com>
627
628         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
629         I thought I already killed that two months ago, but now it somehow reappeared.
630
631 2006-05-10  Martin Baulig  <martin@ximian.com>
632
633         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
634
635 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
636
637         * reflection.c: Allocate memory for dynamically created methods in the image
638         mempools.
639
640 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
641
642         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
643         don't use the ad pointer before checking if it's NULL (g_assert).
644
645 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
646
647         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
648         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
649
650         * marshal.c: Allocate all signatures from mempools.
651
652         * marshal.c: Allocate some more signatures from mempools.
653
654 2006-05-09  Miguel de Icaza  <miguel@novell.com>
655
656         * object.c (mono_load_remote_field): The code used to provide a
657         temporary variable for returning results if the user did not
658         provide a result pointer.  But our temporary variable was allocted
659         on the satck.
660
661         Fix calling code to always pass a result area.   Coverity ID 103.
662
663 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
664
665         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
666         value, not the old. Fixes #78312.
667         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
668
669         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
670         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
671         per-image cache.
672
673         * assembly.c (mono_assembly_close): Free image->references.
674
675         * assembly.c (mono_assembly_names_equal): Fix a warning.
676         (mono_assemblies_cleanup): Cleanup more global data.
677
678         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
679
680         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
681         ptr_cache and image->modules.
682
683         * image.c (mono_image_init): Allocate array_cache lazily.
684         
685 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
686
687         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
688         behavior was changed recently and has bad side effects.
689
690 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
691
692         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
693         
694         * assembly.c (mono_assembly_close): Remove a debug printf.
695
696         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
697
698         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
699         to also allow for temporary references between mono_image_open ()/close ().
700
701         * domain.c (get_runtimes_from_exe): Add a FIXME.        
702
703 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
704
705         * marshal.c: Fix support for dynamic methods.
706
707         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
708
709         * marshal.c (mono_marshal_cleanup): New cleanup function.
710
711         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
712         image mempools.
713
714         * class.c (mono_class_init): Fix leaking class->nested_classes.
715
716         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
717
718         * image.c (mono_image_init): Initialize the new cashes.
719
720         * image.c (mono_image_close): Destroy the new cashes.
721
722         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
723
724         * mempool.c (mono_mempool_strdup): New helper function.
725
726         * class-internals.h: Add prototype for mono_loader_unlock ().
727
728         * domain.c (mono_jit_info_table_find): Fix a warning.
729         (mono_debugger_check_runtime_version): Ditto.
730
731         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
732         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
733         functions to these modules.
734
735         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
736         metadata modules.
737         
738         * marshal.c (mono_free_bstr): Fix a warning.
739
740         * assembly.c (mono_assembly_open_full): Fix another small leak.
741
742         * object.c: Fix some unload leaks in the remoting code.
743
744         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
745         function.
746
747         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
748
749         * reflection.c: Fix some unload leaks in dynamic assemblies.
750
751 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
752
753         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
754         * marshal.h: Add BSTR support on Win32
755         * icall.c: Add BSTR icalls
756         * metadata.h: Add BSTR enums
757
758 2006-04-28  Miguel de Icaza  <miguel@novell.com>
759
760         Work to catch the crash from #76795 and turn it into an
761         exception.   As I stubbed out pieces of the VisualBasic support,
762         I found a number of places where the code was failing and I added
763         checks to those places. 
764         
765         * metadata.c (do_mono_metadata_parse_generic_class): Make this
766         function return a status code.  If we fail to parse the signature
767         from mono_metadata_parse_generic_inst, return FALSE.
768
769         * loader.c (mono_get_method_from_token): If we fail to load the
770         method (mono_class_get) return NULL.   
771
772         * (method_from_memberref): Return NULL if we are unable to parse
773         the method signature
774
775         (mono_loader_error_prepare_exception): Since we now use the
776         loader_error flag internally to stop processing, and obtaining
777         exceptions that might be thrown will walk this code path the
778         proper way of going from a MonoLoaderError into a
779         MonoException was convoluted.   This new routine encapsulates the
780         process of turning the error into an exception and *clearing* the
781         error afterwards.
782         
783 2006-04-27  Miguel de Icaza  <miguel@novell.com>
784
785         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
786         with missing assemblies), and to cope with:
787
788                 * Missing fieldref from a non-existing assembly.
789                 * Missing methodref from a non-existing assembly.
790
791         The first batch of work to address *some* of the issues from 76661.
792         
793         * object.c (mono_class_create_runtime_vtable): If we fail to
794         initialize the class raise the exception here. 
795
796         * metadata.c (mono_class_get_overrides_full): If any methods fail
797         to load return the failure to the caller.
798
799         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
800         flagging assemblies that failed to load.   
801
802         Do not crash if we are unable to load the assembly.
803
804         (mono_assembly_close): Do nothing with REFERENCE_MISSING
805         assemblies. 
806
807         * loader.c (mono_loader_set_error_type_load): Change the
808         convention to always pass unallocated strings, so we make our own
809         copies (I know our own code had duplicated strings before, but
810         this keeps the normal conventions).
811         (method_from_memberref): Call mono_loader_set_error_method_load
812         for all possible failures of loading the class. 
813         Remove assert, turn into a loader error.
814
815         (mono_loader_error_to_exception): Move this routine from mini
816         (mini_loader_error_to_exception) there was no need to have that in
817         mini. 
818
819         * class.c (mono_class_from_typeref): If we were not able to load
820         the assembly with mono_assembly_load_reference, call the
821         mono_loader_set_error_type_load to register the problem.
822
823         (mono_class_setup_fields): If we fail to load the type from
824         mono_metadata_parse_type_full, call mono_class_set_failure and
825         break from the loop.
826
827         If class->exception_type is set, we do not layout the fields as
828         that might crash the runtime, and instead return (from breaking
829         from the previous loop).
830
831         (mono_class_setup_vtable): This now returns a boolean indicating
832         whether the table was properly setup.   The decision is driven by
833         mono_class_get_overrides_full which might run into non-existing
834         methods. 
835         
836         (mono_class_init): Returns TRUE on success or FALSE if there was a
837         problem in loading the type (incorrect assemblies, missing
838         assemblies, methods, etc).
839
840         When we call mono_class_setup_fields we also check for a potential
841         error inside this call (either a class exception or a general
842         loader exception).
843
844         (mono_class_create_from_typedef): If the parent fails to load
845         (calling mono_class_get_full) return NULL.
846         
847         ** Important **
848
849         calls to mono_metadata_parse_type_full should be checked
850         everywhere and set the mono_class_set_failure
851         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
852
853         The current patch checks the places where my manually constructed
854         tests show the errors are showing up, but we should do it
855         everywhere. 
856
857         ** Important2 **
858
859         mono_class_init return values should be tested everywhere, like
860         the previous case this is something that we should audit
861         everywhere and not only on the cases exposed by the tests I
862         created. 
863
864 2006-04-26  Miguel de Icaza  <miguel@novell.com>
865
866         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
867         boolean parameter and instead pass the information on `options'
868         parameter (FileOptions).
869
870         * icall.c: Register the new signature for MonoIO.Open.
871
872         * debug-helpers.c (dis_one): Trying to understand how coverity
873         works.  Fix Run 5, item 78.
874
875 2006-04-26  Dick Porter  <dick@ximian.com>
876
877         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
878         dereference.
879
880 2006-04-25  Martin Baulig  <martin@ximian.com>
881
882         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
883
884         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
885         debugger_thread_created().
886         (debugger_gc_push_all_stacks): Don't handle the main thread in any
887         special way.
888         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
889         (mono_debugger_finalize_threads): New function; undo the effects
890         of mono_debugger_init_threads().
891         (mono_debugger_create_all_threads): Removed.
892
893 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
894
895         * image.c (mono_image_close): Tidy up trace messages.
896
897         * assembly.c (mono_assembly_close): Ditto.
898
899         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
900         no longer references an already freed assembly. Fixes #78168.
901
902 2006-04-21  Dick Porter  <dick@ximian.com>
903
904         * threads.c (mono_thread_detach): Fix reference counting when
905         detaching threads.
906
907 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
908
909         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
910         #78155.
911
912 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
913
914         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
915         (mono_type_to_stind): Ditto.
916
917         * marshal.c: Use the new helper functions to simplify code.
918
919         * image.c (mono_image_close): Add some code for help debug assembly unloading
920         problems.
921
922         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
923         image mempool.
924
925         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
926         assembly was already loaded in another appdomain. Fixes #78083.
927
928 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
929
930         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
931         referenced assemblies.
932         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
933
934         * domain.c (mono_domain_free): Add a trace message.
935
936         * appdomain.c (add_assemblies_to_domain): Ditto.        
937
938         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
939         field.  
940
941 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
942
943         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
944
945 2006-04-12  Martin Baulig  <martin@ximian.com>
946
947         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
948         `USE_INCLUDED_LIBGC'.   
949
950 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
951
952         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
953         the patch contains ../ and a small directory name later. Hopefully fixes
954         #78035.
955
956 2006-04-10  Martin Baulig  <martin@ximian.com>
957
958         Clean up the debugger's thread-handling code.
959
960         The debugger's thread-handling code has been moved from
961         ../mini/debug-debugger.c to threads.c.  We now iterate directly
962         over the `threads' hash, keep track of exiting threads and also
963         use proper locking.
964
965         We can now debug XSP and XSP based applications with the debugger.
966
967         * object-internals.h (MonoThread): Added `gpointer end_stack'.
968
969         * threads.h
970         (MonoThreadCallbacks): Removed; this was only used by the debugger.
971         (mono_install_thread_callbacks): Likewise.      
972
973         * threads.c (mono_thread_callbacks): Removed.
974         (debugger_thread_created, debugger_thread_exited): New static functions.
975         (start_wrapper): Call debugger_thread_created().
976         (thread_cleanup): Call debugger_thread_exited().
977         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
978         (mono_debugger_init_threads): New public function.
979         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
980         iterate directly over the `threads' hash and also use proper locking.
981
982         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
983
984         * mono-debug-debugger.h
985         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
986
987 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
988
989         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
990         argument type=array. Fixes #78057.
991
992 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
993
994         * culture-info-table.h : regenerated. Fixed bug #69652.
995
996 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
997
998         * loader.c metadata.c: Reapply a variant r59116.
999         
1000         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1001
1002         * class.c (mono_class_setup_interface_offsets): New internal function.
1003
1004         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1005         interfaces too. Fixes #77398.
1006
1007         * reflection.c (encode_cattr_value): Add support for 
1008         parameter type=object, argument type=array.
1009         (load_cattr_value): Ditto. Fixes #77916.
1010
1011         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1012         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1013
1014         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1015         a byval char array and CharSet is Ansi.
1016
1017         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1018
1019 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1020
1021         * metadata.c: Add some locking comments.
1022         
1023         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1024         mempool.
1025         (mono_metadata_free_method_signature): Don't free the signature itself.
1026
1027         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1028
1029         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1030         reference the same MonoImage.
1031         (mono_assembly_load_from_full): Add an assert.
1032
1033 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1034
1035         * image.c (mono_image_close): Don't put the image we are about to free into the
1036         loaded_images_guid_hash.
1037
1038         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1039         to reduce code duplication.
1040
1041         * marshal.c: Register the native functions called by this module as icalls, to
1042         somewhat centralize the creation of MonoMethodSignature's.
1043
1044         * loader.c (mono_method_signature): Add a cache for method signatures.
1045
1046         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1047         the parameter attributes of a method.
1048         (mono_metadata_parse_method_signature_full): Refactored the computation of
1049         parameter attributes into a separate function. Also avoid one allocation in
1050         most cases.
1051
1052         * assembly.c (mono_assembly_close): Ditto.
1053
1054         * image.c (mono_image_close): Log trace messages with INFO level.
1055
1056         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1057
1058         * image.c reflection.c: Correct reference counting of image modules.
1059         
1060         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1061         of this function from the image mempool.
1062         
1063         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1064         to allow more cached types to be used.
1065
1066         * mono-debug.c (mono_debug_add_method): Appled patch from
1067         David S. Miller  <davem@sunset.davemloft.net>: Access 
1068         minfo->lexical_blocks[] entry elements using read32().
1069
1070 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1071
1072         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1073         methods as it is allocated from the mempool.
1074
1075         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1076         image mempool.
1077
1078         * metadata-internals.h: Add comments describing the reference counting scheme
1079         used for MonoImage and MonoAssembly.
1080
1081         * image.c assembly.c reflection.c: Rework reference counting of images and 
1082         assemblies so they are freed when the runtime is shut down. Free some 
1083         additional memory structures when an image is unloaded.
1084         
1085 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1086
1087         * class.c loader.c reflection.c: Allocate more data structures in
1088         the image mempool.
1089
1090 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1091
1092         * icall.c
1093         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1094         build on pre glib 2.4 systems.
1095
1096 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1097
1098         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1099
1100         * icall.c: Fix some warnings.
1101
1102 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1103
1104         * culture-info-table.h : regenerated.
1105
1106 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1107
1108         * threads.c, object-internals.h, verify.c: changed the culture caching
1109         code to use a normal MonoArray for storage so the GC can keep track of
1110         them easily. Fixed bits of the cache logic, too and simplified the
1111         code.
1112
1113 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1114
1115         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1116         thread for non-Boehm GCs.
1117
1118 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1119
1120         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1121         needed to keep track of the data for static fields.
1122
1123 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1124
1125         Fix #75172
1126         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1127         for interface classes.  Use 'num_methods' instead.
1128         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1129         before using '->vtable_size' field.
1130
1131 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1132
1133         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1134         doesn't contain managed pointers, so use a normal hashtable.
1135
1136 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1137
1138         * reflection.c, class-internals.h, domain.c: fixed handling of types
1139         used as values for objects in custom attributes (bug #77915):
1140
1141 2006-03-24  Martin Baulig  <martin@ximian.com>
1142
1143         * class.c (mono_class_setup_fields): Added support for generic
1144         instances; fixes #77580.
1145
1146 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1147
1148         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1149
1150 2006-03-24  Dick Porter  <dick@ximian.com>
1151
1152         * file-io.c (get_file_attributes): More stat macro breakage.
1153         Fixes bug 77759.
1154
1155 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1156
1157         * profiler.c: added the file=filename option in the default profiler
1158         to output the profile data to filename.
1159
1160 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1161
1162         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1163         bug #77877.
1164
1165 2006-03-22  Martin Baulig  <martin@ximian.com>
1166
1167         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1168         allocated `MonoClassField *' in `fb->handle'.
1169
1170 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1171
1172         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1173         allocate interface ID to save memory and allow better ID reuse on
1174         appdomain unload. setup_generic_vtable () removal from Martin.
1175
1176 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1177
1178         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1179         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1180         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1181         write barriers for reference stores with managed objects accessed with
1182         C structures in the runtime and in embedding programs.
1183
1184 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1185
1186         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1187         'interface_id' and 'max_interface_id' fields of MonoClasses
1188         representing open generic types.
1189
1190 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1191
1192         * object.h, object.c, icall.c: added functions to deal with
1193         storing valuetypes that contain references in managed objects.
1194         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1195         fixes and comments around uses of mono_array_addr ().
1196
1197 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1198
1199         * object.h, icall.c, monitor.c: object.GetHashCode ()
1200         implementation that supports the moving garbage collector.
1201
1202 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1203
1204         * icall.c, threads-types.h, threads.c: implemented finalizer for
1205         LocalDataStoreSlot.
1206
1207 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1208
1209         * metadata.c (mono_type_size): Add a fixme.
1210         (mono_type_stack_size): Ditto.
1211
1212         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1213         'type_forwarders' field.
1214
1215         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1216         attribute from net 2.0.
1217
1218         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1219         from class.c.
1220
1221         * class.c (mono_class_setup_fields): Fix a warning.
1222         
1223         * class.c (mono_class_from_name): Add support for assemblyref entries
1224         in the EXPORTEDTYPE table.
1225
1226         * reflection.c: Add support for handling type forwarders under net 2.0.
1227
1228         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1229         
1230 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1231
1232         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1233         overwriting entries in ModuleBuild->types, also clean up the code
1234         a little. Fixes #77774.
1235
1236 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1237
1238         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1239         load friend assembly info when present.
1240
1241 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1242
1243         Fix crasher on gtest-158.cs.
1244         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1245         the return value if the MonoClass we want is yet in an
1246         inconsistent state.
1247         * class.c (mono_class_create_from_typedef): Add an comment
1248         explaining an order dependency between mono_class_setup_parent and
1249         mono_class_setup_mono_type.
1250
1251 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1252
1253         * class.c: documentation updates and events bug fix.
1254
1255 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1256
1257         * class.c: some cleanup, locking fixes.
1258
1259 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1260
1261         * class.c: fix the generics code to setup nested
1262         type info to the instantiated type (bug #77770).
1263
1264 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1265
1266         * marshal.c: fixed a few type correctness issues.
1267
1268 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1269
1270         * loader.c: the Set/Get/Addrtess array methods should be public.
1271
1272 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1273
1274         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1275         
1276         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1277         info->wrapper.
1278
1279 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1280
1281         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1282
1283         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1284
1285         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1286         (mono_mempool_alloc0): Ditto.
1287
1288 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1289
1290         * socket-io.c:
1291         (create_object_from_sockaddr): it was allocating 4 extra bytes
1292         for the AF_UNIX data. Fixes bug #77747.
1293
1294 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1295
1296         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1297
1298 2006-03-09  Dick Porter  <dick@ximian.com>
1299
1300         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1301         Fixes bug 76966 again.
1302
1303 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1304
1305         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1306         names from r57532
1307         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1308
1309 2006-03-07  Martin Baulig  <martin@ximian.com>
1310
1311         * object.c
1312         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1313
1314 2006-03-07  Martin Baulig  <martin@ximian.com>
1315
1316         * class.c
1317         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1318         regression introduced in r56970; see gtest-252.cs.
1319
1320         * loader.c (mono_get_method_constrained): Correctly handle generic
1321         methods; see gtest-253.cs.
1322
1323 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1324
1325         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1326
1327 2006-03-04  Martin Baulig  <martin@ximian.com>
1328
1329         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1330         compute the parent type at runtime, just like we're already doing
1331         it for interfaces.
1332
1333         * reflection.c
1334         (mono_reflection_bind_generic_parameters): Don't compute the
1335         parent type anymore.
1336
1337         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1338
1339 2006-03-04  Martin Baulig  <martin@ximian.com>
1340
1341         * mono-debug-debugger.h
1342         (mono_debugger_create_notification_function): Allocate memory at
1343         runtime and return a pointer to it.
1344
1345 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1346
1347         * assembly.c: Fix windows build.
1348         
1349         * assembly.c: Fix build.
1350
1351         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1352
1353         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1354         
1355 2006-03-03  Dick Porter  <dick@ximian.com>
1356
1357         * process.c
1358         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1359         Check parameters before dereferencing them.  Fixes Aaron's part of
1360         bug 77393.
1361
1362 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1363
1364         Fix performance regression.
1365         * loader.c (find_method_in_class): Add 'from_class' argument.
1366         Rename 'klass' argument to 'in_class'.  The signature is compared
1367         against the method in 'in_class', and the corresponding method is
1368         returned from 'from_class'.
1369         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1370         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1371         type definition and generic instantiation in parallel.
1372         (mono_get_method_constrained): Update to changes.
1373
1374 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1375
1376         * threads.c: make sure the domain is correct, too when doing
1377         mono_thread_attach ().
1378
1379 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1380
1381         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1382         windows. Fixes #77683.
1383
1384 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1385
1386         * object.h, *: introduced specific way to set elements of an array
1387         of references to be used as write barrier. Still need to audit the
1388         uses of mono_array_addr.
1389
1390 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1391
1392         * object-internals.h: New field to cache the assmebly name, patch
1393         from Tambet Ingo (tambet@ximian.com)
1394
1395 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1396
1397         * decimal.h, class-internals.h, metadata-internals.h,
1398         file-io.h: mark a few function declarations as internal, to
1399         reduce the number of PLT entries.
1400
1401 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1402
1403         * file-io.c: fix typo in warning message.
1404
1405 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1406
1407         * loader.c: on unix, lookup the "*A" version of a function
1408         if charset is auto as a second option before failing.
1409
1410 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1411
1412         * class.h (mono_class_inflate_generic_method): Revert to two
1413         argument version.
1414         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1415         (mono_class_inflate_generic_method_full): Add.
1416         * class.c (mono_class_inflate_generic_method_full): Rename from
1417         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1418         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1419         * loader.c, reflection.c: Update to changes.
1420
1421 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1422
1423         * icall.c: const fixes and small improvements.
1424
1425 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1426
1427         * threadpool.c: for asynchronous connect(), enable the same workaround
1428         for BSD 6 as for the Mac. Fixes bug #77637.
1429
1430 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1431
1432         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1433         formatted classes. Fixes #77524.
1434
1435 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1436
1437         * class.c (inflate_generic_type): Add a couple more
1438         micro-optimizations.
1439         (inflate_generic_context): Don't use the 'gmethod' from
1440         'inflate_with'.
1441         (mono_class_inflate_generic_method): If the method has generic
1442         parameters, but the passed-in context doesn't have a 'gmethod',
1443         create one.  Use the possibly simplified generic instantiation
1444         from the declaring class instead of the one passed in.
1445
1446 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1447
1448         Make generic method signature and method header handling lazy.
1449         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1450         (inflate_generic_header): Likewise.
1451         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1452         parameter to avoid inflating types.
1453         (mono_get_inflated_method): Empty out.
1454         * class.h (mono_class_inflate_generic_method): Update to changes.
1455         * loader.c (mono_get_method_from_token): Don't parse signature for
1456         generic methods, nor methods of generic classes.
1457         (mono_method_signature): Rename from 'mono_method_signature'.
1458         Inflate signature on demand.
1459         (mono_method_get_header): Inflate method header on demand.
1460         * reflection.c: Update to changes.
1461
1462 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1463
1464         * metadata.c (mono_metadata_inflate_generic_inst): If the
1465         instantiation is closed, don't bother expanding it in the new
1466         context.
1467         * class.c (inflate_generic_class): If the generic instantiation
1468         doesn't change after inflation, return the argument itself.
1469         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1470         Add bounds checks.
1471         (inflate_generic_context): If neither the generic class nor the
1472         generic method instantiations change, return the original context.
1473         * reflection.c (mono_method_get_object): Do
1474         'mono_get_inflated_method' before accessing the ->klass field.
1475         (inflate_mono_method): Don't create a MonoGenericMethod unless
1476         necessary.
1477         (inflate_method): Don't pass a constructed type as the declaring
1478         type of a methodbuilder.
1479
1480 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1481
1482         * object.c: fix memory overwrite.
1483
1484 2006-02-22  Dick Porter  <dick@ximian.com>
1485
1486         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1487         it doesn't work any more.
1488         (mono_threads_request_thread_dump): Fix unused variable warnings.
1489
1490 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1491
1492         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1493         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1494         the public header file.
1495
1496 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1497
1498         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1499
1500 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1501
1502         * class-internals.h, object.c: reduce the size of MonoVTable
1503         and store the interface_offsets array at negative offsets.
1504
1505 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1506
1507         * metadata.c: tweak table descriptors data structures to reduce
1508         size and runtime relocations.
1509
1510 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1511
1512         * marshal.c: fix some types and opcodes to be type-safe
1513         in marshaling wrappers.
1514
1515 2006-02-21  Ankit Jain  <jankit@novell.com>
1516
1517         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1518
1519 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1520
1521         * metadata.c (get_constraints): Relax debugging checks for monodis.
1522
1523 2006-02-21  Ankit Jain  <jankit@novell.com>
1524
1525         * metadata.c (mono_metadata_load_generic_params): Move the code
1526         checking for ambiguous generic params from here to mono/dis/get.c
1527         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1528
1529 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1530
1531         Fix assertion triggered when compiling nemerle.
1532         * class.c (mono_get_shared_generic_inst): Rename from
1533         get_shared_inst and make non-static.
1534         * loader.c (mono_get_shared_generic_method): New.  Used to create
1535         the MonoGenericContext-equivalent of a MonoGenericContainer.
1536         (mono_get_method_from_token): Initialize the 'context' field of
1537         the created MonoGenericContainer.
1538         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1539         * metadata.c (get_constraints): Add sanity check.
1540         * class-internals.h: Add new internal methods.
1541
1542         * reflection.c (verify_safe_for_managed_space): New sanity check.
1543         Currently checks that owner-less generic parameters aren't allowed
1544         in managed space.
1545         (mono_type_get_object): Use it.
1546         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1547         that are now in mono_type_get_object.
1548         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1549
1550 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1551
1552         * metadata.c (mono_type_create_from_typespec): Rename from
1553         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1554         argument and caching of types in the generic container.
1555         (unwrap_arrays, find_generic_param): Remove.
1556         * metadata-internals.h: Update.
1557         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1558
1559 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1560
1561         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1562
1563         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1564         return values. Fixes #77581.
1565
1566         * class.c (mono_fnptr_class_get): Switch name and name_space.
1567
1568         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1569         classes and add support for [In, Out] attributes.
1570         (mono_marshal_free_asany): Ditto. Fixes #77524.
1571
1572 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1573
1574         * class.c (mono_class_from_generic_parameter): Make more robust to
1575         incomplete MonoGenericContainers from monodis.
1576
1577 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1578
1579         * class-internals.h: added some more exception types.
1580         * class.c, metadata.c: added a few checks to handle missing
1581         types.
1582
1583 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1584
1585         Use owner-less generic-params some more.
1586         * class.c (my_mono_class_from_generic_parameter): Remove.
1587         (mono_class_from_generic_parameter): Handle null image,
1588         param->name and param->owner.
1589         (mono_class_from_mono_type): Update.
1590         (mono_class_create_from_typespec): Remove 'container' parameter.
1591         If that parameter is non-null, the result is always inflated by
1592         'mono_class_get_full' anyway.
1593         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1594         parameter.
1595         (mono_class_get_full): Update.
1596
1597         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1598         instance is not open, don't bother inflating.
1599         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1600         parse metadata for inflated classes.
1601         (_mono_class_get): Change GenericContext* parameter to
1602         GenericContainer*.
1603         (mono_class_create_from_typespec): Likewise.  Simplify, and
1604         implement trivially.  All the cases are handled in
1605         mono_class_from_mono_type.  Don't inflate returned class.
1606         (mono_class_get_full): Delegate GENERICINST optimization to
1607         inflate_generic_type.
1608         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1609
1610 2006-02-16  Dick Porter  <dick@ximian.com>
1611
1612         * socket-io.c (create_object_from_sockaddr): Fix typo.
1613         (create_sockaddr_from_object): Check array lengths before
1614         potentially accessing items off the end.
1615         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1616         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1617         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1618         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1619         length checks to avoid wraparound overflows.
1620         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1621         contents of the array of sockets
1622         (hostent_to_IPHostEntry2)
1623         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1624         Check return value of inet_ntop ().
1625         (addrinfo_to_IPHostEntry): Fix typo
1626
1627 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1628
1629         Type metadata parsing doesn't use generic-instantiation information.
1630         * metadata.c (mono_metadata_parse_array_full): Change
1631         MonoGenericContext* parameter to MonoGenericContainer*.
1632         (mono_metadata_parse_type_full): Likewise.
1633         (mono_type_create_from_typespec_full): Likewise.
1634         (mono_metadata_parse_mh_full): Likewise.
1635         (mono_metadata_parse_generic_inst): Likewise.
1636         (do_mono_metadata_parse_generic_class): Likewise.
1637         (do_mono_metadata_parse_type): Likewise.
1638         * metadata-internals.h: Update to changes.
1639         * class.c (mono_class_find_enum_basetype): Likewise.
1640         (mono_class_setup_fields): Likewise.
1641         (mono_class_create_from_typespec): Likewise.
1642         * loader.c (method_from_methodspec): Likewise.
1643         (mono_get_method_from_token): Likewise.
1644         (mono_method_get_header): Likewise.
1645
1646 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1647
1648         * marshal.c: handle additional GENERICINST case (patch from
1649         Thong Nguyen <tum@veridicus.com>).
1650         Fix a few cases where LDIND_I/STIND_I was used for references.
1651
1652 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1653
1654         * reflection.c (mono_reflection_get_token): Remove unused variable.
1655
1656 2006-02-16  Martin Baulig  <martin@ximian.com>
1657
1658         * reflection.c (mono_reflection_get_token): Add support for fields
1659         in instantiated generic types.
1660
1661         * icall.c
1662         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1663
1664 2006-02-15  Martin Baulig  <martin@ximian.com>
1665
1666         * icall.c
1667         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1668         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1669         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1670         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1671
1672 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1673
1674         * class.c, metadata.c, metadata.h, object.c, icall.c,
1675         marshal.c: changed mono_type_get_underlying_type () to do
1676         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1677         Fixed handling of instantiated generic valuetypes (bug #75479).
1678
1679 2006-02-15  Raja R Harinath  <rharinath@novell.com>
1680
1681         * metadata.c (mono_metadata_decode_signed_value): Simplify.
1682         Delegate to mono_metadata_decode_value, and work on the returned value.
1683
1684         * icall.c (ves_icall_MonoType_GetGenericArguments):
1685         Add consistency check here too.
1686         
1687 2006-02-15  Ankit Jain  <jankit@novell.com>
1688
1689         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
1690         char/short etc.
1691
1692 2006-02-15  Ankit Jain  <jankit@novell.com>
1693
1694         * metadata.c (mono_metadata_decode_signed_value): New function to decode
1695         signed values, used only for representing lower bounds of arrays.
1696         (mono_metadata_parse_array_full): Use new
1697         mono_metadata_decode_signed_value to decode lower bounds.
1698
1699 2006-02-14  Martin Baulig  <martin@ximian.com>
1700
1701         * reflection.c
1702         (mono_reflection_get_token): Support "MonoGenericMethod" and
1703         "MonoGenericCMethod" and allow generic instances / methods.
1704
1705 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
1706
1707         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
1708         to obtain the terminal size using an ioctl.
1709
1710         * object.c (mono_nullable_init): Revert this as nullable reference
1711         types are not valid.
1712         (mono_nullable_box): Ditto.
1713
1714 2006-02-09  Dick Porter  <dick@ximian.com>
1715
1716         * threads.c (mono_thread_detach): Drop a reference to the thread
1717         we're detaching.
1718
1719 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
1720
1721         * object.c (mono_nullable_init): Handle nullable reference types.
1722         (mono_nullable_box): Ditto. Fixes #77446.
1723
1724 2006-02-07  Martin Baulig  <martin@ximian.com>
1725
1726         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
1727
1728 2006-02-07  Ankit Jain  <jankit@novell.com>
1729
1730         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
1731         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
1732         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
1733         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
1734         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
1735         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
1736
1737 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
1738
1739         * class.c (mono_class_create_generic): Set type_token as well.
1740
1741         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
1742         compatible with MS.
1743
1744 2006-02-02  Martin Baulig  <martin@ximian.com>
1745
1746         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
1747         has never been used so far.
1748
1749 2006-02-02  Martin Baulig  <martin@ximian.com>
1750
1751         * mono-debug-debugger.h: Changed comment at the top of this file;
1752         the header is not installed, but it's safe to #include it from
1753         within the JIT.
1754
1755         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
1756         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
1757
1758 2006-02-02  Martin Baulig  <martin@ximian.com>
1759
1760         * mono-debug.h
1761         (MonoSymbolTable): Removed the `metadata_info' field.
1762
1763         * mono-debug.c
1764         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
1765
1766         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1767         (mono_debugger_add_builtin_types): Removed.
1768         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
1769         (mono_debugger_create_notification_function): We now operate on a
1770         pre-allocated area; take a `gpointer' and return `void'.
1771
1772         * mono-debug-debugger.c
1773         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
1774         (mono_debugger_add_builtin_types): Removed.
1775
1776 2006-02-02  Martin Baulig  <martin@ximian.com>
1777
1778         * threads.c (mono_debugger_create_all_threads): New public method.
1779
1780 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1781
1782         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
1783         breaks on several platforms.
1784
1785 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
1786
1787         * assembly.c: the VS.NET build doesn't supply default values for
1788         MONO_ASSEMBLIES and MONO_CFG_DIR.
1789
1790 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1791
1792         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
1793         helper function.
1794
1795         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
1796
1797         * loader.c (method_from_memberref): Fix a warning.
1798
1799         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
1800
1801         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
1802         with explicit layout. Fixes #77433.
1803
1804 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
1805
1806         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
1807         max_interface_id is initialized before using it. Fixes #77398.
1808         (ves_icall_Type_GetInterfaces): Ditto.
1809
1810 2006-01-30  Raja R Harinath  <rharinath@novell.com>
1811
1812         * metadata.c (mono_metadata_parse_method_signature_full): Don't
1813         allocate memory for parameter attributes when parsing memberref
1814         signatures.
1815         * loader.c (mono_loader_set_error_method_load): Don't warn.
1816         (method_from_memberref): Ensure MissingMethodException gets thrown
1817         if method is not found.  Make warning more informative.
1818
1819 2006-01-29  Raja R Harinath  <harinath@gmail.com>
1820
1821         Fix #77397
1822         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
1823         return true if is byref.
1824         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1825         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
1826         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1827
1828 2006-01-27  Raja R Harinath  <rharinath@novell.com>
1829
1830         Fix tests/find-method.2.il
1831         * loader.c (find_method, find_method_in_class): Remove is_inflated
1832         argument.  Revert 2006-01-18 change.
1833         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
1834         is generic, search for method in its generic definition.
1835         * class.c (mono_class_setup_vtable_general): Print generic
1836         arguments of generic types in debugging printf.
1837
1838 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
1839
1840         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
1841
1842         * threads.c (mono_threads_request_thread_dump): New helper function.
1843
1844 2006-01-25  Raja R Harinath  <rharinath@novell.com>
1845
1846         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
1847
1848 2006-01-25  Ankit Jain  <jankit@novell.com>
1849
1850         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
1851         move definition to ..
1852         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
1853         
1854 2006-01-25  Ankit Jain  <jankit@novell.com>
1855             Raja R Harinath  <rharinath@novell.com>
1856
1857         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
1858         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
1859         as necessary.
1860
1861 2006-01-25  Martin Baulig  <martin@ximian.com>
1862
1863         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
1864         `MonoDebuggerThread' into debug-debugger.c.
1865
1866 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
1867
1868         * profiler.c: fix printing of data.
1869
1870 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
1871
1872         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
1873           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
1874
1875 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1876
1877         * object.c: fix deadlock related to string interning.
1878
1879 2006-01-23  Martin Baulig  <martin@ximian.com>
1880
1881         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1882
1883         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
1884
1885 2006-01-23  Martin Baulig  <martin@ximian.com>
1886
1887         * mono-debug.h: Moved the prototypes of some functions which are
1888         used by the JIT here from mono-debug-debugger.h.
1889
1890 2006-01-21  Martin Baulig  <martin@ximian.com>
1891
1892         * Makefile.am: Don't install mono-debug-debugger.h.
1893
1894 2006-01-21  Martin Baulig  <martin@ximian.com>
1895
1896         * mono-debug-debugger.h: Enforce the private status of this header
1897         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
1898         Moved some stuff from mono-debugger-jit-wrapper.h here.
1899
1900 2006-01-20  Raja R Harinath  <rharinath@novell.com>
1901
1902         * class.c (mono_class_from_typeref): Add a sanity test to help
1903         catch lack of assembly load/search hooks.
1904
1905 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
1906
1907         * marshal.c (emit_struct_conv): Relax the fields with same offset
1908         check even more. Fixes #77230.
1909
1910 2006-01-18  Martin Baulig  <martin@ximian.com>
1911
1912         * loader.c (find_method_in_class): Added `gboolean is_inflated'
1913         argument; if false, we compare the uninstantiated signatures.
1914         (method_from_memberref): Compare the uninstantiated signatures;
1915         fixes #76417.
1916
1917 2006-01-18  Robert Jordan  <robertj@gmx.net>
1918
1919         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
1920         Clear the weak link. Fixes bug #77170.
1921
1922         * gc.c (mono_gchandle_free):
1923         Reflect *-gc.c changes (tiny optimization).
1924
1925 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
1926
1927         * metadata.c (mono_metadata_signature_dup): Applied patch from
1928         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
1929         Fixes #77288.
1930
1931 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
1932
1933         * marshal.c (emit_struct_conv): Allow fields with the same offset when
1934         marshalling from native to managed code. Fixes #77230.
1935
1936 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1937
1938         * threadpool.c: fix problem (Mac only) when more than one asynchronous
1939         connect. Fixes bug #77020.
1940
1941 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1942
1943         * class.c: fixed id assignement for nested interfaces (bug #77275).
1944         Added also better info for --print-vtable debugging.
1945
1946 2006-01-12  Martin Baulig  <martin@ximian.com>
1947
1948         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
1949         interfaces on-the-fly; fixes #76625.
1950
1951         * class-internals.h
1952         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
1953         don't need that anymore.
1954
1955 2006-01-12  Miguel de Icaza  <miguel@novell.com>
1956
1957         * socket-io.c
1958         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1959         To avoid initing the nested_classes when not needed I turned the
1960         PeerCredData as a toplevel internal class, as it has to be shared
1961         anyways. 
1962
1963         Fixes the CASA issue.
1964
1965 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
1966
1967         * domain.c: Accessors for MonoJitInfo
1968
1969         * profiler-private.h: Add jitinfo to the end jit hook
1970
1971         * profiler.[ch]: Define new hooks, called after jitting which give
1972         the MonoJitInfo that was compiled
1973
1974 2006-01-10  Martin Baulig  <martin@ximian.com>
1975
1976         * class.c (mono_class_setup_events): Add support for generic
1977         classes; fixes #76440.
1978
1979 2006-01-06  Raja R Harinath  <rharinath@novell.com>
1980
1981         Fix #77160.
1982         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
1983         on passed-in method.
1984
1985 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
1986
1987         * object.c (mono_runtime_invoke_array): Add Nullable support.
1988
1989         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
1990
1991 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
1992
1993         * file-io.c: Don't consider sockets as directory and avoid an endless
1994         loop. Fix bug #76966.
1995
1996 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
1997
1998         * object.c (mono_nullable_init): New helper function.
1999         (mono_nullable_box): Ditto.
2000
2001         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2002
2003         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2004
2005         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2006         
2007 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2008
2009         * class.c (mono_class_is_assignable_from): Make T assignable to 
2010         Nullable<T>.
2011
2012 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2013
2014         * appdomain.c: Bump corlib version to 46.
2015         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2016         serialization purpose) and changed ves_icall_System_Reflection_
2017         Assembly_get_code_base signature to accept a boolean (to escape, or 
2018         not, the assembly code base).
2019
2020 2005-12-23  Dick Porter  <dick@ximian.com>
2021
2022         * icall.c: 
2023         * threads-types.h: 
2024         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2025         CreateEvent icall now returns "created" boolean parameter.
2026
2027 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2028
2029         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2030         #76967.
2031
2032         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2033         when attr_klass is an interface. Fixes #77045.
2034
2035 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2036
2037         * marshal.c (emit_struct_conv): Fix previous patch.
2038         
2039         * marshal.c (emit_struct_conv): Add a check for fields with the same
2040         offset.
2041
2042 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2043
2044         Fix regression in Mono.C5.
2045         * class.c (mono_class_create_generic): If 'klass' is an interface
2046         set up the interface offsets.
2047         (mono_class_is_assignable_from): Don't throw away generic arguments.
2048
2049 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2050
2051         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2052         type parameters.
2053
2054 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2055
2056         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2057         dead store.
2058         (do_mono_metadata_parse_generic_class): Don't pass the current
2059         generic context when parsing the type being instantiated: it
2060         cannot use it, anyway.
2061
2062         * loader.c (method_from_memberref): Don't inflate a signature if
2063         it doesn't contain any type parameters.
2064
2065 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2066
2067         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2068
2069 2005-12-14  Martin Baulig  <martin@ximian.com>
2070
2071         * class.c
2072         (mono_type_get_name_recurse): Don't return null for type
2073         parameters and open generic classes.
2074         (mono_class_setup_methods): Don't exclude generic instances.
2075         (mono_get_unique_iid): Use different IDs for different
2076         instantiations of the same generic type.
2077         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2078         open generic instances; create a normal vtable for closed generic
2079         instances.
2080         (mono_class_setup_vtable_general): We're now also called for
2081         closed generic instances.
2082
2083         * reflection.c
2084         (mono_reflection_bind_generic_parameters): Correctly use
2085         mono_metadata_lookup_generic_inst() everywhere.
2086
2087 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2088
2089         * object.c (mono_class_create_runtime_vtable): Call 
2090         mono_class_setup_vtable ().
2091
2092         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2093         function.
2094         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2095         #76959.
2096
2097         * loader.c (mono_loader_set_error_type_load): Print the type load
2098         warnings to the console so they are more visible to the user.
2099         (mono_loader_set_error_method_load): Ditto.
2100
2101         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2102         is still broken.
2103         
2104         * reflection.c (ensure_runtime_vtable): Fix build.
2105
2106         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2107         doesn't work in all cases.
2108
2109 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2110
2111         * object.c (mono_array_new_full): Treat a single dimensional array
2112         with 0 lower bounds as an szarray. Fixes #76973.
2113
2114         * reflection.c (custom_attr_visible): Really fix this.
2115
2116 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2117
2118         * reflection.c (custom_attr_visible): Allow nested public attributes
2119         as well.
2120
2121         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2122         interface check.
2123
2124 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2125
2126         * class.c (set_generic_param_owner): Delete.
2127         (mono_class_create_from_typedef): Don't set ->owner field of
2128         generic parameters to "param containers" of enclosing classes.
2129         * reflection.c (mono_reflection_initialize_generic_parameter):
2130         Likewise.
2131
2132 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2133
2134         * reflection.c (custom_attr_visible): Fix build.
2135
2136 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2137
2138         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2139         private attributes.
2140         
2141         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2142         handling of null parameter defaults.
2143
2144 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2145
2146         * class.c (mono_class_from_generic_parameter): Don't set
2147         klass->generic_container.
2148         (my_mono_class_from_generic_parameter): Likewise.
2149
2150 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2151
2152         * reflection.c (load_public_key): Fix a warning.
2153         (method_encode_code): Fix unaligned accesses.
2154
2155 2005-12-07  Martin Baulig  <martin@ximian.com>
2156
2157         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2158
2159         * reflection.c
2160         (write_generic_param_entry): Encode our custom attrs.
2161
2162         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2163
2164 2005-12-07  Martin Baulig  <martin@ximian.com>
2165
2166         * reflection.c (encode_new_constraint): Removed; we don't use the
2167         `NewConstraintAttribute' anymore.
2168
2169 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2170
2171         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2172         not fire a TypeResolve event when Assembly.GetType () is called.
2173
2174 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2175
2176         Beginning of support for nullable types in the runtime. Parts of
2177         this patch are from Martin.
2178
2179         * appdomain.c (MONO_CORLIB_VERSION): Bump
2180
2181         * domain.c (mono_init_internal): get the nullable type
2182
2183         * class.c (mono_class_is_nullable): New method
2184         (mono_class_get_nullable_param): New mehod
2185         (mono_class_create_generic): In types T? set cast_class to T
2186
2187         * class-internals.h (MonoDefaults): new nullable default class
2188         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2189         new methods.
2190
2191 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2192
2193         * metadata.c (select_container): New.  Refactor code to select the
2194         appropriate GenericContainer given the type of generic parameter
2195         we are looking for.
2196         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2197         not a MonoGenericContext.  Use select_container.  Update parameters.
2198         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2199         and MONO_TYPE_MVAR.
2200         (unwrap_arrays): Remove duplicate tests.
2201         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2202         generic instantiated class to find any arguments that are generic
2203         parameters.
2204         (mono_type_create_from_typespec_full): Use find_generic_param to
2205         avoid evicting some generic instantiations from the typespec
2206         cache.
2207
2208 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2209
2210         * reflection.c: fixed writing of doubles on ARM FPA.
2211
2212 2005-12-02  Robert Jordan  <robertj@gmx.net>
2213
2214         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2215
2216 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2217
2218         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2219         least on SUSE 10 they are not the same (on debian, they are just the
2220         same thing).
2221
2222 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2223
2224         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2225         DeclaringType for VARs and MVARs.
2226         * class.c (set_generic_param_owner): Fix initialization of owner
2227         fields.
2228
2229 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2230
2231         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2232
2233 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2234
2235         * threadpool.c: workaround for a bug that shows up on the Mac:
2236         select()+connect() on a blocking socket is not like it should
2237         be, so we proceed to connect() in that case, wasting the I/O
2238         threadpool thread until connect succeedes. Fixes bug #75436.
2239
2240 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2241
2242         * threadpool.c: fix typo when setting file descriptor states.
2243
2244 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2245
2246         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2247         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2248         create a temporary signature container.
2249         (mono_metadata_parse_generic_param): Update to changes.
2250         (mono_type_create_from_typespec_full): Update to changes.
2251         * loader.c (method_from_memberref): Don't use a
2252         MonoGenericContainer while parsing a memberref signature.
2253         (method_from_methodspec): Remove dead-store of the 'container'
2254         variable.  It's overwritten before use.
2255
2256         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2257         checks tighter.
2258         (mono_metadata_parse_generic_param): Likewise.
2259         * loader.c (find_method_in_class): Does not need a
2260         MonoGenericContainer.  Use 'mono_method_signature' rather than
2261         'mono_method_signature_full'.
2262         (find_method, mono_get_method_constrained, method_from_memberref):
2263         Update to changes.
2264
2265         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2266         owner-less generic-parameters are never evicted from the typespec
2267         cache.
2268
2269         * loader.c (method_from_memberref): Don't use the current context
2270         when parsing signatures.
2271         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2272
2273         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2274         side-effects in g_assert.
2275         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2276         that we don't potentially lose information.
2277
2278 2005-11-26  Dick Porter  <dick@ximian.com>
2279
2280         * icall.c:
2281         * threads.c: icalls to implement basic (ie, not named)
2282         System.Threading.Semaphore.
2283
2284 2005-11-24  Dick Porter  <dick@ximian.com>
2285
2286         * process.c
2287         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2288         Use GetProcessId() if it's available.
2289
2290 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2291
2292         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2293
2294 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2295             Ankit Jain  <jankit@novell.com>
2296
2297         * loader.c (mono_get_method_from_token): Initialize 'method' field
2298         of all generic parameters before parsing the signature.  Remove
2299         code that "fixed"-up MVAR references.
2300
2301 2005-11-23  Ankit Jain  <jankit@novell.com>
2302
2303         * metadata.c (mono_metadata_has_generic_params):
2304         (mono_metadata_load_generic_param_constraints):
2305         (mono_metadata_load_generic_params): Move duplicate code ...
2306         (mono_metadata_get_generic_param_row): ... here. Returns the
2307         first row-id in GenericParam table for a given owner (token).
2308         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2309         prototype.
2310
2311 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2312             Ankit Jain  <jankit@novell.com>
2313
2314         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2315         comparing VARs too.
2316         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2317         type->data.generic_param only if the type is an MVAR.
2318         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2319         leak owner-less VARs and MVARs into managed space.
2320
2321 2005-11-21  Martin Baulig  <martin@ximian.com>
2322
2323         * class-internals.h
2324         (MonoMethod): Moved the `generic_container' here from
2325         `MonoMethodNormal' since we now also need it for
2326         `MonoMethodPInvoke';
2327         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2328         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2329         an union containing both `MonoMethodNormal' and
2330         `MonoMethodPInvoke'.
2331
2332         * loader.c
2333         (mono_get_method_from_token): Allow implementing generic methods
2334         as interncalls.
2335
2336         * threads.c
2337         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2338         icall.
2339
2340 2005-11-17  Dick Porter  <dick@ximian.com>
2341
2342         * icall.c: 
2343         * process.h: 
2344         * process.c: Split the Process Start_internal icall into
2345         ShellExecuteEx_internal and CreateProcess_internal, which are
2346         called depending on whether UseShellExecute is true.  Fixes bug
2347         76670.
2348
2349         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2350
2351 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2352
2353         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2354         'msize' parameters, use the information in 'mspec' instead.
2355         (emit_object_to_ptr_conv): Ditto.
2356
2357         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2358         fields out of order. Fixes #76733.
2359
2360 2005-11-17  Ankit Jain  <jankit@novell.com>
2361
2362         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2363
2364 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2365
2366         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2367           bug #76575.
2368
2369 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2370
2371         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2372         for types with non-auto layout. Fixes #76717.
2373
2374 2005-11-16  Ankit Jain  <jankit@novell.com>
2375
2376         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2377         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2378         if generic_context is null.
2379           (mono_metadata_generic_param_equal): param->owner can be null.
2380           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2381         null.
2382
2383 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2384
2385         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2386         the correct value.
2387
2388 2005-11-15  Martin Baulig  <martin@ximian.com>
2389
2390         * object.c (set_value): Use mono_class_from_mono_type() instead of
2391         the hack for generic instances; fixes #76136.
2392
2393 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2394
2395         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2396         fields.
2397
2398         * image.c (load_metadata_ptrs): Initialize the new fields.
2399
2400         * reflection.c (create_dynamic_mono_image): Ditto.
2401
2402         * reflection.c (build_compressed_metadata): Use the new fields.
2403
2404         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2405         icall.
2406
2407         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2408         icall.
2409         
2410 2005-11-15  Ankit Jain  <jankit@novell.com>
2411             Raja R Harinath  <harinath@gmail.com>
2412
2413         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2414         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2415         new per-generic_container cache if the cached MonoType's context matches
2416         the current context.
2417           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2418         to the expected context.
2419           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2420
2421 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2422
2423         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2424         we changed the signature of an icall.
2425         * icall.c: Modify to mono_double_ParseImpl return true/false 
2426         depending on the success, instead of throwing the exception. This will
2427         help us in Double.TryParse methods.
2428         
2429 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2430
2431         * marshal.c (emit_marshal_object): Throw an exception when
2432         marshalling 'object' instead of crashing. Fixes #76696.
2433
2434 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2435
2436         * class-internals.h: Add prototype for mono_type_get_full_name ().
2437
2438 2005-11-11  Dick Porter  <dick@ximian.com>
2439
2440         * threads.c (mono_thread_manage): Make sure the main thread has
2441         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2442
2443 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2444
2445         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2446         console about the missing type.
2447         (mono_loader_set_error_method_load): Ditto.
2448
2449 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2450
2451         * mono-config.c (mono_get_config_dir): Set the system defaults if
2452         none is specified.
2453
2454         * assembly.c (mono_set_dirs): New API entry point to set the
2455         assembly and the config directory in one call
2456
2457 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2458
2459         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2460         the ftnptr was created from a delegate in a domain other than the
2461         current domain. Fixes #75377.
2462
2463         * exception.h exception.c: Add mono_get_exception_not_supported ().
2464
2465 2005-11-08  Martin Baulig  <martin@ximian.com>
2466
2467         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2468
2469 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2470
2471         * security-manager.h: Added definitions to deal with strongname key 
2472         pairs bigger (and smaller) than 1024 bits.
2473         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2474         adjust wrt the public key length being used.
2475
2476 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2477
2478         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2479           Windows build (r51396-51397).
2480
2481 2005-11-03  Martin Baulig  <martin@ximian.com>
2482
2483         * class.c (mono_class_setup_vtable_general): Also add generic
2484         methods to the vtable; fixes #76581.
2485
2486 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2487
2488         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2489         sure that we lookup GetString method from the System.Text.Encoding
2490         class, not the derived class or we get an empty method.
2491
2492         Fixed class #76612.
2493
2494 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2495
2496         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2497         if it has been previously set (embedders). 
2498
2499         Make mono_set_rootdir available also on Unix.
2500
2501 005-10-24  Robert Jordan  <robertj@gmx.net>
2502
2503         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2504
2505 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2506
2507         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2508         only calls which are made to native code use this flag.
2509
2510         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2511
2512 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2513
2514         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2515         Add support for FieldBuilders.
2516
2517 2005-10-29  Martin Baulig  <martin@ximian.com>
2518
2519         * mono-debug.c
2520         (mono_debug_using_mono_debugger): New public method; returns
2521         whether we're running inside the debugger.
2522
2523 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2524
2525         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2526         for Method/Constructor/FieldBuilders.
2527
2528 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2529
2530         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2531         and fields as well.
2532
2533 2005-10-26  Martin Baulig  <martin@ximian.com>
2534
2535         * mono-debug-debugger.c
2536         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2537
2538 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2539
2540         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2541         integer to isspace.
2542
2543 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2544
2545         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2546         when passing valuetypes byref. Fixes #76502.
2547
2548 2005-10-19  Jackson Harper  <jackson@ximian.com>
2549
2550         * profiler.c: Don't put a . in front of types that are not in a
2551         namespace.
2552
2553 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2554
2555         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2556
2557 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2558
2559         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2560         #76436.
2561         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2562
2563 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2564
2565         * assembly.c metadata-internals.h icall.c: Define an additional
2566         parameter for mono_assembly_name_parse_full, so we can avoid creating
2567         S.R.AssemblyName.Version when no version info wasn't passed.
2568         
2569 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2570
2571         * class.c (mono_type_get_full_name): Reimplement method that was
2572         removed. 
2573
2574         * image.c: Some docs
2575
2576 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2577
2578         * profiler.c (output_newobj_profile): Fix printing of Total memory
2579         on x86.
2580
2581 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2582
2583         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2584
2585 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2586
2587         * threads.c: remove debug output.
2588
2589 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2590
2591         * threads.c (mono_thread_manage): Fix crashes if more than 64
2592         threads need to be aborted. Hopefully fixes #75899.
2593
2594         * assembly.c (mono_stringify_assembly_name): New helper function.
2595
2596         * class.c: Use mono_stringify_assembly_name instead of the similar
2597         static function.
2598
2599         * assembly.h assembly.c: Add support for calling a postload search 
2600         hook if an assembly cannot be loaded.
2601
2602         * appdomain.c: Register new search hooks which call the AssemblyResolve
2603         events in AppDomain. Fixes #75231
2604
2605 2005-10-07  Martin Baulig  <martin@ximian.com>
2606
2607         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2608         methods without debug info.
2609
2610 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2611
2612         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2613         wrappers.
2614
2615 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2616
2617         * file-io.c: now that we return symlinks, use lstat and, when the file
2618         is a symbolic link, stat, to get the file attributes. Also avoid the
2619         conversion to/from utf16/external.
2620
2621 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2622
2623         * class.c (mono_class_layout_fields): Compute klass->has_references
2624         correctly if an embedded valuetype is not yet initialized. Fixes
2625         #76331.
2626
2627 2005-10-04  Martin Baulig  <martin@ximian.com>
2628
2629         * metadata.c
2630         (mono_metadata_load_generic_param_constraints): New public
2631         function; splitted the constraints loading out from
2632         mono_metadata_load_generic_params().
2633
2634         * class.c (mono_class_create_from_typedef): Call
2635         mono_metadata_load_generic_param_constraints() after setting up
2636         the type and creating our parent; fixes #75329.
2637
2638 2005-10-04  Martin Baulig  <martin@ximian.com>
2639
2640         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2641         non-dynamic parent classes.
2642
2643 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2644
2645         * file-io.c : win32 build fix (ETXTBSY seems not found).
2646
2647 2005-10-04  Martin Baulig  <martin@ximian.com>
2648
2649         * reflection.c
2650         (mono_image_get_methodspec_token): Make the cache actually work;
2651         fixes #75974.
2652
2653 2005-10-04  Martin Baulig  <martin@ximian.com>
2654
2655         * class.c (mono_class_name_from_token): Removed the unneccessary
2656         `MonoGenericContext *' argument.
2657
2658 2005-10-04  Martin Baulig  <martin@ximian.com>
2659
2660         * loader.c
2661         (method_from_methodspec): Make the caching work again; fixes the
2662         performance regression from #76262.
2663
2664 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2665
2666         * file-io.c:
2667         * file-io.h:
2668         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2669         GetFileSystemEntries that performs the same work but without going
2670         into io-layer, locking, etc.
2671
2672 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2673
2674         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2675         ThreadState_Stopped as well. Fixes #76047.
2676
2677 2005-09-29  Martin Baulig  <martin@ximian.com>
2678
2679         * class.c
2680         (inflate_generic_context): If the new context has a `gmethod', set
2681         its `container' that that gmethod's `container'.
2682
2683         * metadata.c
2684         (mono_metadata_parse_generic_param): Simplify things;
2685         `generic_container = generic_context->container;' is just fine.
2686
2687         * loader.c (method_from_methodspec): Code cleanups.
2688
2689 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
2690
2691         * decimal.c: fix warning (and let gcc generate correct
2692         code on ARM with optimizations).
2693
2694 2005-09-28  Martin Baulig  <martin@ximian.com>
2695
2696         * loader.c
2697         (method_from_memberref): Added `MonoGenericContext *class_context'
2698         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
2699         (method_from_methodspec): If we're a memberref, use the enclosing
2700         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
2701
2702 2005-09-28  Martin Baulig  <martin@ximian.com>
2703
2704         * object.c (mono_runtime_invoke_array): Added support for
2705         MONO_TYPE_GENERICINST; fixes #75917.
2706
2707 2005-09-27  Martin Baulig  <martin@ximian.com>
2708
2709         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
2710         `k->byval_arg.type' to determine the actual type.
2711
2712         * loader.c (method_from_methodspec): Removed some hacks.
2713
2714 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
2715
2716         * class-internals.h (mono_field_is_deleted): Do the test for
2717         rtspecialname before we check the actual name of the field. This
2718         prevents us from dereferencing a pointer into the string table,
2719         saving us from accessing a few pages
2720
2721         * *.c: Replace the use of {Enter,Leave}CriticalSection with
2722         macros. This will allow a deadlock debugger to easily be plugged
2723         in.
2724
2725 2005-09-27  Martin Baulig  <martin@ximian.com>
2726
2727         * loader.c (method_from_methodspec): Create a "signature"
2728         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
2729
2730 2005-09-27  Martin Baulig  <martin@ximian.com>
2731
2732         * class.c
2733         (inflate_generic_class): Correctly set the new context's
2734         container.
2735
2736         * loader.c
2737         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
2738         instead of a `MonoGenericContext *'.
2739         (mono_method_signature_full): Take a `MonoGenericContainer *'
2740         instead of a `MonoGenericContext *'.
2741
2742         * metadata.c
2743         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
2744         instead of a `MonoGenericContext *'.
2745         (mono_metadata_parse_method_signature_full): Likewise.
2746
2747 2005-09-26  Martin Baulig  <martin@ximian.com>
2748
2749         * class.c
2750         (mono_class_from_generic_parameter): Set `klass->generic_container'
2751         (mono_class_from_generic_parameter): Likewise.
2752         (mono_bounded_array_class_get): We inherit the generic container
2753         from the element class.
2754
2755         * loader.c
2756         (find_method, find_method_in_class): Take a `MonoGenericContext *'
2757         argument rather than computing it here.
2758         (method_from_memberref): Correctly set the generic context before
2759         parsing the signature.  Fixes #75681.
2760
2761 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
2762
2763         * object.c (mono_class_has_special_static_fields): Fix warnings.
2764
2765 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2766
2767         * assembly.c: Add parse_public_key function, to
2768         par the public keys. Also added mono_assembly_name_parse_full,
2769         to define it the parsed key should be freed or not.
2770         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
2771         to parse a long format assembly name.
2772         * metadata-internals.h: Keep mono_assembly_name_parse_full as
2773         private, since calling it to preserve the key requires
2774         freeing it manually.
2775         
2776 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2777
2778         * locales.c : removed HAVE_ICU part.
2779
2780 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
2781
2782         * object.c (mono_class_create_runtime_vtable): Avoid calling 
2783         field_is_special_static if the klass has no special static fields.
2784
2785         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
2786         (MonoCachedClassInfo): Likewise.
2787
2788         * object.c (mono_class_has_special_static_fields): New helper function.
2789
2790 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2791
2792         * class.c (mono_class_create_from_typedef): Don't call 
2793         interfaces_from_typedef_full for enums.
2794         (mono_class_create_from_typedef): Compute the base types of enums directly
2795         without calling mono_class_setup_fields ().
2796         (mono_class_find_enum_basetype): New helper function.
2797
2798         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
2799         one place inside the string heap.
2800         
2801 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
2802
2803         * class.c: locking fixes, code cleanups, some docs added.
2804         Allocate some data structures in the image mempool.
2805
2806 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2807
2808         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2809         the example code.
2810         
2811 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
2812
2813         * class-internals.h, class.c, reflection.c: reduce memory taken by
2814         MonoClass.
2815
2816 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
2817
2818         * metadata.c, metadata.h, loader.h: documentation updates, code and
2819         API cleanups.
2820
2821 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2822
2823         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2824         the example code.
2825
2826         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
2827         page faults caused by the runtime while reading metadata.
2828
2829 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2830
2831         * socket-io.c: the field names were changed 3 months ago and no one
2832         realized until bug #76077 got filed!
2833
2834 2005-09-20  Martin Baulig  <martin@ximian.com>
2835
2836         * icall.c (assembly_icalls): Removed some unused debugger icalls.
2837
2838 2005-09-20  Martin Baulig  <martin@ximian.com>
2839
2840         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
2841         write the rank into the class entry.
2842
2843 2005-09-20  Martin Baulig  <martin@ximian.com>
2844
2845         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
2846
2847 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
2848
2849         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2850
2851         * icall.c (custom_attrs_defined_internal): New icall.
2852
2853         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
2854         function.
2855         (mono_custom_attrs_construct_by_type): New helper function.
2856
2857 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
2858
2859         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
2860         terminate the resulting string. Fixes #76123.
2861
2862 2005-09-16  Martin Baulig  <martin@ximian.com>
2863
2864         * mono-debug.c
2865         (mono_debug_add_method): Ignore inflated methods for the moment.
2866
2867 2005-09-14  Martin Baulig  <martin@ximian.com>
2868
2869         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
2870
2871 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
2872
2873         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
2874         return a success/failure indication.
2875         (mono_metadata_interfaces_from_typedef_full): Ditto.
2876         (get_constraints): Ditto.
2877
2878 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
2879
2880         * marshal.c (emit_marshal_array): Fix handling of null arrays.
2881         
2882         * marshal.c (emit_marshal_array): Add support for returning string
2883         arrays from delegates. Fixes #76063.
2884
2885         * marshal.c: Use the emit_ldloc/stloc macros where possible.
2886
2887 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
2888
2889         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
2890         icall.
2891
2892 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
2893
2894         * reflection.c icall.c: Fix after mono_get_exception_type_load
2895         signature change.
2896
2897         * assembly.c (mono_assembly_get_assemblyref): New helper function.
2898         (mono_assembly_load_reference): Use the new helper.
2899
2900         * class-internals.h (MonoLoaderError): New structure containing 
2901         information about type loading errors.
2902
2903         * class-internals.h loader.c: Add APIs to store per-thread loader
2904         error information.
2905
2906         * loader.c class.c: Set the loader error if needed.
2907
2908         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
2909
2910 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
2911
2912         * decimal.c: fixed to handle the broken ARM fp format.
2913
2914 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
2915
2916         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
2917         broken.
2918
2919 2005-09-06  Martin Baulig  <martin@ximian.com>
2920
2921         * domain.c (supported_runtimes): Added v2.0.50727.
2922
2923 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
2924
2925         * culture-info.h: reduce the size of some structures.
2926
2927 2005-09-05  Martin Baulig  <martin@ximian.com>
2928
2929         Reflect latest API changes in the August CTP.
2930
2931         * icall.c
2932         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
2933         ("MonoType.HasGenericArguments"): Removed.
2934         ("MonoMethod.BindGenericParameters"): Renamed to
2935         "MakeGenericMethod".
2936         ("MethodBuilder.BindGenericParameters"): Renamed to
2937         "MakeGenericMethod".    
2938
2939 2005-09-05  Martin Baulig  <martin@ximian.com>
2940
2941         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
2942
2943 2005-09-05  Martin Baulig  <martin@ximian.com>
2944
2945         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2946
2947         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
2948         generic_container is non-NULL.
2949
2950 2005-09-05  Martin Baulig  <martin@ximian.com>
2951
2952         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2953
2954         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
2955
2956 2005-08-29  Michal Moskal  <malekith@nemerle.org>
2957
2958         * reflection.c (encode_locals,
2959         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
2960         for large generic types.
2961
2962 2005-09-05  Martin Baulig  <martin@ximian.com>
2963
2964         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2965
2966         * class.c (mono_dup_array_type): New public method.
2967         (mono_metadata_signature_deep_dup): New public method.
2968         (dup_type): Correctly duplicate array and function types.
2969
2970 2005-09-05  Martin Baulig  <martin@ximian.com>
2971
2972         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2973
2974         * reflection.c (get_default_param_value_blobs): Handle generic types
2975         and generic methods.
2976
2977 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
2978
2979         * class.c: Fixed error reporting (method/class were inversed) for 
2980         inheritance demands.
2981         * security-manager.c|h: Added the AppDomain when calling the managed
2982         System.Security.SecurityManager.InheritanceDemand method.
2983
2984 2005-09-01  Raja R Harinath  <rharinath@novell.com>
2985
2986         * reflection.c (encode_marshal_blob): 'marshaltype' and
2987         'marshaltyperef' are alternate sources for the custom marshaler
2988         name.
2989
2990 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
2991
2992         * class.c: fix creation of array classes with rank == 1
2993         (patch by Ankit Jain <jankit@novell.com>).
2994
2995 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
2996
2997         * object.c: fix check for creating the bound data for arrays vs
2998         szarrays.
2999
3000 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3001
3002         * object.c: configuration file name is now based on the executable name,
3003         not the image name. Fixes bug #75931.
3004
3005 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3006
3007         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3008         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3009
3010 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3011
3012         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3013
3014 2005-08-24  Ankit Jain  <jankit@novell.com>
3015             Raja R Harinath  <rharinath@novell.com>
3016
3017         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3018           called by it recursively.
3019           (mono_class_init): Remove special case in pending_init handling, since it's
3020           superseded by the fix to mono_class_from_typeref.
3021
3022 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3023
3024         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3025         BROKEN_THREAD_START stuff.
3026
3027 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3028
3029         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3030         trampoline.
3031
3032         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3033         
3034         * object.c (mono_delegate_ctor): Replace the original function address with
3035         a delegate trampoline.
3036
3037 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3038
3039         * icall.c: add boolean argument to base64_to_byte_array and 
3040         InternalFromBase64String to control whether a whitespace-only string
3041         is allowed (or should casue a FormatException to be thrown). We need
3042         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3043         to match the MS behaviour in both profiles.
3044         * appdomain.c: Bump corlib version.
3045
3046 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3047
3048         This patch implements a big portion of publisher policy
3049         support, used to bind assembly versions and redirect
3050         one assembly from version A to version B.
3051
3052         * assembly.c:
3053         New GSList loaded_assembly_bindings, for storing the cached
3054         assembly bindings.
3055         (assembly_binding_maps_name): New static function for checking if a 
3056         assembly binding information maps an assembly name.
3057         (mono_assembly_binding_info_free): New function for freeing
3058         assembly binding information resources.
3059         (get_publisher_policy_info): New static function for retrieving 
3060         assembly binding information from a MonoImage.
3061         (compare_versions): New static function for comparing an assembly
3062         binding information data and the version of an assembly name.
3063         (check_policy_versions): New static function for checking if an
3064         assembly binding info mapping an assembly name is valid for it.
3065         (mono_assembly_load_publisher_policy): New static function for
3066         loading the 'policy.major.minor.MyAssembly' image for an assembly
3067         with an assembly name 'aname'.
3068         (mono_assembly_bind_version): New static function for updating
3069         assembly redirection.
3070         (mono_assembly_apply_binding): New static function for applying
3071         assembly binding.
3072         (search_binding_loaded): New static function for searching 
3073         loaded assembly binding infos in the cache domain.
3074         (mono_assembly_load_full): Don't apply assembly binding for
3075         reflection only assemblies.
3076
3077         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3078         which contains information about assembly binding. Also
3079         declare signature for mono_config_parse_publisher_policy ()
3080         function, used to retrieve pub policy info.
3081         
3082         * mono-config.c:
3083         (publisher_policy_start): New static function used to parse publisher 
3084         policy config files.
3085         (publisher_policy_parser): New static MonoParseHandler containing 
3086         the functions used when parsing config files.
3087         (mono_config_parse_publisher_policy): New function for parsing
3088         publisher policy files.
3089         
3090 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3091
3092         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3093
3094         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3095
3096         * object.c (mono_get_addr_from_ftnptr): New helper function.
3097
3098         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3099
3100         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3101
3102 2005-08-19  Dick Porter  <dick@ximian.com>
3103
3104         * threads.c, threads.h, appdomain.c, appdomain.h,
3105         profiler-private.h, monitor.c, object.c, object-internals.h,
3106         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3107         store the thread ID, so it can hold a 64 bit value if needed.
3108
3109 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3110
3111         * reflection.c (mono_reflection_create_dynamic_method): Store the
3112         handle class into the method references as well so ldtoken works in
3113         dynamic methods.
3114
3115         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3116         types.
3117
3118 2005-08-19  Ankit Jain <jankit@novell.com>
3119
3120         Fix #75847.
3121         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3122           here rather than using the method signature of a arbitrary function
3123           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3124           two arguments.
3125           Hack done with Harinath.
3126
3127 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3128
3129         * threadpool.c: disable printing stack traces when we get a exception
3130         in a threadpool thread. I need to do more testing to figure out which
3131         cases actually print this. Fixes bug #75828.
3132
3133 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3134
3135         * icall.c: there might be ignored whitespace after the last '='. This
3136         fixes length computation and bug #75840.
3137
3138 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3139
3140         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3141         well. Fixes #75809.
3142
3143         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3144         #75784.
3145         
3146         * reflection.c (create_custom_attr_data): Ditto.
3147
3148 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3149
3150         * locales.c, culture-info.h : removed RegionLCIDMap.
3151         * culture-info-tables.h : regenerated.
3152
3153 2005-08-16  Martin Baulig  <martin@ximian.com>
3154
3155         * class.c (mono_type_get_name_recurse): Small fix.
3156
3157 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3158
3159         * locales.c : indentation fixie.
3160
3161 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3162
3163         * object-internals.h,
3164           locales.h,
3165           locales.c,
3166           culture-info.h,
3167           icall.c : added RegionInfo table support.
3168         * culture-info-table.h : regenerated for region support.
3169
3170 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3171
3172         * reflection.c (resolve_object): handle all kinds of MonoMethod
3173         including generic ones
3174
3175 2005-08-12  Ankit Jain <jankit@novell.com>
3176
3177         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3178           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3179
3180 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3181
3182         * process.c: Don't close a thread handle when it's NULL. This is a
3183         workaround for bug #75733.
3184
3185 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3186
3187         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3188
3189 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3190
3191         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3192
3193 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3194
3195         * threadpool.c: if a work item in the thread pool has a callback that
3196         catches a exception, don't propagate it after invoking the callback.
3197         Fixes bug #75336.
3198
3199 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3200
3201         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3202
3203         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3204
3205         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3206
3207         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3208
3209 2005-08-03  Ankit Jain  <jankit@novell.com>
3210
3211         Fix #75683.
3212         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3213           PInvoke calling convention is 0.
3214
3215 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3216
3217         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3218         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3219
3220 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3221
3222         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3223         to handle threads not started by the GC (patch by Michael Meeks
3224         <michael.meeks@novell.com>).
3225
3226 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3227
3228         * reflection.c: Make buffer used in emitting types larger for some
3229         big generic types (patch by Michal Moskal).
3230
3231 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3232
3233         * mono-debug.c: Fix some (not all) alignment problems.
3234
3235 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3236
3237         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3238         Invoke mono_image_load_from_data_full passing the refonly
3239         parameter.
3240
3241         * assembly.c
3242         (mono_assembly_open_from_bundle): Add the refonly argument, 
3243         in order to pass it to other methods it calls to.
3244         (do_mono_assembly_open): Add the refonly argument, in order 
3245         to pass it to other methods it calls to.
3246         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3247         the refonly parameter to it.
3248
3249         * image.c: Add loaded_images_refonly_hash and
3250         loaded_images_refonly_guid_hash to cache the reflection
3251         only loaded images.
3252         (mono_images_init): Initialize the hash tables used for
3253         caching the reflection only images.
3254         (load_modules): Invoke mono_image_open_full passing the refonly
3255         parameter to load the modules the correct way.
3256         (build_guid_table): Add the refonly argument, to re-build the 
3257         correct hash table.
3258         (do_mono_image_open): Added the refonly argument, in order to
3259         define it for the loaded image.
3260         (mono_image_loaded_full): New function, which receives an
3261         additional parameter to look for the image in the refonly or
3262         non-refonly section.
3263         (mono_image_loaded): Updated, using mono_image_loaded_full.
3264         (mono_image_loaded_by_guid_full): The same case that happens
3265         with mono_image_loaded_full.
3266         (mono_image_loaded_by_guid): Likewise.
3267         (register_image): Use the ref_only variable inside MonoImage
3268         to decide in which hash table store the current image.
3269         (mono_image_open_from_data_full): Rename
3270         mono_image_open_from_data to mono_image_open_from_data_full,
3271         adding the refonly argument, to define the ref_only variable 
3272         inside MonoImage.
3273         (mono_image_open_from_data): Return 
3274         mono_image_open_from_data_full.
3275         (mono_image_open_full): Rename mono_image_open to
3276         mono_image_open_full, receiving the new refonly argument,
3277         to pass it to inner methods.
3278         (mono_pe_file_open): Update this function, to open
3279         a MonoImage as a non-refonly image.
3280         (mono_image_close): Use the refonly variable inside
3281         MonoImage to remove the image from the correct caches.
3282
3283         * image.h: Add the signatures of mono_image_open_full,
3284         mono_image_open_from_data_full, mono_image_loaded_full,
3285         mono_image_loaded_by_guid_full.
3286
3287         * metadata-internals.h: Add the ref_only field to 
3288         MonoImage.
3289         
3290 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3291
3292         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3293         Fix the last behavior, which used to load the assemblies and
3294         extract MonoReflectionAssemblyName information, instead of
3295         extract it from the metadata tables. Needed for Reflection
3296         Only assemblies.
3297         
3298 2005-07-29  Martin Baulig  <martin@ximian.com>
3299
3300         * mono-debug-debugger.c
3301         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3302         not initialized.
3303
3304         * mono-debug.c
3305         (mono_debug_address_from_il_offset): Check whether we have
3306         debugging support before attempting to take the lock.
3307         (mono_debug_source_location_from_address): Likewise.
3308         (mono_debug_source_location_from_il_offset): Likewise.
3309         (mono_debug_il_offset_from_address): Likewise.
3310         (mono_debug_address_from_il_offset): Likewise.
3311
3312 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3313
3314         * class.c (mono_class_from_name_case): Add support for dynamic images.
3315         Fixes #75650.
3316
3317         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3318         for #75479.
3319
3320 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3321         
3322         * reflection.c (mono_method_get_object): Fix warning.
3323
3324 2005-07-28  Martin Baulig  <martin@ximian.com>
3325
3326         * mono-debug.c
3327         (mono_debug_add_wrapper): Also write the wrapper type.
3328
3329 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3330
3331         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3332         
3333         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3334         data indicates the class has none.
3335
3336 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3337
3338         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3339         loader lock with the debugger lock. Prevents deadlocks for beagle.
3340
3341         Beagle can now run on an smp box for a weekend without any
3342         issues. Woohoo!
3343
3344 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3345
3346         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3347         in a module. Fixes #75629.
3348
3349 2005-07-26  Martin Baulig  <martin@ximian.com>
3350
3351         * mono-debug.c (mono_debug_add_wrapper): New static method.
3352         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3353         interncall or a wrapper.
3354
3355         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3356         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3357         (MONO_DEBUGGER_VERSION): Bump to 51.
3358
3359         * mono-debug-debugger.c
3360         (mono_debugger_add_type): Removed this empty function.
3361         (mono_debugger_add_method): Likewise.
3362
3363 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3364
3365         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3366         before accessing method->slot.
3367
3368 2005-07-21  Jb Evain  <jbevain@gmail.com>
3369
3370         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3371         Fixes #75010.
3372
3373 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3374
3375         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3376         #75587.
3377
3378 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3379
3380         * image.h image.c: Add mono_image_get_guid () API function.
3381
3382 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3383
3384         There were issues when multiple threads tried to load
3385         assemblies. A deadlock was created between assemblies_mutex and
3386         mono_domain_assemblies_lock. This fixes the issue by making the
3387         assembly ref counting be lock free. See bug 75586.
3388         
3389         * image.c (mono_image_close): The add ref function here was using
3390         Interlocked operations while the unref was using a mutex and a
3391         --. I don't think this was ever a bug that would be exposed in a
3392         non-pendantic way (ie, by an embedder doing a ref on one thread
3393         and an unref on another), but for the sake of correctness, this is
3394         now Interlocked.
3395
3396         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3397         (mono_assembly_load_reference): Call mono_assembly_addref rather
3398         than touching the refcount ourselves.
3399         (mono_assembly_close): Use InterlockedDecrement to unref the
3400         assembly. Don't acquire the lock unless it is actually needed.
3401
3402 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3403
3404         * class.c (mono_class_layout_fields): Fix calculation of has_references
3405         for generic types.
3406
3407 2005-07-12  Martin Baulig  <martin@ximian.com>
3408
3409         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3410
3411         * metadata.c
3412         (mono_type_hash): Provide better hashing for generic instances.
3413         (mono_generic_inst_hash): Improve hashing.
3414         (mono_generic_class_hash): Likewise.
3415
3416         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3417         generic instances.
3418
3419 2005-07-12  Martin Baulig  <martin@ximian.com>
3420
3421         * reflection.c (mono_reflection_create_runtime_class): Remove the
3422         hack for generic type definitions and non-`Run' assemblies.
3423         (mono_reflection_bind_generic_parameters): Also use
3424         `klass->wastypebuilder' to check for TypeBuilders.
3425
3426 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3427
3428         * class.c (mono_class_layout_fields): Fix calculation of has_references
3429         for generic types.
3430
3431         * class.c (inflate_generic_class): Fix a leak.
3432         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3433         for generic types.
3434
3435 2005-07-11  Martin Baulig  <martin@ximian.com>
3436
3437         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3438         on error.
3439
3440 2005-07-11  Martin Baulig  <martin@ximian.com>
3441
3442         * loader.c (find_method): Also lookup in
3443         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3444
3445 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3446
3447         * appdomain.c (mono_domain_unload): Don't free the error message
3448         before passing it to mono_get_exception_...
3449
3450         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3451         
3452 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3453
3454         * threads.c: try to better guess an available RT signal (bug #75387).
3455
3456 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3457
3458         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3459         and CACHE_OBJECT.
3460
3461 2005-07-07  Martin Baulig  <martin@ximian.com>
3462
3463         * class.c (mono_type_get_name_full): Return NULL for
3464         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3465         fixes #75408.
3466
3467 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3468
3469         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3470         exit the appdomain as well being aborted.
3471
3472         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3473         change back to the root domain after calling managed code. This enables
3474         appdomains using threadpools to be unloaded.
3475
3476 2005-07-07  Martin Baulig  <martin@ximian.com>
3477
3478         * class-internals.h
3479         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3480         into `MonoDynamicGenericClass' since we only need it for dynamic
3481         types.
3482
3483         * reflection.c (mono_class_bind_generic_parameters): We don't need
3484         to compute the `parent' here.
3485
3486 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3487
3488         * culture-info-table.h : regenerated.
3489
3490 2005-07-06  Martin Baulig  <martin@ximian.com>
3491
3492         * icall.c
3493         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3494
3495         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3496
3497 2005-07-06  Martin Baulig  <martin@ximian.com>
3498
3499         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3500         we're doing a signature-only comparision; fixes #74945.
3501
3502 2005-07-06  Martin Baulig  <martin@ximian.com>
3503
3504         * class-internals.h (MonoGenericClass): Moved some things out into
3505         a new `MonoInflatedGenericClass' type.  
3506         (MonoInflatedGenericClass): New type; the `klass' of a
3507         `MonoGenericClass' is now computed lazyly in
3508         mono_get_inflated_generic_class().      
3509
3510         * class.c (mono_get_inflated_generic_class): New public function.
3511         (mono_class_inflate_generic_method): Removed the unused
3512         `MonoClass *' argument.
3513         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3514         all the methods.
3515         (mono_class_create_generic): Make this static and merge it with
3516         mono_class_create_generic_2(); we're now called automatically from
3517         mono_get_inflated_generic_class().
3518
3519         * loader.c (mono_method_signature): Call
3520         mono_get_inflated_method() here.
3521
3522 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3523
3524         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3525         type of fields with RVA.
3526
3527         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3528         for this pseudo class.
3529         (my_mono_class_from_generic_parameter): Likewise.
3530         (mono_class_init): Allow interfaces to have cctors.
3531
3532 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3533
3534         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3535         lazily for AOT methods.
3536
3537 2005-07-05  Martin Baulig  <martin@ximian.com>
3538
3539         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3540         returns FALSE for a successful match, not TRUE.
3541
3542 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3543
3544         * loader.c (mono_method_get_index): Optimize this a bit.
3545
3546 2005-07-04  Martin Baulig  <martin@ximian.com>
3547
3548         * class.c
3549         (class_compute_field_layout): Move the check for generic type
3550         definitions into mono_class_layout_fields().  Fixes #74684.
3551         (mono_class_from_generic_parameter): Correctly compute
3552         `klass->parent'; fixes #75457.
3553
3554         * reflection.c (register_assembly, register_module): Make sure
3555         `domain->rejobject_hash' is already created.
3556
3557 2005-07-02  Martin Baulig  <martin@ximian.com>
3558
3559         * class-internals.h
3560         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3561         `MonoDynamicGenericClass'.      
3562
3563 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3564
3565         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3566         returned by a field getter is null, since null is a valid value.
3567
3568 2005-07-01  Martin Baulig  <martin@ximian.com>
3569
3570         * reflection.c (mono_reflection_generic_class_initialize): Update
3571         the `dgclass->fields [i].parent' to the correct class.
3572         (mono_image_get_fieldref_token): Use the declaring type, not the
3573         reflected type.
3574
3575 2005-07-01  Martin Baulig  <martin@ximian.com>
3576
3577         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3578
3579 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3580
3581         * threads.c (thread_cleanup): assert that thread != NULL
3582         (wait_for_tids_or_state_change): We were using the wrong variable
3583         when accessing wait->threads. `i' was always out of the bounds of
3584         the array.
3585
3586 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3587
3588         * loader.c: map user32 and kernel32 to libMonoSupportW
3589
3590 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3591
3592         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3593
3594 2005-06-28  Martin Baulig  <martin@ximian.com>
3595
3596         * loader.c (method_from_methodspec): Fix #75334.
3597
3598 2005-06-28  Martin Baulig  <martin@ximian.com>
3599
3600         Fix #74953 - Arrays now implement the generic IList<T> interface
3601         on the 2.0 platform.
3602
3603         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3604
3605         * reflection.c (mono_class_bind_generic_parameters): New public
3606         function; similar to mono_reflection_bind_generic_parameters(),
3607         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3608
3609         * domain.c (mono_init_internal): Try to initialize.
3610         `mono_defaults.generic_array_class' here; this'll only succeed if
3611         we're using the 2.0 corlib.
3612
3613         * icall.c
3614         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3615         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3616         (mono_lookup_internal_call): Added support for nested classes.
3617
3618         * loader.c
3619         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3620         we're an interncall and have generic arguments.
3621
3622         * class.c
3623         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3624         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3625         instance of System.Array.InternalArray<T> for arrays, so they
3626         implement the generic IList<T> interface.
3627
3628 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3629
3630         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3631         (chastamar@yahoo.com). Fixes #75374.    
3632
3633 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3634
3635         * culture-info-table.h: regenerated.
3636
3637 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3638
3639         * icall.c: handle spaces correctly for base64 strings.
3640
3641 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3642
3643         * *.c: Kill some warnings.
3644
3645 2005-06-23  Duncan Mak  <duncan@novell.com>
3646
3647         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3648         that this builds on Solaris 10 (x86).
3649
3650 2005-06-23  Martin Baulig  <martin@ximian.com>
3651
3652         * class.c
3653         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3654         generic type definitions.
3655
3656 2005-06-23  Martin Baulig  <martin@ximian.com>
3657
3658         Fix #75331.
3659
3660         * metadata.c (mono_class_get_overrides): Renamed to
3661         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3662         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3663         pass it to mono_get_method_full().
3664
3665 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3666
3667         * reflection.c (mono_reflection_create_runtime_class): take the
3668         mono_domain_lock in this method. Prevents deadlocks
3669
3670 2005-06-22  Martin Baulig  <martin@ximian.com>
3671
3672         * loader.c (method_from_methodspec): Fix #75330.
3673
3674 2005-06-22  Martin Baulig  <martin@ximian.com>
3675
3676         * reflection.c (type_get_qualified_name): Use
3677         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3678         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3679         argument; use it if we don't have an assembly name.
3680
3681 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
3682
3683         * object.c: In mono_message_init, set "copy out" flag for in
3684         parameters with the [Out] flag.
3685
3686 2005-06-21  Martin Baulig  <martin@ximian.com>
3687
3688         * class.c
3689         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
3690         and MONO_TYPE_PTR.
3691
3692 2005-06-21  Martin Baulig  <martin@ximian.com>
3693
3694         * class.c (mono_class_init): Don't initialize `class->fields' for
3695         generic instances since they're initialized again in
3696         compute_field_layout(). 
3697         (compute_field_layout): Set the field's `generic_info' here; fix
3698         #75320. 
3699
3700 2005-06-21  Martin Baulig  <martin@ximian.com>
3701
3702         * class-internals.h
3703         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
3704
3705         * metadata.c (mono_metadata_generic_method_equal): Also
3706         distinguish the `generic_class'; fixes #75334.
3707
3708 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3709
3710         * domain.c:
3711         * appdomain.c:
3712         * domain-internals.h:
3713         * reflection.c: 'domain_assemblies' field is now protected by its own
3714         lock. Don't call into managed code to run the AssemblyLoad event if we
3715         now there are no registered delegates for it.
3716
3717 2005-06-20  Martin Baulig  <martin@ximian.com>
3718
3719         * class.c (mono_class_is_assignable_from): Use a custom version of
3720         mono_class_has_parent() to make things work for generic instances;
3721         fix #75300.
3722
3723 2005-06-20  Martin Baulig  <martin@ximian.com>
3724
3725         * loader.c (method_from_methodspec): Apply a patch from
3726         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
3727
3728 2005-06-20  Martin Baulig  <martin@ximian.com>
3729
3730         * class.c (mono_class_init): Reverted Zoltan's last change; it
3731         breaks generics.
3732
3733 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3734
3735         * threads.c (wait_for_tids_or_state_change): Add missing locking.
3736
3737 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3738
3739         * socket-io.c: fix the index in the socket array for writable/error
3740         sockets. Fixes bug #75306.
3741
3742 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3743
3744         * class.c (mono_class_init): Allow interfaces to have static ctors.
3745
3746 2005-06-17  Martin Baulig  <martin@ximian.com>
3747
3748         * loader.c (method_from_methodspec): Use `context->container' when
3749         parsing the `gmethod->inst'.
3750
3751 2005-06-17  Martin Baulig  <martin@ximian.com>
3752
3753         * class.c (mono_type_get_name_recurse): Don't add the assembly
3754         name for type arguments.
3755
3756 2005-06-15  Martin Baulig  <martin@ximian.com>
3757
3758         * reflection.c (mono_image_get_inflated_method_token): Encode
3759         correct klass; fixes #75260.
3760
3761 2005-06-13 Michal Moskal <malekith@nemerle.org>
3762
3763         * icall.c: Make GetCorrespondingMethod/Constructor take
3764         MonoReflectionMethod method not MonoMethod. Removed
3765         MonoType.GetCorrespondingField, and make
3766         MonoGenericType.GetCorrespondingField take name not
3767         MonoClassField.
3768
3769 2005-06-13  Michal Moskal <malekith@nemerle.org>
3770
3771         * reflection.c (field_encode_signature, encode_locals):
3772          Make sizes of buffers for types larger (for big generic types).
3773          (create_generic_typespec,
3774          mono_reflection_sighelper_get_signature_local,
3775          mono_reflection_sighelper_get_signature_field):
3776          Add asserts for too small buffers.
3777
3778 2005-06-15  Martin Baulig  <martin@ximian.com>
3779
3780         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
3781         if our parent is not a dynamic type.
3782
3783 2005-06-15  Martin Baulig  <martin@ximian.com>
3784
3785         * class-internals.h (MonoTypeNameFormat): New enum.
3786
3787         * class.c
3788         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
3789         (mono_type_get_full_name): Removed.
3790         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
3791         argument instead of the boolean's.
3792
3793         * icall.c (ves_icall_System_MonoType_getFullName):
3794         Added `gboolean assembly_qualified'.    
3795
3796         * reflection.h
3797         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
3798
3799         * reflection.c (mono_reflection_parse_type): Parse the new type
3800         name format.
3801
3802 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3803
3804         * icall.c: no need to convert from utf16 to utf8 and then back again
3805         after the call to GetLogicalDrives.
3806
3807 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3808
3809         * icall.c: frombase64. Fix problems exposed by new tests.
3810
3811 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3812
3813         * icall.c: added internal calls for converting char [] and strings in
3814         base64 into byte [].
3815
3816 2005-06-10  Martin Baulig  <martin@ximian.com>
3817
3818         * class.c (mono_class_create_generic_2): Read the nested classes
3819         from the metadata rather than from `gklass->nested_classes' since
3820         `gklass' might not be initialized yet.
3821
3822 2005-06-09  Duncan Mak  <duncan@novell.com>
3823
3824         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
3825         all public headers. Fixes #74919.
3826
3827 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
3828
3829         * domain.c: The key for proxy_vtable_hash is now a pointer
3830         array. Added new GHashFunc and GCompareFunc functions for this.
3831
3832         * class.h: The list of interfaces in MonoRemoteClass is known in
3833         advance and can't grow (we create a new MonoRemoteClass if needed),
3834         so now the interface array can be allocated together with
3835         MonoRemoteClass.
3836         
3837         * object.c: Added a new method create_remote_class_key.
3838         Fixed mono_remote_class so it does not depend on
3839         mono_upgrade_remote_class.
3840         Removed extend_interface_array.
3841         Added new method clone_remote_class(), which makes a copy of a remote
3842         class and adds a new interface or class to it.
3843         mono_upgrade_remote_class() now creates a new remote class (or gets
3844         it from the cache) if an vtable upgrade is needed. In this way
3845         we make sure that other objects sharing the same remote class
3846         don't get the new vtable with unwanted interfaces.
3847         
3848         * object-internals.h:
3849         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
3850         
3851         * marshal.c: Track changes in mono_upgrade_remote_class().
3852
3853 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
3854         * icall.c: Add runtime methods for obtaining members of inflated
3855         class, which were created from supplied non-inflated members. It
3856         is used in internal Get{Method,Constructor,Field} methods in
3857         System.Type
3858
3859 2005-06-09  Martin Baulig  <martin@ximian.com>
3860
3861         * reflection.c
3862         (mono_reflection_bind_generic_method_parameters): Fix #75169.
3863
3864 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3865         * reflection.c (mono_image_basic_init): Define
3866         Version in MonoDynamicAssembly. 
3867         
3868 2005-06-08  Martin Baulig  <martin@ximian.com>
3869
3870         Fix #75136.
3871
3872         * loader.c
3873         (mono_method_signature_full): New public method; takes a
3874         `MonoGenericContext *'.
3875         (find_method): Use mono_method_signature_full() and pass the
3876         klass'es context to it.
3877
3878         * class.c (mono_class_is_inflated_method): Use
3879         mono_method_signature_full() and pass the context to it.
3880
3881 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
3882
3883         * object.c: add proper locking in mono_remote_class_vtable(),
3884         fixes possible memory corruption.
3885
3886 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
3887
3888         * marshal.c (mono_remoting_marshal_init): set
3889         initialized after initialization.
3890
3891 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3892
3893         * locales.c : hush.
3894
3895 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
3896
3897         * object.c (extend_interface_array): fix really silly
3898         memory corrupting / comparison bug.
3899
3900 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3901
3902         * reflection.c: Functions added to support the creation
3903         of CustomAttributeData, which includes Attribute data
3904         used by ReflectionOnly methods.
3905
3906         * reflection.h:  mono_reflection_get_custom_attrs_data and
3907          mono_custom_attrs_data_construct added (functions exposed).
3908
3909          * icall.c: Added mono_reflection_get_custom_attrs_data
3910          as icall.
3911         
3912 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
3913
3914         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
3915         lupus's request.
3916
3917 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
3918
3919         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
3920
3921         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
3922         dynamic DllImportAttribute.
3923
3924         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
3925         dynamic DllImportAttribute.
3926
3927         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
3928         Fixes #75162.
3929
3930 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3931
3932         * threads.c: avoid segfault when an unstarted thread is aborted.
3933
3934 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
3935
3936         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
3937         Returns the name and version of the runtime for reporting.
3938
3939 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3940
3941         * appdomain.c: bump corlib version.
3942         * object-internals.h: new field in MonoReflectionAssembly.
3943
3944 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3945
3946         * object-internals.h: Carlos forgot to add this field.
3947
3948 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3949
3950         * icall.c: Added create_version to create instances
3951         of Version of MonoReflectionAssemblyName. This change helps
3952         the AssemblyName tests to keep running fine.
3953         
3954 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
3955   
3956         * object.c (mono_method_return_message_restore): A somehow less
3957         intrusive fix for #75138.
3958
3959 2005-06-03  Raja R Harinath  <rharinath@novell.com>
3960
3961         * object.c (mono_method_return_message_restore): Fix computation
3962         of expected number of out args.
3963
3964 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
3965
3966         * reflection.c (mono_image_get_method_info): Fix the case when the
3967         charset is empty.
3968
3969 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
3970
3971         * object.c: Added missing null check in
3972           mono_method_return_message_restore.
3973
3974 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
3975
3976         * reflection.c (mono_image_get_method_info): Handle the case when
3977         dllentry is empty.
3978
3979 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
3980
3981         * object.c: When creating the vtable for a proxy, take into account
3982         all inherited interfaces, not only the ones registered in
3983         iclass->interfaces. This fixs bug #74996.
3984         Also, in mono_method_return_message_restore, verify that the array
3985         of out args has the expected lengh.
3986
3987 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3988
3989         * socket-io.c: update the timeout in Poll when the call is interrupte.
3990
3991 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3992
3993         * socket-io.c: support abort/suspend in Select_internal after last
3994         change.
3995
3996 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3997
3998         * threadpool.c: remove warning.
3999
4000 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4001
4002         * icall.c:
4003         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4004         removing the 1024 limit from select(). Runtime part of the fix for
4005         bug #71203.
4006
4007 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4008
4009         * socket-io.c: when resolving the addresses for the same
4010         host returned by gethostname(), get the local IPs from the interface
4011         list. Loopback addresses are discarded if the are interfaces up with
4012         non-loopback ones. Fixes bug #63265.
4013
4014 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4015
4016         * appdomain.c, verify.c, object-internals.h, reflection.c:
4017         bumped corlib number to 36, and added new extra_flags field
4018         to ReflectionMethodBuilder and friends.  Fixes #75060.
4019
4020 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4021
4022         * gc.c: register a new weak link only if the object is non-null
4023         (fixes bug#75047).
4024
4025 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4026
4027         * culture-info.h : short time pattern too.
4028
4029 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4030
4031         * culture-info.h : expand long time pattern string length.
4032
4033 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4034
4035         * culture-info-table.h : update (more French date format; #72788).
4036
4037 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4038
4039         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4040         the method is static. Fixes #75029.
4041
4042 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4043
4044         * reflection.c: Update the table_idx field of method builders after
4045         saving the module, since it can change. This is a workaround for
4046         bug #74914. 
4047
4048 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4049
4050         * culture-info-table.h : update (additional French date format).
4051
4052 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4053
4054         * icall.c (ves_icall_type_Equals): Revert last change.
4055         
4056         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4057
4058         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4059
4060 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4061
4062         * class-internals.h: Added executioncontext_class field to 
4063         MonoDefaults structure.
4064         * domain.c: Cache System.Threading.ExecutionContext class in 
4065         mono_defaults.
4066         * object.c: Capture the ExecutionContext for asynchroneous calls in
4067          mono_async_result_new.
4068         * object-internals.h: Added execution_context and original_context 
4069         fields to MonoAsyncResult. Added execution_context to MonoThread.
4070         * security-manager.c|.h: Added mono_get_context_capture_method to 
4071         return the capture method (if required by the security manager or by
4072         the framework version used).
4073         * threadpool.c: Apply capture (if present) ExecutionContext in 
4074         mono_async_invoke and revert to original context after it completes.
4075
4076 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4077
4078         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4079
4080 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4081
4082         * culture-info-table.h : zh-CHT related workaround.
4083
4084 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4085
4086         * marshal.c (emit_marshal_custom): Add some error checking and call the
4087         methods in the ICustomMarshaler interface. Fixes #74875.
4088         
4089         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4090         native->managed wrappers.
4091
4092 2005-05-12  Martin Baulig  <martin@ximian.com>
4093
4094         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4095         here and use the loader lock.
4096
4097         * mono-debug.c: Properly lock when the debugger is not attached.
4098         (mono_debug_init): Release the initial lock if we're not running
4099         in the debugger.
4100
4101 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4102
4103         * marshal.c (emit_marshal_custom): Pass through NULL values without
4104         calling the custom marshalling routines.
4105
4106         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4107         conversion in structures. Fixes #74882.
4108
4109 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4110
4111         * culture-info-table.h : zh-* cultures were missing.
4112
4113 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4114
4115         * threads.c: Added a new event background_change_event which is signaled
4116         when a thread changes its background mode.
4117         Moved here several checks previously done in managed code. The checks
4118         require the thread lock, and using the thread lock in managed code
4119         can result in deadlocks.
4120         Merged Start_internal and Thread_internal into a single method. Now 
4121         Thread_internal does all work of creating and starting a thread.
4122         Added icalls for setting and getting the state of the object. Moved from
4123         managed code to avoid locking there.
4124         Added wait_for_tids_or_state_change() which is called instad of
4125         wait_for_tids when waiting for non-backround threads to end. This method
4126         will return if one of the threads ends or the background_change_event
4127         is signaled.
4128         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4129         the background mode. This method signals the background_change_event
4130         event.
4131         * icall.c:
4132         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4133         removed Start_internal.
4134         
4135 2005-05-11  Martin Baulig  <martin@ximian.com>
4136
4137         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4138         to order of some fields to get proper alignment on 64-bit machines.
4139
4140 2005-05-11  Martin Baulig  <martin@ximian.com>
4141
4142         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4143         changes as they're broken and completely fuck up the debugger.
4144
4145         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4146
4147 2005-05-10  Martin Baulig  <martin@ximian.com>
4148
4149         * reflection.c (mono_reflection_generic_class_initialize): Don't
4150         call mono_class_setup_parent() here.
4151
4152 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4153
4154         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4155         send/receive timeout use an integer in milliseconds. We were using a
4156         struct timeval.
4157
4158 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4159
4160         * locales.c:
4161         (internal_get_cultures): reserve the first slot of the array for the
4162         InvariantCulture, which will be filled in managed code.
4163
4164 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4165
4166         * reflection.c (mono_image_fill_module_table): Initialize the
4167         GENERATION field as well.
4168
4169 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4170
4171         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4172         Monitor.Enter on the object.
4173
4174 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4175
4176         * threads.c: Enable the wait for running threads when exiting.
4177         * icall.c: Suspend all threads before exiting.
4178
4179 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4180
4181         * assembly.c (mono_assembly_load_reference): Fix warning.
4182
4183 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4184
4185         * threadpool.c: changed the default number of threads per cpu. From now
4186         on, the default will be 20 + (5 * number of cpus) instead of 50.
4187
4188 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4189
4190         * loader.c (mono_method_get_signature_full): Add locking here.
4191
4192 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4193
4194         * appdomain.c: Moved methods for parsing and freeing assembly
4195         names to assembly.c.
4196         * assembly.c, domain-internals.h: Created public methods for parsing
4197         assembly names. Fixed mono_assembly_load_with_partial_name:
4198         it now finds the best match, taking into account the version,
4199         token and culture specified in the partial name. Also return
4200         the latest version if no version information is specified.
4201
4202 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4203
4204         * threadpool.c: replace check for SocketAsyncCall class.
4205
4206 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4207
4208         * threadpool-internals.h:
4209         * Makefile.am: added threadpool-internals.h
4210
4211         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4212         that happen in threadpool threads (tested on MS).
4213         (mono_thread_pool_remove_socket): new function that dispatch any pending
4214         AIO call on a socket that is closing. By now only epoll really needs it,
4215         as select/poll wake up when the socket closes.
4216
4217
4218         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4219
4220 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4221
4222         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4223
4224 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4225
4226         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4227
4228 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4229
4230         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4231         has an abort request, convert it into a suspend request.
4232
4233 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4234
4235         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4236         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4237         is not supported yet.
4238
4239 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4240
4241         * image.c: register assemblies loaded from data (bundles) in the loaded
4242         assemblies hash. Fixes bug #74772.
4243
4244 2005-04-29  Martin Baulig  <martin@ximian.com>
4245
4246         * class.c (mono_type_get_name_recurse): Update to the new naming
4247         schema from the latest .NET 2.x beta2.
4248         (mono_class_setup_vtable_general): If we're a generic instance,
4249         copy the vtable from our generic type definition and inflate all
4250         the methods in it.
4251
4252         * loader.c (find_method): Update to the new naming schema from the
4253         latest .NET 2.x beta2.
4254
4255 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4256
4257         * class.c (mono_class_init): Add a mono_loader_unlock to the
4258         #74734 fix.
4259
4260 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4261
4262         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4263         suspend_all_other_threads () call for the time being, since it can hang.
4264
4265         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4266         the background threads to exit, since it can also hang.
4267
4268         * class.c (mono_class_init): Applied patch from Ankit Jain 
4269         (radical@gmail.com). Avoid pending init errors when a field refers
4270         to a nested class using a typeref. Fixes #74734.
4271
4272         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4273         this for dynamic modules.
4274
4275 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4276
4277         * threads.c: don't wait for threads that are in the process of aborting
4278         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4279         and waiting for background threads to finish. This makes xsp and
4280         mod-mono-server exit without random length delays and/or hangs.
4281
4282 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4283
4284         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4285
4286 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4287
4288         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4289         dynamic types to prevent infinite loops. Fixes #74727.
4290
4291         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4292         ..._is_assignable_to.
4293
4294 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4295
4296         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4297
4298 2005-04-25  Martin Baulig  <martin@ximian.com>
4299
4300         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4301
4302         * domain.c
4303         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4304
4305         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4306
4307         * reflection.c (build_compressed_metadata): Set metadata header
4308         version to 2.0.
4309
4310 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4311
4312         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4313         number into an integral and a decimal part. Fixes #70473.
4314
4315         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4316
4317 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4318
4319         * culture-info-table.h : reflected the latest locale-builder output.
4320
4321 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4322
4323         * threadpool.c: check for SuspendRequested too when deciding if
4324         mono_thread_interruption_checkpoint should be called.
4325
4326 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4327
4328         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4329         * threads.c: remove interruption_mutex and use Interlocked instead. When
4330         suspending all the threads, wait for all the suspended events at once.
4331         If we're shutting down and get an APC that is going to be queued,
4332         call mono_thread_execute_interruption immediately, as the thread might
4333         be sleeping on a pthread condition or mutex.
4334
4335         * icall.c: call mono_runtime_set_shutting_down before suspending the
4336         threads.
4337
4338         Fixes bug #74693. And now xsp is happier when exiting.
4339
4340 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4341
4342         * loader.c (mono_stack_walk): Fix #74690.
4343
4344 2005-04-22  Martin Baulig  <martin@ximian.com>
4345
4346         * mono-debug.h (MonoDebugMethodJitInfo): Added
4347         `MonoDebugMethodJitInfo *jit'.
4348
4349         * mono-debug.c (mono_debug_read_method): Cache the
4350         MonoDebugMethodJitInfo in `address->jit'.
4351         (mono_debug_free_method_jit_info): New public method.
4352
4353 2005-04-22  Martin Baulig  <martin@ximian.com>
4354
4355         * class.c (mono_class_is_assignable_from): Disallow
4356         type parameter -> interface.
4357
4358 2005-04-21  Dick Porter  <dick@ximian.com>
4359
4360         * threads.c (mono_thread_create): Turn an assertion into an error.
4361
4362 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4363
4364         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4365         
4366         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4367         Fix some gcc 4.0 warnings.
4368
4369 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4370
4371         * file-io.c: fix alt dir separator char on unix systems
4372         and cleanup (fixes bug #71214).
4373
4374 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4375
4376         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4377         a call to a remote domain, since the method may be an
4378         interface method in the client domain. This fixes bug #74192.
4379
4380 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4381
4382         * threadpool.c: recv/send are now performed before going back to managed
4383         code to save one transition.
4384
4385 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4386
4387         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4388
4389         * metadata/threadpool.c: removed hack to workaround the bug above.
4390
4391         Fixes bug #74618.
4392
4393 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4394
4395         * reflection.c reflection.h: Fix handling of parameter defaults in
4396         dynamic methods. Also fixes handling of parameter attributes.
4397         Fixes #74609.
4398
4399         * mono-debug.c (mono_debug_close_image): Fix warning.
4400
4401 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4402
4403         * socket-io.h: replaced old unused field with new 'blocking'.
4404         * threadpool.c: restore socket blocking state on windows(tm).
4405
4406 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4407
4408         * icall.c: don't return the codebase in the AssemblyName[] returned by
4409         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4410         * object-internals.h: Removed FIXME (fields were presents) and fixed
4411         versioncompat declaration.
4412
4413 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4414
4415         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4416         not closed, so don't cleanup when it happens.
4417
4418 2005-04-13  Chris Toshok  <toshok@ximian.com>
4419
4420         * mono-debug-debugger.h: change prototype for
4421         mono_debugger_lookup_type.
4422
4423         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4424         this function, although it should probably be named
4425         mono_debugger_init_type.
4426
4427 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4428
4429         * threadpool.c: fix non-AIO case.
4430
4431 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4432
4433         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4434         the built-in profiler to measure just JIT compilation times.
4435
4436 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4437
4438         * threadpool.c: the epollfd might be closed by another thread at
4439         any time, so ignore EBADF at treat it as a "we're closing" sign.
4440
4441 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4442
4443         * threadpool.c: release the semaphores with a count equals to the number
4444         of working threads in both IO and regular pools. Fixed typo that messed
4445         up the count of IO pool threads. Don't initialize the pipe handles if
4446         we're using epoll.
4447
4448 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4449
4450         * threadpool.c: some systems don't like a NULL when deleting the socket
4451         from epoll.
4452
4453 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4454
4455         * threadpool.c: fix semaphore allocation.
4456
4457 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4458
4459         * threadpool.c: added epoll() based implementation for asynchronous IO
4460         that is used instead of the default poll() when available.
4461         It can be disabled by setting MONO_DISABLE_AIO.
4462
4463 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4464
4465         * threadpool.c: windows needs 'closesocket' and instead of returning
4466         0 when the stream is closed while in select, it returns -1. Fixes bug
4467         #74573.
4468
4469 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4470
4471         * class.c (class_compute_field_layout): Fix the regression caused by
4472         the previous try.
4473
4474 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4475
4476         * threadpool.c: separate pool for socket async. IO.
4477         * threadpool.h: mono_max_worker_threads is not a global any more.
4478
4479 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4480
4481         * class.c (class_compute_field_layout): Fix #74549.
4482
4483 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4484
4485         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4486         use 2 connected sockets instead.
4487
4488 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4489
4490         * mono-config.c: Add new entry point for mkbundle
4491         mono_config_parse_memory. 
4492
4493 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4494
4495         * threadpool.c: removed another unused function.
4496
4497 2005-04-08  Ankit Jain  <radical@corewars.org>
4498
4499         * reflection.c (get_default_param_value_blobs): Add 'types'
4500         parameter to get the types encoded in the constant table.
4501         (mono_param_get_objects): Use the type from the constant table,
4502         not the type of the parameter, when creating default values.
4503         Handle null default values correctly.
4504
4505 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4506
4507         * file-io.c:
4508         * file-io.h:
4509         * threadpool.c:
4510         * threadpool.h:
4511         * icall.c:
4512         * socket-io.c: removed dead code for async IO.
4513
4514 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4515
4516         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4517
4518         * threadpool.c: intercept socket async. calls and pass them to a thread
4519         that is polling and dispatching the job items to the threadpool as
4520         socket become ready. Fixes bugs #71217, #71933.
4521
4522         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4523         between char and short/ushort arrays.
4524
4525         * socket-io.c: remove dead code.
4526
4527 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4528
4529         * locales.c,
4530           icall.c : removed InternalToUpper_Comp() and
4531           InternalToLower_Comp().
4532
4533 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4534
4535         * char-conversions.h : The tables were incorrectly generated. Should
4536           be generated against invariant culture.
4537
4538 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4539
4540         * object.c (mono_runtime_invoke_array): Fix return value when 
4541         passing pre-created valuetype objects to ctors.
4542
4543         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4544         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4545         Fixes #74338.
4546
4547 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4548
4549         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4550         only used with --security and hides the wrong corlib version error.
4551
4552 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4553
4554         * class.c: Changed mono_class_name_from_token so that types
4555         outside of a namespace don't have an initial period.  Improved
4556         the g_warning message used in _mono_class_get when loading
4557         fails.
4558         * assembly.c: In mono_assembly_load_reference, when an assembly
4559         can't be found, "No such file or directory" is misleading and
4560         unhelpful because a few paths were checked for the presence of
4561         the assembly.  When that happens (ENOENT), display a nicer
4562         message indicating the directories that were searched.  In all
4563         cases, the warning is made easier to read for non-hackers.
4564
4565 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4566
4567         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4568         project/solution.
4569         * appdomain.h|domain.c: Removed inline from functions.
4570         * appdomain.c: Reduced warnings when compiling on windows.
4571         * icall.c: Fixed output_debug declaration to gunichar2*.
4572         * mono-config.c: Reduced warnings when compiling on windows.
4573         * rand.c: Added missing "windows.h". Added missing return value.
4574         * rawbuffer.c: Added missing winsock2.h for windows.
4575         * sysmath.h: Added mono-compiler.h header to allow/ease 
4576         compilation with non-GCC compilers.
4577         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4578         Removed cast warnings.
4579
4580         Adapted from the work of J Lothian (for VC6).
4581
4582 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4583
4584         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4585         from default_path.
4586
4587 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4588
4589         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4590         the 2.0 profile.
4591
4592 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4593
4594         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4595         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4596         stuff, and it would probably use $(prefix)/share rather than
4597         $(prefix)/lib.
4598
4599 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4600
4601         * console-io.c: added 2 includes that might be missing.
4602
4603 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4604
4605         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4606         profile.
4607
4608         * reflection.c (create_custom_attr): Allocate the params array using
4609         alloca so it gets GC tracking.
4610
4611 2005-03-23  Chris Toshok  <toshok@ximian.com>
4612
4613         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4614         out some spew.
4615
4616 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4617
4618         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4619         changes to pick up any changes in prefix, etc.
4620
4621 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4622
4623         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4624         
4625         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4626         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4627
4628 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4629
4630         * class-internals.h object-internals.h class.c reflection.c: Extend the
4631         mono_lookup_dynamic_token () function to return the class of the
4632         token as well. 
4633
4634         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4635         well. Fixes #73848.
4636
4637 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4638
4639         * security-manager.c: Skip inheritance checks for intra-corlib
4640         class inheritance and method overrides. This skips a lot of checks
4641         and (anyway) permissions cannot work until corlib is loaded.
4642
4643 2005-03-23  Martin Baulig  <martin@ximian.com>
4644
4645         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4646         MONO_TYPE_GENERICINST.  
4647
4648 2005-03-23  Martin Baulig  <martin@ximian.com>
4649
4650         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4651
4652 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4653
4654         * class.c: added locking comments to some functions.
4655         Cache the interface offsets arrays (saves about 20 KB
4656         of runtime memory in a typical app).
4657         Reduce the time overhead in mono_class_setup_supertypes ().
4658
4659 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4660
4661         * icall.c: speedup and fix leaks in GetMethodsByName and
4662         GetPropertiesByName.
4663
4664 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4665
4666         * reflection.c: some locking fixes.
4667
4668 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4669
4670         * metadata.c: added missing break in case statement.
4671
4672 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4673
4674         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4675         typedbyref return values. Fixes #73941.
4676
4677 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4678
4679         * security-manager.c|h: Added demandunmanaged method and 
4680         suppressunmanagedcodesecurity class to MonoSecurityManager.
4681         Renamed aptc class to allowpartiallytrustedcallers.
4682
4683 2005-03-17  Martin Baulig  <martin@ximian.com>
4684
4685         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
4686
4687 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4688
4689         * file-io.c: disabled file async. IO using aio_*. It uses the
4690         threadpool now. Workaround for bug #73718.
4691
4692 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4693
4694         * assembly.h, mono-config.c: added code to deal with bundled configs
4695         for bundled assemblies.
4696
4697 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
4698
4699         * *.c, private.h: cleanup, removing old private.h header file.
4700
4701 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4702
4703         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
4704         and throw_on_unmappable_char attributes.
4705
4706 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
4707
4708         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
4709         _ProcessName_internal.
4710
4711 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4712
4713         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
4714         #73631.
4715
4716         * icall.c threads.c threads-types.h: Remove slothash icalls as they
4717         are no longer used.
4718
4719 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4720
4721         * object.c (compute_class_bitmap): Add support for generics. Fixes
4722         #73527.
4723
4724 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4725
4726         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
4727
4728 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4729
4730         * filewatcher.c: commented out the code for windows watcher, as we don't
4731         use it (we use the managed implementation instead).
4732
4733 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4734
4735         * object-internals.h (MonoThread): Remove 'unused1' field.
4736
4737         * appdomain.c: Bump corlib version.
4738
4739         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
4740
4741         * reflection.c (mono_reflection_create_runtime_class): Remove the
4742         AssemblyBuilder.Save optimization since it causes too many problems.
4743
4744 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
4745
4746         * exception.c|h: Added mono_get_exception_reflection_type_load to
4747         create a ReflectionTypeLoadException object.
4748         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
4749         to return NULL is a InheritanceDemand fails during reflection. Updated
4750         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
4751         ReflectionTypeLoadException if an InheritanceDemand fails during 
4752         reflection. Added icall mapping for GetLinkDemandSecurity.
4753         * security-manager.c|h: Added ves_icall_System_Security_
4754         SecurityManager_GetLinkDemandSecurity internal call to return the
4755         class and methods permissions set for a LinkDemand. Removed unused
4756         fields in MonoSecurityManager.
4757
4758 2005-03-10  Martin Baulig  <martin@ximian.com>
4759
4760         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
4761         it's a generic instance.
4762
4763 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
4764
4765         * reflection.c (mono_get_object_from_blob): Applied patch from
4766         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
4767
4768         * class.c (mono_class_is_assignable_from): Another try at fixing 
4769         #73469 without breaking anything.
4770
4771 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4772
4773         * class.c: (mono_class_is_assignable_from): Revert the last changes
4774         since they don't work with generics.
4775         
4776         * class.c (mono_class_is_assignable_from): Fix build bustage.
4777
4778         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
4779         the managed IsAssignableFrom method. Fixes #73469.
4780
4781         * reflection.c (mono_reflection_call_is_assignable_from): New helper
4782         function.
4783
4784 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4785
4786         * object.c (mono_load_remote_field_new): Fix returning uninitialized
4787         memory when the remoting callback does not sets the out arguments.
4788         Fixes #73007.
4789
4790         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
4791         by mistake.
4792
4793         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
4794
4795         * object-internals.h (MonoStackFrame): Sync with managed object layout.
4796
4797         * appdomain.c: Bump corlib version.
4798
4799 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4800
4801         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
4802         function.
4803
4804         * threads.c (mono_thread_attach): Detect threads which are not started
4805         by the GC pthread wrappers.
4806
4807 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
4808
4809         * icall.c: Added new icall for RNG.
4810         * rand.c|h: Added new icall to open the RNG. This allows to share a 
4811         single handle on Linux to access /dev/urandom and fix #73183.
4812
4813 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
4814
4815         * object.c: setting the new vtable in a transparent proxy object must
4816         not change the GC descriptor.
4817
4818 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4819
4820         * object.c: fixed compilation without GCJ support.
4821         * reflection.c: for runtime-created types ensure klass->has_references
4822         is correct (bug #73215).
4823
4824 2005-03-02  Martin Baulig  <martin@ximian.com>
4825
4826         * class.c (mono_class_is_assignable_from): Make this work if
4827         `oklass' is a generic instance; fixes #72831.
4828
4829 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4830
4831         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
4832         with hasthis set.
4833         
4834         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
4835
4836         * marshal.c: Reorganize native->managed marshalling code to also use
4837         the emit_marshal_... functions.
4838
4839 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4840
4841         * object.c: typed allocs have issues with bitmap sizes > 30,
4842         so check for max_set >= 30.
4843
4844 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4845
4846         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
4847         managed code. Fixes #73012.
4848
4849         * metadata.h (MonoMarshalSpec): Add elem_mult field.
4850
4851         * metadata.c reflection.c: Load/Emit elem_mult as well.
4852         
4853         * metadata.h (MonoMarshalSpec): Add comment.
4854
4855         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
4856
4857         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
4858         num_elem to -1 if not given.
4859
4860         * object-internals.h (MonoReflectionMarshal): Add has_size field.
4861
4862         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
4863         given values.
4864
4865 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
4866
4867         * null-gc.c (mono_gc_free_fixed): Was not compilable.
4868
4869 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
4870
4871         * reflection.c (encode_marshal_blob): Encode param_num field as well.
4872
4873         * object-internals.h (MonoReflectionMarshal): Add param_num field.
4874
4875 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4876
4877         * object.c: generalized the reference bitmap creation
4878         and added hooks for the new GC.
4879         * class-internals.c: removed the gc_bitmap field from MonoClass.
4880
4881 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4882
4883         * domain.c: help the compiler to produce better code
4884         in mono_jit_info_table_find ().
4885
4886 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
4887
4888         * object.c: make all allocations look typed.
4889
4890 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4891
4892         * socket-io.c: load Mono.Posix if it's not loaded already
4893         (fixes bug#73033).
4894
4895 2005-02-24  Martin Baulig  <martin@ximian.com>
4896
4897         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
4898         * reflection.c (dup_type): Likewise.
4899
4900 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
4901
4902         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
4903         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
4904
4905 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
4906
4907         * domain.c, threads.c, object-internals.h: make the critical thread
4908         local vars use the fast access mode (even when we're compiled in
4909         a lib). Provide accessors to be used by the jit during codegen.
4910
4911 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4912
4913         * appdomain.c: Changed hook functios behavior to include
4914         support for the reflection only assemblies. Some icalls were changed
4915         to support the mentioned assemblies too. Signatures of static methods
4916         try_assembly_resolve and real_load now have an additional parameter:
4917         refonly.
4918
4919         * assembly.c: General changes to mono_assembly_ methods to support
4920         reflection only api. Functions mono_assembly_open, mono_assembly_load,
4921         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
4922         suffix, to support an additional gbool parameter to specify whether
4923         the assembli is reflection only or not. Created some new hook functions 
4924         to add support for reflection only assemblies. Signatures of static 
4925         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
4926         have now an additional parameter: refonly.
4927
4928         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
4929         indicating whether the assembly is reflection only or not.
4930
4931         * exception.c: Add mono_get_exception_invalid_operation.
4932
4933         * icall.c: Throw an InvalidOperationException when trying to invoke
4934         a property/method/event, or trying to set/get the value of a field.
4935         Also add an icall to retrieve the ref_only flag to the
4936         MonoReflectionAssembly.
4937
4938 2005-02-23  Chris Toshok  <toshok@ximian.com>
4939
4940         Part of fix for #72827.
4941         * mono-debug.c (mono_debug_add_method): add lexical block data to
4942         the info we write.  Kind of a hack at the moment - we copy the
4943         lexical block info from the MonoDebugMethodInfo to the
4944         MonoDebugMethodJitInfo here, before writing it.
4945         (mono_debug_read_method): read the lexical block info.
4946
4947         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
4948
4949         * debug-mono-symfile.h: add lexical block support.
4950
4951         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
4952         support.
4953
4954 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4955
4956         * loader.c (mono_lookup_pinvoke_call): Fix warning.
4957
4958         * object.c (mono_runtime_free_method): Call mono_free_method () and
4959         put the TODOs there.
4960
4961         * loader.c (mono_free_method): Free up most memory allocated for 
4962         dynamic methods.
4963
4964 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
4965
4966         * reflection.c: properly flag a Type argument to a
4967         named custom attr value (bug #72248).
4968
4969 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
4970
4971         * reflection.c: reduce code duplication in named custom
4972         attribute encoding.
4973
4974 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
4975
4976         * reflection.c: properly encode custom attrs of type object
4977         (bug #72649).
4978
4979 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4980
4981         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
4982
4983 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
4984
4985         * socket-io.c: load System.dll if it's not loaded already
4986         (bug #72850 and #70477).
4987
4988 2005-02-21  Martin Baulig  <martin@ximian.com>
4989
4990         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4991         generic instances.
4992
4993 2005-02-21  Martin Baulig  <martin@ximian.com>
4994
4995         * reflection.c (mono_image_build_metadata): We also need to
4996         "fixup" the MethodImpl table after we computed the final method
4997         indices.  Call fixup_methodimpl() to do that.
4998         (fixup_methodimpl): New private method.
4999
5000 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5001
5002         * assembly.c: special case mscorlib.dll (bug#72536),
5003         patch from Carlos Alberto Cortez.
5004
5005 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5006
5007         * threads-types.h threads.c: Fix build bustage.
5008
5009         * threads.c: Use a union for long<->double conversions.
5010
5011         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5012         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5013
5014         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5015         containing the checkpoint call with NOT_TAKEN.
5016         
5017         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5018         checkpoint before pushing the arguments, so they won't have to be
5019         spilled to stack.
5020
5021 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5022
5023         * domain.c, assembly.c, domain-internals.h: make some data
5024         const and relocation-free.
5025
5026 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5027
5028         * object.c, appdomain.c, class-internals.h: introduce the
5029         MonoClassRuntimeInfo structure to hold the info needed to
5030         use a class at runtime. Made mono_class_vtable() lock-free
5031         for all the appdomains.
5032
5033 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5034
5035         * metadata-internals.h, image.c: introduce a per-image mempool to
5036         be used for memory that has the same lifetime as the image.
5037
5038 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5039
5040         * domain.c: In mono_init_internal(), instead of selecting the first
5041         runtime version supported by an executable, get a list of all
5042         supported versions and select the one for which an mscorlib exists
5043         (since even if the runtime supports a given version, it doesn't mean
5044         that the framework for that version is installed).
5045         Modified get_runtimes_from_exe to support this behavior.
5046         In supported_runtimes, added information about additional system
5047         assembly versions.
5048         
5049         * assembly.c: Added support for more than one system assembly version
5050         per runtime version. Updated the assembly list.
5051         In mono_assembly_remap_version, removed the initial version check,
5052         since we don't know to which version we need to compare until we
5053         get the version set on which the assembly is based.
5054         Moved the code for loading corlib into the new method
5055         mono_assembly_load_corlib(), so it can be used by the initialization
5056         code.
5057         
5058         * domain-internals.h: Updated data structures and added declaration
5059         for mono_assembly_load_corlib.
5060
5061 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5062
5063         * reflection.c (resolve_object): Fix the creation of the signature in 
5064         the SignatureHelper case.
5065
5066         * assembly.c (mono_assembly_remap_version): Fix binary search.
5067         
5068 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5069  
5070         * class.c: Added inheritance check when a method is overloaded (from a
5071         virtual method or when implementing an interface) and when a class is
5072         inherited. Added functions to set a failure for a class and to 
5073         retreive the exception from a failure.
5074         * class-internals.h: Added fields to MonoClass to keep the exception
5075         information status for inheritance (or other exceptions) to be thrown
5076         later (i.e. not at load time).
5077         * object.c: Throw the inheritance SecurityException when a type is to 
5078         be created with either class or method inheritance violations.
5079         * reflection.c|h: Fix when getting declsec from a class. Removed 
5080         unrequired code for class. Improved sanity in parameter naming.
5081         * security-manager.c|h: Added functions to check for class and method
5082         inheritance.
5083
5084 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5085
5086         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5087         and has_finalize in dynamic types as well.
5088
5089 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5090
5091         * culture-info-table.h : fixed currency format for en-GB (and so on).
5092
5093 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5094
5095         * gc.c: ensure the GC handles never have 0 as a value.
5096
5097 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5098
5099         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5100         a pointer to a struct to unmanaged code. Fixes #72625.
5101
5102 2005-02-16  Martin Baulig  <martin@ximian.com>
5103
5104         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5105
5106 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5107
5108         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5109
5110 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5111
5112         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5113
5114         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5115         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5116         etc. Fixes #71471.
5117
5118         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5119
5120         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5121
5122 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5123
5124         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5125         changes to make the current context a field in MonoThread.
5126
5127 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5128
5129         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5130         the last change.
5131         
5132         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5133         extracted from mono_marshal_get_native_wrapper.
5134
5135         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5136         to create wrappers around native functions.
5137
5138         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5139         delegates for arbitrary function pointers. Fixes #71472.
5140
5141 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5142
5143         * threads.c: cleaned up the code a little.
5144
5145 2005-02-15  Martin Baulig  <martin@ximian.com>
5146
5147         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5148         the data table.
5149
5150         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5151         allocate larger chunks if needed.
5152
5153 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5154
5155         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5156         in by mistake.
5157
5158 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5159
5160         * domain.c: keep the domains in an array and ensure the domain ids
5161         are kept small, so they can be used as indexes to domain-specific data
5162         with a small memory overhead.
5163
5164 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5165
5166         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5167
5168 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5169
5170         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5171
5172 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5173
5174         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5175
5176         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5177         values.
5178
5179         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5180         
5181 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5182
5183         * domain-internals.h: add the hashtable here.
5184
5185         * class-internals.h: Remove `info' from MonoMethod
5186
5187         * domain.c: Add a new hashtable, jit_trampoline_hash
5188
5189 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5190
5191         * object.c: don't set the value of static fields
5192         (fixes bug#72494).
5193
5194 2005-02-11  Martin Baulig  <martin@ximian.com>
5195
5196         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5197         (mono_debug_add_method): Silently ignore the method if it's too big.
5198         (mono_debug_add_type): Likewise.
5199
5200 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5201
5202         * threads.c, appdomain.c: remove #ifdefs from the code.
5203
5204 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5205
5206         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5207         common security informations. This allows us to stay in unmanaged code
5208         when doing LinkDemand and it's special cases (except for the first 
5209         time for initialization). The flags a very much used with --security.
5210         * reflection.c|h: Added code to get declarative security attributes 
5211         for LinkDemand and InheritanceDemand. This required to refactor the
5212         existing code for Demand.
5213         * security-manager.c|h: Added new method fields for the special cases
5214         of LinkDemand.
5215
5216 2005-02-10  Martin Baulig  <martin@ximian.com>
5217
5218         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5219         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5220
5221 2005-02-10  Martin Baulig  <martin@ximian.com>
5222
5223         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5224         debugging code; this is almost a complete rewrite.
5225
5226         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5227
5228 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5229
5230         * domain.c, object.h: expose mono_string_equal () and 
5231         mono_string_hash ().
5232         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5233         it's implemented in managed code.
5234
5235 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5236
5237         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5238         lo leak objects between appdomains.
5239
5240 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5241
5242         * assembly.c: old compilers compilation fix from 
5243         robertj@gmx.net (Robert Jordan).
5244
5245 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5246
5247         * class-internals.h: Little reminder for the future.
5248
5249         * debug-helpers.c: Fix up wrapper_type_names
5250
5251 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5252
5253         * image.c, metadata-internals.h: when loading an image from a file,
5254         mmap all of it and use the same codepaths as when using a
5255         in-memory image: the code is simpler and we use less memory
5256         (both writable and readonly).
5257
5258 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5259
5260         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5261         API to alloc runtime data structures that need to be tracked by the
5262         GC and contain pointers.
5263         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5264         make the code more readable and eventually use a different GC.
5265
5266 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5267
5268         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5269         for out arguments.
5270         
5271 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5272
5273         * object.c: In release_type_locks(), don't release the cctor lock
5274         if it has already been released. This fixes a crash in the
5275         thread5 test.
5276
5277 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5278
5279         * gc.c, marshal.c, icall.c: register a delegate for finalization
5280         only when the native function pointer has been allocated for it.
5281
5282 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5283
5284         * object.c: cleaned up some code, allocate objects that are
5285         pointer free with the atomic malloc variant. Allocate memory
5286         for static data from the mempool if it's pointer-free.
5287         Allocate the bounds array at the end of the array data, when needed.
5288         * object-internals.h, object.h: move a private function in a private
5289         header.
5290         * class.c: handle missing case in tracking references in fields.
5291
5292 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5293
5294         * class.c, class-internals.h: keep track if a type has
5295         reference fields in either the instance or static fields.
5296
5297 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5298
5299         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5300         and renamed to MonoRuntimeInfo. Added fields to store the expected
5301         framework assembly version. Changed mono_get_framework_version and
5302         mono_get_runtime_version for a single mono_get_runtime_info method.
5303         
5304         * assembly.c: Added method to remap system assembly versions to the
5305         current executing runtime version. Removed old mapping code.
5306         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5307         
5308         * icall.c, reflection.c: Track api changes.
5309
5310 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5311
5312         * loader.c (method_from_memberref): Improve error reporting,
5313         produce the class name instead of the typeref/typedef index. 
5314
5315 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5316
5317         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5318
5319 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5320
5321         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5322         stdcall and charset name mangling.  Reorganize the code and add
5323         some tracing stuff.
5324
5325 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5326
5327         * monodiet.c: More iters!
5328
5329         * marshal.c: Iter usage.
5330
5331         * icall.c: Iter usage.
5332
5333         * object.c: Use iters.
5334
5335         * debug-helpers.c: More iters
5336
5337 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5338
5339         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5340         under win32.
5341
5342 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5343
5344         * mono-debug-debugger.c: use iters
5345
5346         * class.c, class-internals.h: mono_class_setup_events is static
5347         now
5348
5349         * All callers: use iters
5350
5351 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5352
5353         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5354         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5355
5356 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5357
5358         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5359
5360         * marshal.h: Add prototypes for ldfld/stfld_remote.
5361
5362         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5363         this is called during startup.
5364         
5365 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5366
5367         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5368         MonoThreadsSync struct private in monitor.c. Changed the way
5369         MonoThreadsSync is allocated so it's faster and there is no
5370         need to keep track of it with a finalizer and it uses less memory.
5371         This also finally allows us to allocate mono objects as ptrfree when
5372         there are no reference fields.
5373
5374 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5375
5376         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5377         disappearing link to the GC interface and use them to simplify
5378         the gchandles code.
5379
5380 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5381
5382         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5383         stfld_remote which call mono_load/store_field_new. This allows methods
5384         calling ldfld/stfld wrappers to be AOTed.
5385
5386         * console-io.c: Include sys/filio.h under solaris.
5387         
5388         * console-io.c: Include curses.h if needed correctly.
5389
5390 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5391         
5392         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5393         method->klass as well.
5394
5395         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5396
5397         * class.c (mono_class_init): Switch on lazy initialization of 
5398         methods.
5399
5400         * class.c (mono_class_get_finalizer): Handle the case when the 
5401         finalizer is inherited.
5402
5403 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5404
5405         * console-io.c: <curses.h> is needed by term.h on solaris.
5406
5407 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5408
5409         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5410         mono_class_setup_properties where possible. Remove this ftn from
5411         the header file, and make it static.
5412
5413 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5414
5415         * loader.c: Add missing setup_... call.
5416
5417         * class.c: Add missing setup_... calls.
5418
5419         * class.c (mono_class_init): Switch on lazy initialization of 
5420         the generic vtable.
5421         
5422         * class.c (mono_class_init): Fix generics broken by the recent changes.
5423
5424         * monodiet.c (handle_type): Add missing setup_... calls.
5425
5426         * class.c: Back out garbage in previous patch.
5427         
5428         * class.c: Add missing setup_... calls.
5429
5430         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5431         mono_class_setup_methods () if possible.
5432
5433         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5434
5435         * class-internals.h (MonoCachedClassInfo): New structure.
5436
5437         * class.c: Initialize properties and events fields of MonoClass lazily.
5438
5439         * class.c: Add infrastructure for lazily initializing the methods and
5440         vtable fields of MonoClass. Not yet used.
5441
5442         * class.c (mono_class_get_finalizer): New helper function.
5443
5444         * class.c: Add infrastructure for loading some class related data from
5445         an AOT file.
5446
5447         * object.c: Add infrastructure for initializing the vtable from data
5448         in the AOT file.
5449
5450         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5451
5452         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5453         appropriate initialization function before accessing parts of the
5454         MonoClass structure.
5455
5456         * marshal.c: Fix warnings.
5457         
5458         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5459
5460         * mono-debug-debugger.c (get_exception_message): Use 
5461         mono_class_get_method_from_name_flags ().
5462
5463 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5464
5465         * reflection.c, appdomain.c: Replace a few manual searches that
5466         Zoltan missed. (Paolo approved this part of my initial patch).
5467
5468 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5469
5470         * profiler.c: disable recording statistical events at report time.
5471
5472 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5473
5474         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5475         to byteswap arrays of enum values, too (bug #72080).
5476
5477 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5478
5479         * appdomain.c (set_domain_search_path): Allow this to be called if
5480         domain->setup is not yet set.
5481
5482         * loader.c (mono_method_get_index): New helper function.
5483
5484         * loader.c reflection.c: Use mono_method_get_index ().
5485
5486         * class.c (mono_class_get_method_from_name_flags): New helper method.
5487
5488         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5489         this.
5490
5491         * class.c (mono_class_get_cctor): New helper method.
5492
5493         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5494         mono_class_get_method () to look up methods.
5495
5496 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5497
5498         * console-io.c: Fix the build, this should work on Windows.
5499
5500 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5501
5502         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5503         be set to null to keep things valid
5504
5505 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5506
5507         * icall.c: added Console 2.0 icalls.
5508         * Makefile.am: added console-io.[ch]
5509         * console-io.[ch]: internal calls for Console 2.0 API.
5510
5511 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5512
5513         * class.c: make sure we consider all the interfaces
5514         when calculating max_interface_id (bug found by
5515         Jeroen Frijters running ikvm).
5516
5517 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5518
5519         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5520         valuetype fields to null.
5521
5522         * object.c (set_value): Ditto. Fixes #71669.    
5523
5524 2005-01-31  Martin Baulig  <martin@ximian.com>
5525
5526         * metadata.c (mono_metadata_has_generic_params): New public
5527         function; checks whether something is a generic method.
5528
5529 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5530
5531         * appdomain.c: fix infinite recursion when adding assemblies.
5532
5533 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5534
5535         * object.c: Fix small typo to return all items for Environment.
5536         GetCommandLineArgs.
5537
5538 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5539
5540         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5541         reflection.c: more domain and assembly-unload related fixes
5542         and memory leaks plugs.
5543
5544 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5545
5546         * 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.
5547
5548 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5549
5550         * loader.c (mono_method_signature): Make this method lazy
5551         (mono_get_method_from_token): Don't computate the signature here.
5552
5553         Doing this saves quite a bit of memory. I got 90 kb on starting up
5554         monodoc. It should also save some disk reads on startup.
5555
5556         * *: MonoMethod->signature might be NULL now. You *MUST* use
5557         mono_method_signature.
5558
5559 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5560
5561         * object.c (mono_runtime_get_main_args): Return an array from the
5562         current domain here. Fixes #71938.
5563
5564 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5565
5566         * monitor.c: formatting changes to comply with the
5567         mono coding style and remove #ifdefs from the code.
5568
5569 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5570
5571         * metadata.c, private.h: remove some unneeded data
5572         and use a more compact representation for table schemas.
5573
5574 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5575
5576         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5577         to get a better distribution in hash tables.
5578         * *.c: use mono_aligned_addr_hash() where appropriate.
5579         * assembly.c: make var static.
5580
5581 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5582
5583         * domain-internals.h: Put MonoJitInfo on a diet.
5584
5585         * domain.c: Fix a warning.
5586
5587 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5588
5589         * gc.c: rework the gc handles code to reuse handles
5590         when freed.
5591
5592 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5593
5594         * domain.c: fixed long standing bug in mono_string_equal() which
5595         was brought to light with the ldstr changes.
5596
5597 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5598
5599         * reflection.c: Remove warning by adding missing include for marshal.h
5600
5601 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5602
5603         * domain.c, object.c: change the ldstr_table to hold
5604         MonoString* as keys: makes the runtime isinterned lookup
5605         faster and simplifies memory management.
5606
5607 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5608  
5609         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5610         possible to add imperative security checks before calling the icall.
5611         * reflection.c: Return security attributes on the original MonoMethod
5612         (and not the wrapped one). This fix permissions on icalls.
5613
5614 2005-01-25  Dick Porter  <dick@ximian.com>
5615
5616         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5617         the check for mktime() support actually test the mktime() return
5618         value.  "Fixes" bug 71682, though the output is still different to
5619         MS.
5620
5621 2005-01-25  Martin Baulig  <martin@ximian.com>
5622
5623         * class.c (mono_class_is_assignable_from): Make this work for
5624         generic instances.
5625
5626 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5627
5628         * marshal.c (mono_string_utf8_to_builder)
5629         (mono_string_builder_to_utf16): We might not have ownership of the
5630         string. In thise case, we need to create a new buffer.
5631
5632         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5633         be null, in which case, use the default capacity.
5634
5635 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5636
5637         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5638         GC events to the profiler.
5639
5640 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5641
5642         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5643         if you don't want the GC to run.
5644
5645 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5646
5647         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5648         start providing a GC API and keeping different implementations in
5649         their own file.
5650         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5651
5652 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5653
5654         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5655         mmap rather than allocating a huge buffer.
5656         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5657         above.
5658
5659 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5660
5661         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5662         and CheckExecutionRights.
5663         * reflection.c|h: Keep the index of the declarative security to be 
5664         used, instead of the pointer, when AOT compiler is used. Also add 
5665         class initialization when requesting demands.
5666         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5667         CheckExecutionRights. Both properties are now FALSE by default, and
5668         unmodifiable, unless the --security option is used.
5669
5670 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5671
5672         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5673         reflection.c: properly refcount images and assemblies, many leaks fixed.
5674
5675 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5676
5677         * threadpool.c: increase the timeout for threads in the thread pool to
5678         10s.  Fixes bug #67159.
5679
5680 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5681
5682         * class-internals.h: Sun's compiler insists on explicit
5683         signed on bit fields to handle then correctly.
5684
5685 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
5686
5687         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
5688         Make the size of the array fit only the number of invalid path
5689         chars that we have.
5690
5691         * class.c (_mono_class_get): Improve the error reporting when a
5692         class referenced is not found, to assist debugging. 
5693
5694 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
5695
5696         * threads.c: fix off-by-one error.
5697         * domain.c: free data allocated in the domain.
5698
5699 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5700
5701         * reflection.c (mono_method_body_get_object): Fill out exception info
5702         as well.
5703
5704         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
5705         structure.
5706         
5707 2005-01-19  Martin Baulig  <martin@ximian.com>
5708
5709         * loader.c (mono_get_method_constrained): Make this work again.
5710
5711 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5712
5713         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
5714         guint16 to match the managed side.
5715
5716         * reflection.c (mono_reflection_body_get_object): Fill out local
5717         variables array.
5718
5719         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
5720         as well.
5721
5722         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
5723         'local_var_sig_token'.
5724
5725 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5726
5727         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
5728         System.Drawing.
5729
5730         * reflection.c (mono_method_body_get_object): Handle abstract and
5731         runtime methods.
5732
5733 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
5734
5735         * marshal.c, loader.c, class-internals.h, reflection.c:
5736         store the emthod data for a wrapper in an array instead of a list.
5737
5738 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
5739
5740         * marshal.c: change the code to allocate memory more
5741         conservatively for method wrappers.
5742
5743 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
5744
5745         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
5746         fields from MonoClass to the marshal info structure where they belong.
5747
5748 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5749
5750         * class.c, object.c, class-internals.h, marshal.c: rearrange
5751         some fields and tweak some types to lower memory usage.
5752
5753 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5754
5755         * threads.c (signal_thread_state_change): Handle the case when the
5756         target thread is the current thread.
5757
5758         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
5759
5760         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
5761         emit_ptr_to_object_conv. 
5762
5763         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
5764         marshalling. Fixes #71352.
5765
5766 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5767
5768         * metadata.h, blob.h: move table enum to blob.h so it can be included
5769         in any header.
5770         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
5771         cut the size of MonoImage/MonoDynamicImage.
5772
5773 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5774
5775         * profiler.c (mono_profiler_install_simple): Fix default arguments.
5776
5777 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5778
5779         * reflection.c, reflection.h, icall.c: add a function to check
5780         if an attribute type is defined for a metadata object.
5781
5782 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
5783
5784         * object-internals.h: Added some needed fields from StringBuilder class.
5785         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5786
5787 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5788
5789         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
5790         threads before shutting down the runtime.
5791
5792         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
5793
5794 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5795
5796         * object-internal.h, threads.c: implement stacksize and 
5797         parameterized thread start functionality (requires
5798         matching corlib). Marked broken code for later removal.
5799
5800 2005-01-12  Martin Baulig  <martin@ximian.com>
5801
5802         * class-internals.h (MonoGenericClass): Moved the `initialized'
5803         flag to MonoDynamicGenericClass, removed `init_pending'.
5804         (MonoGenericInst): Added `is_reference' flag.
5805
5806 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
5807
5808         * reflection.c (mono_image_create_pefile): Only set the pe_offset
5809         inside the MSDOS header. Fixes #71201.
5810
5811         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
5812         gc thread.
5813         (mono_domain_finalize): Ditto.
5814
5815 2005-01-12  Martin Baulig  <martin@ximian.com>
5816
5817         * class.c (mono_get_shared_generic_class): Use the cache for
5818         non-dynamic generic classes.
5819
5820         * class-internals.h (mono_class_create_generic_2): Removed
5821         function prototype, this function is now static inside class.c.
5822
5823         * class.c (mono_class_create_generic_2): Made this static, only
5824         call it from mono_class_init() and mono_class_setup_parent().
5825         (collect_implemented_interfaces_aux): Call mono_class_init() on
5826         the interfaces we collect.
5827         (mono_class_setup_vtable): Call mono_class_init (class->parent).
5828
5829 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5830
5831         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
5832         it a real thread handle.
5833
5834         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
5835         MonoJitExceptionInfo, since each catch clause needs its own variable.
5836         
5837 2005-01-11  Dick Porter  <dick@ximian.com>
5838
5839         * image.c (mono_pe_file_open): New variant on mono_image_open()
5840         that does not set up the CLI metadata; used for FileVersionInfo so
5841         it can get the data for windows binaries too.
5842         
5843         * process.c (process_read_string_block): Don't read off the end of
5844         the StringTable block.
5845
5846         These both fix bug 70766.
5847
5848 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
5849
5850         * gc.c: set some fields to NULL at GC cleanup time.
5851         * threads.c: if we quit the main thread, call exit ().
5852
5853 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5854
5855         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
5856
5857 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
5858
5859         * threads.h, threads.c, object.c: added accessor and settor for
5860         main_thread. Handle it specially when exiting from it: wait
5861         for other foreground threads to exit.
5862
5863 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
5864
5865         * process.c, verify.c: remove some bloat.
5866
5867 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
5868
5869         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
5870         the calling convention to cdecl under win32.
5871
5872 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
5873
5874         * object.c (mono_object_get_size): New function to get the size of
5875         an object instance.
5876
5877         * profiler.c (simple_allocation): Use above.
5878
5879 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
5880
5881         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
5882         ves_icall_System_AppDomain_getRootDomain (as it's not required to
5883         get an appdomain by it's id and we can't assume the root's id is 0).
5884         * domain-internals.h: Change the function prototype to match.
5885         * icall.c: Change the icall table for AppDomain.
5886
5887 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
5888
5889         * locales.c (string_invariant_compare_char): Only compute
5890         GUnicodeTypes in the case where we need them.  Test for ordinality
5891         first and return if so.
5892
5893         From the commit:
5894
5895                 /*
5896                  * FIXME: here we must use the information from c1type and c2type
5897                  * to find out the proper collation, even on the InvariantCulture, the
5898                  * sorting is not done by computing the unicode values, but their
5899                  * actual sort order.
5900                  */
5901
5902 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5903
5904         * loader.c: for P/Invoke methods, allow the "Internal" shared
5905         library name to refer to the calling process symbol namespace.
5906
5907 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
5908
5909         * Makefile.am: Add the security manager to the build.
5910         * security-manager.c|h: New. Initialization of the security manager.
5911
5912 2005-01-07  Dick Porter  <dick@ximian.com>
5913
5914         * threads.c: 
5915         * monitor.c: Update thread state during Monitor and WaitHandle
5916         waits.  Fixes bug 71031.
5917
5918 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
5919
5920         * reflection.c (property_encode_signature): Correctly handle when the
5921         property has no methods.
5922
5923 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
5924
5925         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
5926         
5927         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
5928         fields from mb, not rmb. Fixes #71017.
5929
5930         * marshal.c (emit_ptr_to_str_conv): Add support for 
5931         ByValTStr -> string conversion. Fixes #71015.
5932
5933         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
5934
5935         * mempool.c (mono_mempool_contains_addr): New helper function.
5936
5937 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5938
5939         * metadata.c (mono_metadata_compute_size): Fix size calculation of
5940         HasSematics encoded fields.
5941         
5942         * metadata.c (mono_type_to_unmanaged): Improve error message for 
5943         invalid string marshalling.
5944
5945         * metadata.c: Fix warnings.
5946         
5947 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5948
5949         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
5950         profiler support.
5951
5952 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5953
5954         * domain.c object.c domain-internals.h: Revert part of r38077 since the
5955         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
5956         tests.
5957
5958 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
5959
5960         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
5961         so methods containing these can be AOTed.
5962
5963 2005-01-03  Martin Baulig  <martin@ximian.com>
5964
5965         * loader.c (find_method): Removed the hack for generic instances.
5966         (method_from_memberref): If our parent is a generic instance, pass
5967         its generic type definition to find_method() and then inflate the
5968         method.
5969         (mono_get_method_constrained): Pass the generic type definition to
5970         find_method() and inflate the method later.
5971
5972         * class-internals.h (MonoStats): Added `generic_class_count'.
5973
5974         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
5975         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
5976
5977         * reflection.c (mono_custom_attrs_from_params): Don't ignore
5978         generic type definitions.
5979
5980 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
5981
5982         * loader.c icall.c: Fix warnings.
5983
5984 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
5985
5986         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
5987         blittable types. Fixes #70864.
5988
5989 2004-12-29  Martin Baulig  <martin@ximian.com>
5990
5991         * icall.c
5992         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
5993
5994         * reflection.c (mono_method_get_object): Create a
5995         "System.Reflection.MonoGenericMethod" for inflated methods; don't
5996         call mono_get_inflated_method().
5997
5998         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
5999
6000 2004-12-27  Martin Baulig  <martin@ximian.com>
6001
6002         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6003         (MonoMethodInflated): Added `inflated' field.
6004
6005         * class.c (mono_class_inflate_generic_method): Don't really
6006         inflate the method here; just set the `is_inflated' flag in the
6007         MonoMethod.
6008         (mono_class_get_inflated_method): Actually inflate the method here
6009         if it's not already inflated; we use the MonoMethodInflated's new
6010         `inflated' field as a cache.
6011
6012 2004-12-26  Martin Baulig  <martin@ximian.com>
6013
6014         * class.c
6015         (inflate_generic_class): Moved some code out of inflate_generic_type().
6016         (mono_class_inflate_generic_method): If we're already inflated,
6017         inflate the context and use the declaring method; ie. make sure
6018         the declaring method of an inflated method is always the generic
6019         method definition.
6020         (mono_class_create_from_typedef): Create
6021         `class->generic_container->context->gclass'.
6022
6023 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6024
6025         * metadata-internals.h, marshal.c, reflection.c: More
6026         MonoGHashTable->GHashTable.
6027
6028         * domain-internals.h, class.c: Change MonoGHashTable's into
6029         GHashTables for some cases where no gc stuff is used
6030
6031         All users: update apis
6032
6033 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6034
6035         * metadata.c (builtin_types): Make this `const'. Makes this get
6036         put into the shareable section.
6037         (mono_metadata_init): Casts to make gcc happy.
6038
6039 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6040
6041         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6042
6043 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6044
6045         * icall.c: Added an internal call to retrieve the position and length
6046         of assembly-level declarative security attributes (RequestMinimum, 
6047         RequestOptional and RequestRefuse). This is used by the Assembly class
6048         to re-create the corresponding permission sets.
6049
6050 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6051
6052         * marshal.c: fix the stelemref wrapper to be type correct
6053         (and faster).
6054
6055 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6056
6057         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6058         to do key & 0x7fffffff. Hashtable already does this. It just
6059         results in longer code.
6060
6061 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6062
6063         * appdomain.c: Bump corlib version.
6064         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6065         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6066         * reflection.c|h: Add functions to get declarative security infos
6067         (blob position and length) for assemblies, classes and methods.
6068
6069 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6070
6071         * reflection.c: sort the constant table (bug #70693).
6072
6073 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6074
6075         * object-internals.h, threads.c, domain.c: add accessors for
6076         the MonoThread and MonoDomain tls keys.
6077
6078 2004-12-18  Martin Baulig  <martin@ximian.com>
6079
6080         * class.c (inflate_generic_type): If we're inflating a generic
6081         instance, set `ngclass->context->container = context->container';
6082         ie. the container we inflated into.
6083
6084         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6085         inflate_generic_type() changes.
6086
6087 2004-12-17  Martin Baulig  <martin@ximian.com>
6088
6089         * class-internals.h
6090         (MonoGenericClass): Replaced `MonoType *generic_type' with
6091         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6092         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6093         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6094
6095 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6096
6097         * exception.c (mono_exception_from_token): New helper function.
6098
6099 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6100
6101         * assembly.c (mono_assembly_load_with_partial_name): Call 
6102         mono_assembly_loaded before invoking the preload hooks. Fixes
6103         #70564.
6104
6105         * object-internals.h (MonoThread): Change culture_info and 
6106         ui_culture_info into an array.
6107
6108         * threads.c: Cache culture info objects from more than one appdomain.
6109
6110         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6111         current UI culture.
6112
6113 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6114
6115         * threads.h threads.c appdomain.c: Clear the culture_info field of
6116         all threads during unloading if they point to an object in the dying
6117         appdomain.
6118
6119 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6120
6121         * culture-info.h (TextInfoEntry): New struct
6122         * object-internals.h: sync with managed
6123         * locales.c: fill the `text_info_data' field
6124         * culture-info-tables.h: update
6125
6126 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6127
6128         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6129         collector.
6130
6131 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6132
6133         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6134         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6135
6136 2004-12-12  Martin Baulig  <martin@ximian.com>
6137
6138         * mono-debug-debugger.c (write_type): If we're an enum and the
6139         builtin types have already been initialized, call mono_class_init().
6140
6141 2004-12-11  Martin Baulig  <martin@ximian.com>
6142
6143         * metadata.c (mono_metadata_load_generic_params): Added
6144         `MonoGenericContainer *parent_container' argument; automatically
6145         compute `container->is_method'; pass the correct owner to
6146         get_constraints().      
6147
6148         * reflection.c (compare_genericparam): Sort the GenericParam table
6149         according to increasing owners. 
6150
6151 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6152
6153         * profiler.c: allow disabling the default profiler.
6154
6155 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6156
6157         * decimal.c, icall.c: allow disabling System.Decimal support.
6158
6159 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6160
6161         * reflection.c: Add support for null attribute arguments.
6162
6163 2004-12-09  Martin Baulig  <martin@ximian.com>
6164
6165         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6166         names to get rid of compiler warnings.
6167
6168 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6169
6170         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6171         mono_marshal_load_type_info (). Fixes #69625.
6172         (mono_marshal_get_ptr_to_struct): Likewise.
6173
6174 2004-12-08  Martin Baulig  <martin@ximian.com>
6175
6176         * mono-debug.h: Bumped version number to 47.
6177
6178         * mono-debug-debugger.c
6179         (mono_debugger_event_handler, mono_debugger_event): Take two
6180         guint64 arguments insteed of a gpointer and a guint32.  
6181
6182 2004-12-08  Martin Baulig  <martin@ximian.com>
6183
6184         * debug-mono-symfile.h
6185         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6186         `address' to `native_offset'.
6187
6188 2004-12-08  Martin Baulig  <martin@ximian.com>
6189
6190         * class.c (mono_class_create_from_typespec): Only inflate if we
6191         either have `context->gclass' or `context->gmethod'.
6192
6193 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6194
6195         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6196
6197         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6198
6199         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6200
6201         * reflection.c (mono_assembly_get_object): Remove the workaround put
6202         in for the release.
6203         
6204         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6205
6206         * appdomain.c: Bump corlib version.
6207
6208         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6209         be visible in other appdomains.
6210
6211 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6212
6213         * threads.c: Interlocked inc and dec for longs were messed up,
6214         use a KISS based impl for this. Fixes 70234
6215
6216 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6217
6218         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6219
6220 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6221
6222         * icall.c: fix to follow policy not to allow struct
6223         arguments in icalls.
6224
6225 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6226
6227         * process.c: make the patch that handles spaces in file paths work
6228         on mono/windows too.
6229
6230 2004-12-06  Martin Baulig  <martin@ximian.com>
6231
6232         * class.c (mono_class_create_generic): Call
6233         mono_class_setup_supertypes() if we're dynamic.
6234         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6235
6236 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6237
6238         * object-internals.h: Add new fields to MonoThread.
6239
6240         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6241
6242         * icall.c threads-types.h threads.c: Add new icalls.
6243
6244         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6245
6246         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6247         managed side.
6248
6249         * appdomain.c: Bump corlib version.
6250
6251         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6252         internal assemblies. Fixes #69181.
6253
6254 2004-12-05  Martin Baulig  <martin@ximian.com>
6255
6256         * class.c (mono_class_inflate_generic_signature): Make this a
6257         no-op if `context' is NULL or we don't have any type parameters;
6258         also copy `sentinelpos'.        
6259
6260 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6261
6262         * image.c: Add unbox_wrapper_cache.
6263
6264         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6265
6266         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6267         function generator.
6268         
6269         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6270         Fixes #70173.
6271
6272         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6273         
6274 2004-12-04  Martin Baulig  <martin@ximian.com>
6275
6276         * loader.c (mono_method_get_signature_full): New public function;
6277         like mono_method_get_signature(), but with an additional
6278         `MonoGenericContext *' argument.
6279
6280         * class.c (mono_class_inflate_generic_signature): Formerly known
6281         as inflate_generic_signature(); make this public.
6282
6283 2004-12-04  Martin Baulig  <martin@ximian.com>
6284
6285         * metadata.c
6286         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6287         instead of a `MonoGenericContainer *'.  
6288         (mono_metadata_parse_array_full): Likewise.
6289         (mono_metadata_parse_signature_full): Likewise.
6290         (mono_metadata_parse_method_signature_full): Likewise.
6291         (mono_metadata_parse_generic_inst): Likewise.
6292         (mono_metadata_parse_generic_param): Likewise.
6293         (mono_metadata_parse_mh_full): Likewise.
6294         (mono_type_create_from_typespec_full): Likewise.
6295
6296 2004-12-03  Martin Baulig  <martin@ximian.com>
6297
6298         * class-internals.h (MonoGenericContainer): Replaced the
6299         `MonoGenericContext * pointer with a `MonoGenericContext'
6300         structure and made it the first element.
6301
6302 2004-12-03  Martin Baulig  <martin@ximian.com>
6303
6304         * class.c
6305         (inflate_generic_type): Set the `context->container' when creating
6306         a new MonoGenericContext.
6307         (mono_class_inflate_generic_method): Likewise.
6308         (mono_class_create_from_typespec): Just use `context->container'
6309         to get the container.
6310
6311         * loader.c (method_from_methodspec): Set `context->parent' from
6312         `context->container' - and if that's a method container, use its
6313         parent.  Also set the `context->container' when creating a new
6314         MonoGenericContext.
6315         (mono_get_method_from_token): Use just `context->container' to get
6316         the container.
6317
6318         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6319         `gclass->context->container'.
6320
6321         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6322         the `context->container' when creating a new MonoGenericContext.
6323
6324 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6325
6326         * reflection.c (compare_genericparam): Sort params with identical
6327         owner by their number. Fixes gen-111 on sparc.
6328
6329 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6330
6331         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6332         around the domain changes.
6333
6334         * appdomain.c (mono_domain_unload): Handle the case when the thread
6335         calling Unload is itself being aborted during unloading. Fixes #70022.
6336
6337         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6338
6339         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6340         checkpoint_func as an icall so it gets a wrapper.
6341         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6342         in the cross-appdomain wrappers too.
6343
6344         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6345
6346         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6347
6348         * reflection.c: Fix some memory leaks.
6349         
6350 2004-12-02  Martin Baulig  <martin@ximian.com>
6351
6352         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6353
6354         * metadata.c (generic_class_cache): New static hashtable.
6355         (mono_metadata_lookup_generic_class): New public method.
6356
6357 2004-12-02  Martin Baulig  <martin@ximian.com>
6358
6359         * class.c (mono_class_create_from_typedef): Call
6360         mono_class_setup_parent() and mono_class_create_mono_type() before
6361         parsing the interfaces.
6362
6363 2004-12-02  Martin Baulig  <martin@ximian.com>
6364
6365         * metadata.c (generic_inst_cache): New static hashtable.
6366         (mono_metadata_lookup_generic_inst): New public function.
6367         (mono_metadata_inflate_generic_inst): New public function.
6368         (mono_metadata_parse_generic_inst): New public function.
6369         (do_mono_metadata_parse_generic_class): Use the new
6370         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6371         since this'll also use the cache.
6372
6373         * reflection.c (mono_reflection_bind_generic_method_parameters):
6374         Use mono_metadata_lookup_generic_inst() to use the new cache.
6375
6376         * class.c (inflate_mono_type): Use
6377         mono_metadata_inflate_generic_inst() to inflate a generic
6378         instance; this'll also use the new cache.
6379
6380         * loader.c (method_from_methodspec): Use
6381         mono_metadata_parse_generic_inst() and
6382         mono_metadata_inflate_generic_inst() rather than parsing it
6383         manually, so we can use the new cache.
6384
6385 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6386
6387         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6388         the wait times out.
6389
6390 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6391
6392         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6393         iter->args based on whether parameters are passed in registers (i.e.
6394         MONO_ARCH_REGPARMS is defined)
6395
6396 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6397
6398         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6399         the exception message. Fixes #70070.
6400         (method_from_methodspec): Fix warnings.
6401
6402 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6403
6404         * process.c: (complete_path) return the path quoted
6405
6406 2004-12-01  Martin Baulig  <martin@ximian.com>
6407
6408         * class-internals.h (MonoGenericInst): New structure.
6409         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6410         `is_open' with `MonoGenericInst *inst'.
6411         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6412         `is_open' with `MonoGenericInst *inst'.
6413
6414 2004-11-30  Martin Baulig  <martin@ximian.com>
6415
6416         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6417
6418         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6419         to `generic_class_cache'.
6420
6421         * metadata.c
6422         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6423         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6424         (mono_generic_inst_is_valuetype): Renamed to
6425         mono_generic_class_is_valuetype().
6426
6427         * class-internals.h
6428         (MonoGenericInst): Renamed to MonoGenericClass.
6429         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6430         (MonoClass): Renamed `generic_inst' to `generic_class'.
6431         (MonoGenericContext): Renamed `ginst' to `gclass'.
6432
6433         * object-internals.h
6434         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6435
6436         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6437         mono_reflection_generic_class_initialize().
6438
6439         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6440         now known as "System.Reflection.MonoGenericClass".
6441         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6442
6443 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6444
6445         * class-internals.h: Added a flag field to MonoClass to cache the
6446         declarative security attributes actions associated with the class.
6447         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6448         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6449         applicable to the JITted method.
6450         * reflection.c|h: Added functions to extract (as flags) which security
6451         actions are available (declaratively) for a method, class or assembly.
6452         * metadata.c|h: Added functions to search the declarative security
6453         table in the metadata.
6454         
6455 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6456
6457         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6458         EXPORTEDTYPES are already in the class name cache, so there is no
6459         need to add extra code here to look at them. Just removes a bit of
6460         cruft.
6461
6462         (ves_icall_System_Environment_get_TickCount): No need for #if
6463         WINDOWS. We already have the code in io-layer.
6464
6465 2004-11-28  Martin Baulig  <martin@ximian.com>
6466
6467         * loader.c
6468         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6469         Fixes gen-112.cs.
6470
6471 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6472
6473         * assembly.c (do_mono_assembly_open): Instead of having a
6474         conditional WITH_BUNDLE, incorporate support for bundles here, by
6475         having a global `bundles' variable holding a pointer to the actual
6476         bundles. 
6477
6478         (mono_register_bundled_assemblies): New API call used by the
6479         bundle code. 
6480
6481         See mkbundle.1 for details.
6482         
6483 2004-11-27  Martin Baulig  <martin@ximian.com>
6484
6485         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6486         the vtable for generic methods.
6487
6488 2004-11-26  Martin Baulig  <martin@ximian.com>
6489
6490         * metadata.c
6491         (mono_metadata_generic_method_hash): New public function.
6492         (mono_metadata_generic_method_equal): Likewise.
6493
6494         * class-internals.h
6495         (MonoGenericContainer): Added `GHashTable *method_hash'.
6496
6497         * reflection.c (ReflectionMethodBuilder): Added
6498         `MonoGenericContainer *generic_container'.
6499         (reflection_methodbuilder_to_mono_method): Don't create a new
6500         MonoGenericContainer each time we're called.
6501         (mono_reflection_bind_generic_method_parameters): Use
6502         `container->method_hash' to cache the results so we don't create a
6503         different method if we're called several times with the same
6504         arguments.
6505
6506         * loader.c (method_from_methodspec): Use the new
6507         `container->method_hash' here, too.
6508
6509 2004-11-26  Martin Baulig  <martin@ximian.com>
6510
6511         * class.c (inflate_generic_signature): Correctly compute
6512         `res->has_type_parameters'.
6513         (mono_class_vtable): Use the `has_type_parameters' flag to
6514         determine whether we're a generic method.
6515
6516         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6517
6518 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6519
6520         * object.c (mono_runtime_run_main): Fix a small memory leak.
6521
6522 2004-11-25  Martin Baulig  <martin@ximian.com>
6523
6524         * class.c (set_generic_param_owner): Fixed the loop.
6525
6526 2004-11-25  Martin Baulig  <martin@ximian.com>
6527
6528         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6529         generic methods.
6530
6531 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6532
6533         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6534         names. Fixes #69787.
6535
6536 2004-11-24  Martin Baulig  <martin@ximian.com>
6537
6538         * class.c (mono_class_create_generic_2): If we don't have a
6539         `ginst->parent', inflate `gklass->parent' to get our parent.
6540
6541 2004-11-24  Martin Baulig  <martin@ximian.com>
6542
6543         * reflection.c (compare_genericparam): Correctly sort the
6544         GenericParam table; fixes #69779.
6545
6546 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6547
6548         * reflection.c: When writing a PE file, don't create a huge
6549         buffer in memory. Just write the arrays we have to the file.
6550         This reduces memory usage.
6551
6552         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6553         globally.
6554
6555 2004-11-17  Martin Baulig  <martin@ximian.com>
6556
6557         * class.c (mono_class_init): Don't setup `class->parent' for
6558         dynamic instances; moved this to mono_class_generic_2().
6559         (mono_class_create_generic): Also set `klass->inited' for dynamic
6560         generic instances.
6561         (mono_class_create_generic_2): Don't do anything for dynamic
6562         generic instances.  Set `klass->parent' here and also call
6563         mono_class_setup_parent() here. 
6564
6565         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6566         `MonoType *parent' argument; set `ginst->parent' before calling
6567         mono_class_create_generic_2(), so we set the correct parent.
6568
6569 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6570
6571         * reflection.c: allow getting attributes from ModuleBuilder
6572         (used by ikvm).
6573
6574 2004-11-17  Martin Baulig  <martin@ximian.com>
6575
6576         * class.c (mono_class_create_from_typedef): If a type parameter is
6577         inherited from an outer class, set its owner to that class.
6578
6579 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6580
6581         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6582           for (int*) written size. This fixes bug #69592.
6583
6584 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6585
6586         * icall.c: Added IsAuthenticodePresnet internal call.
6587         * image.c|h: New function that check a MonoImage for an Authenticode
6588         signature in the certificate PE data directory.
6589         * security.c|h: New internal call to ask the runtime if an 
6590         Authenticode signature seems referenced in the PE header.
6591
6592 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6593
6594         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6595
6596         * reflection.c (mono_image_create_pefile): Free the assembly streams
6597         after writing out the assembly file.
6598
6599         * object.c (mono_runtime_run_main): Fix small memory leak.
6600
6601         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6602         property access modifiers. Fixes #69389.
6603
6604 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6605
6606         * domain.c, object.c, object-internals.h, domain-internals.h,
6607         object.h, marshal.c: keep dynamic code info per domain.
6608
6609 2004-11-15  Martin Baulig  <martin@ximian.com>
6610
6611         * class.c (mono_type_get_name_recurse): Put type arguments in
6612         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6613         see bug #68387.
6614
6615 2004-11-15  Martin Baulig  <martin@ximian.com>
6616
6617         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6618         (mono_class_setup_vtable): When computing `the_cname' for a
6619         generic instance, don't include the namespace since we'd otherwise
6620         add it twice.
6621
6622 2004-11-15  Martin Baulig  <martin@ximian.com>
6623
6624         * class.c (mono_class_create_generic): Changed return type to void.
6625         (mono_class_create_generic_2): New public function; setup
6626         `class->method', `class->field' and `class->interfaces' here
6627         instead of in mono_class_init().
6628
6629         * class.h (mono_class_create_generic): Moved to class-internals.h.
6630
6631 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6632
6633         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6634         rather than writing to memory, write to this file. Right now,
6635         we are just writting into a buffer, and copying that. However
6636         we can avoid the buffer later.
6637
6638         (mono_dynamic_stream_reset): new function
6639
6640         * icall.c, object-internals.h: update for the above.
6641
6642 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6643
6644         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6645         have been using gc'd memory. First it is slower, unlikely
6646         the comment in the source code said, secondly, it increases
6647         our footprint to do it in the gc.
6648
6649         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6650         the method so that it does not have to copy to managed code.
6651
6652 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6653
6654         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6655
6656 2004-11-12  Martin Baulig  <martin@localhost>
6657
6658         * reflection.c (mono_image_create_token): Allow generic method
6659         definitions here, since they may appear in an `.override'; see
6660         gen-98/gen-99 for an example.
6661
6662 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6663
6664         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6665         #69365.
6666
6667         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6668         descriptive.
6669
6670 2004-11-11  Martin Baulig  <martin@ximian.com>
6671
6672         * class.c (mono_class_setup_vtable): In an explicit interface
6673         implementation, the method name now includes the arity.
6674
6675 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6676
6677         * object.c (mono_array_full_copy): Fix warning.
6678
6679 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
6680
6681         * appdomain.c: Removed look_for_method_by_name(). Use the new method
6682         mono_class_get_method_from_name() instead.
6683         
6684         * class-internals.h: Added two new types of wrappers. 
6685         Added MonoRemotingTarget enum. Added new trampoline function type, which
6686         takes an additional MonoRemotingTarget value as parameter, so it is
6687         possible to request a trampoline for a specific target.
6688         
6689         * class.c: Added new mono_class_get_method_from_name() method.
6690         
6691         * class.h: In MonoRemoteClass, we can have now to vtables, one for
6692         general remoting sinks and one specific for cross domain calls.
6693         
6694         * debug-helpers.c: Added new wrapper names.
6695         
6696         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
6697         of a remote class.
6698         
6699         * image.c: Porperly delete value objects form the remoting invoke hashtable.
6700         
6701         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
6702         with several other methods (mono_marshal_get_xappdomain_dispatch,
6703         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
6704         and others) can generate a fast remoting wrapper for cross domain calls.
6705         More information can be found in docs/remoting.
6706         Other changes: Removed mono_find_method_by_name, and used
6707         mono_class_get_method_from_name instead.
6708         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
6709         is stored in the remoting invoke hashtable.
6710         
6711         * marshal.h: published the new method for getting the xdomain wrapper,
6712         and also added a method for getting the adequate wrapper for a given
6713         method and target.
6714         
6715         * object-internals.h, object.c: Added a couple of methods for capying and
6716         cloning arrays.
6717         Modified mono_install_remoting_trampoline, which takes the new remoting
6718         trampoline that has a remoting target as parameter.
6719         mono_class_proxy_vtable now also takes a remoting target as parameter, and
6720         will return the most suitable vtable for the target.
6721         Added mono_remote_class_vtable, which returns the vtable of a remote class
6722         (which can be the normal remoting vtable or the xdomain vtable).
6723         
6724         * threads.c: the xdomain invoke and dispatch wrappers must also be
6725         protected against interruptions.
6726
6727 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6728
6729         * icall.c: use memmove in BlockCopyInternal when the source and
6730         destination arrays are the same.
6731
6732 2004-11-09  Martin Baulig  <martin@ximian.com>
6733
6734         * class-internals.h (MonoGenericContainer): Removed `method' and
6735         `signature', replaced them with `is_method' and `is_signature'
6736         flags.  Added `context'.
6737
6738         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
6739         instead of a `MonoGenericContainer *'.
6740
6741         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
6742         for dynamic type parameters.
6743         (mono_metadata_load_generic_params): Setup `container->context'.
6744
6745         * reflection.c (mono_reflection_setup_generic_class): Setup
6746         `tb->generic_container->context'.
6747         (do_mono_reflection_bind_generic_parameters): Use
6748         mono_class_inflate_generic_type() to correctly inflate types,
6749         rather than using our own hack just for MONO_TYPE_VAR.
6750
6751 2004-11-09  Martin Baulig  <martin@ximian.com>
6752
6753         * class.c (mono_class_inflate_generic_method): Small fix; don't
6754         crash here.
6755
6756         * icall.c
6757         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
6758         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
6759         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
6760         (ves_icall_Type_BindGenericParameters): Likewise.
6761         (ves_icall_Type_get_IsGenericInstance): Likewise.
6762         (ves_icall_Type_GetGenericParameterPosition): Likewise.
6763         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
6764         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6765         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6766
6767 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6768
6769         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
6770         assembly versions and public key tokens. Fixes #69113.
6771
6772 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
6773
6774         * metadata.c: fix bug introduced with the type cache changes
6775         on 2004-11-06.
6776
6777 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
6778
6779         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
6780         the MonoClass pointer instead of the token in exception clauses.
6781         * reflection.c: updates for the above and make the code not depend
6782         on the structure of MonoExceptionClause.
6783
6784 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6785
6786         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6787         Add support for dynamic assemblies. Fixes #69114.
6788
6789         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
6790
6791 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6792
6793         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
6794         since most only those methods use it. the code member of
6795         MonoMethodPInvoke was dead, so that can be removed too. Also,
6796         remove inline_count (again, not used), and move slot so that it
6797         can share bits with some other flags. This saves 8 bytes in the
6798         structure and gives us about 50 kb back for mcs helloworld.cs
6799
6800         * *.[ch]: Do naming changes for the above.
6801
6802         * loader.c (mono_method_get_header): Lazily init the header
6803         on first access.
6804         (mono_get_method_from_token): don't init the header here
6805         (mono_free_method): the header may never be allocated
6806
6807         Overall, this saves 150 kb of unmanaged allocations
6808         for mcs helloworld.cs. That accounts for 10% of the unmanaged
6809         memory at runtime.
6810         
6811         * loader.c, loader.h (mono_method_get_header): new accessor.
6812
6813         * *.[ch]: use the above method. Prepares us to lazily load
6814         the header.
6815
6816         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
6817         three warnings, which are actual bugs (see 69206).
6818
6819         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
6820         unused. Saves a cool 4 bytes / method.
6821
6822 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
6823
6824         * metadata.c (builtin_types): Add types for System.Object here.
6825         (mono_metadata_parse_type_full): Cache MonoType*'s that are
6826         for a class or valuetype from klass->this_arg or klass->byval_arg.
6827
6828         On mcs for a hello world, this gets us down from 21836 MonoType's
6829         to 14560.
6830
6831         (mono_metadata_free_type): Account for the above change.
6832
6833 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
6834
6835         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
6836         exception instead of asserting if name is null.
6837         (ves_icall_System_AppDomain_GetData): Ditto.
6838
6839 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
6840
6841         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
6842         EnumBuilder.
6843
6844         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
6845         Return NULL when the domain does not have entry_assembly set.
6846
6847         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
6848         Add a 'resource_modules' argument.
6849         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
6850
6851         * reflection.c (mono_reflection_create_runtime_class): Move setting
6852         of wastypebuilder here, so mono_get_type_object () returns a MonoType
6853         for enums too.
6854
6855         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
6856         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
6857         Throw an ArgumentNullException if 'ptr' is null.
6858
6859         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
6860         assemblies here. Fixes #69020.
6861
6862 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
6863
6864         * reflection.c (build_compressed_metadata): Fix the previous patch for
6865         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
6866         the stack.
6867
6868 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
6869
6870         * assembly.c (mono_assembly_names_equal): Allow a match if one of
6871         the cultures is false. Fixes #69090.
6872
6873         * reflection.c (build_compressed_metadata): Fix invalid memory read 
6874         detected by valgrind.
6875         
6876         * reflection.c (mono_reflection_get_type): Avoid triggering a 
6877         TypeResolve multiple times for the same type. Fixes #65577.
6878
6879 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
6880
6881         * marshal.c: Avoid using ldftn to call managed functions. It is
6882         much slower than just a call.
6883
6884         * reflection.c (mono_module_get_object): free the basename we
6885         allocate here from glib.
6886         
6887         * reflection.c (ensure_runtime_vtable): make sure to free
6888         overrides.  Also, we were allocating an array of MonoMethod not an
6889         array of MonoMethod*.
6890
6891         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
6892
6893         * image.c (mono_image_close): free image->guid here.
6894
6895 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
6896
6897         * reflection.c: Fix some spec conformance issues with the PE file
6898         structures so mcs compiled apps run on the Net 2.0 beta.
6899
6900 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
6901
6902         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
6903         Implement this. Fixes #67264.
6904
6905         * debug-helpers.h debug-helpers.c marshal.c: Move 
6906         mono_find_method_by_name to debug-helpers.c.
6907
6908 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
6909
6910         * object.c (mono_release_type_locks): type_initialization_hash is
6911         a GHashTable.
6912
6913         * reflection.c object.c object-internals.h: Fix warnings.
6914
6915         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
6916         without accessors. Fixes #61561.
6917
6918         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
6919         application base from the root domain if not set. Fixes #65641.
6920         (mono_runtime_init): Fix warning.
6921
6922 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6923
6924         * appdomain.c: call mono_thread_pool_init.
6925         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
6926         of worker threads based on the number of CPUs and the environment
6927         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
6928         for non-windows (windows) systems.
6929
6930 2004-10-27  Chris Toshok  <toshok@ximian.com>
6931
6932         * mono-debug-debugger.c (write_class): don't call mono_class_init
6933         here, as even with the check for (!klass->init_pending), we get
6934         into a situation where we're hitting cycles in class
6935         initialization.  Fixes #68816.
6936
6937 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
6938
6939         * image.c: Avoid overwriting values in the loaded_images_hash when an
6940         assembly is loaded multiple times. Fixes #61152.
6941
6942         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
6943         so multiple satellite assemblies for the same name can be loaded.
6944         Fixes #68259.
6945
6946         * mono_domain_assembly_preload: Actually return the loaded assembly, 
6947         not NULL.
6948
6949         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
6950         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
6951
6952         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
6953         pending finalizers are not invoked after the appdomain has been 
6954         unloaded. Fixes #67862.
6955
6956 2004-10-22  Martin Baulig  <martin@ximian.com>
6957
6958         * mono-debug-debugger.c
6959         (mono_debugger_runtime_invoke): Don't box valuetypes.
6960
6961 2004-10-22  Chris Toshok  <toshok@ximian.com>
6962
6963         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
6964         don't hide private methods.
6965
6966 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
6967
6968         * icall.c: Allows the runtime to "share" (when known) the public key
6969         token of an assembly. This avoid the need to recalculate the token 
6970         (from the public key) in managed code.
6971
6972 2004-10-21  Chris Toshok  <toshok@ximian.com>
6973
6974         * debug-helpers.c (append_class_name): argh, revert last patch.
6975         
6976 2004-10-21  Chris Toshok  <toshok@ximian.com>
6977
6978         * debug-helpers.c (append_class_name): use '+' as the delimiter,
6979         not '/', so that it matches what the debugger uses to look up
6980         methods.
6981
6982 2004-10-21  Martin Baulig  <martin@ximian.com>
6983
6984         * mono-debug-debugger.c (mono_debugger_throw_exception): New
6985         public method; this is called each time an exception is thrown and
6986         allows the debugger to use exception catch points.
6987
6988 2004-10-21  Martin Baulig  <martin@ximian.com>
6989
6990         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
6991         the stack pointer and the exception object in some struct and pass
6992         that to the debugger.
6993
6994 2004-10-21  Chris Toshok  <toshok@ximian.com>
6995
6996         * mono-debug-debugger.c (do_write_class): add instance/static
6997         event support.  We don't expose "raise" or "other" yet.
6998         (event_is_static): new method.
6999
7000 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7001
7002         * mono-debug-debugger.c
7003         (mono_debugger_handle_exception): Remove
7004         bogus return value for fussy compilers.
7005
7006 2004-10-20  Martin Baulig  <martin@ximian.com>
7007
7008         * mono-debug-debugger.c
7009         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7010         (mono_debugger_handled_exception): Likewise.
7011
7012 2004-10-20  Martin Baulig  <martin@ximian.com>
7013
7014         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7015         MONO_DEBUGGER_EVENT_EXCEPTION.
7016
7017         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7018         public function to send the debugger a notification for an
7019         exception and inform it about a catch/finally clause.
7020
7021 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7022
7023         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7024         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7025         fix 2.95 build. 
7026
7027         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7028
7029 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7030
7031         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7032         marshalled as [In,Out]. Fixes #58325.
7033
7034 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7035
7036         * reflection.c (mono_method_body_get_object): Implement some fields.
7037
7038 2004-10-12  Martin Baulig  <martin@ximian.com>
7039
7040         * reflection.c (mono_reflection_bind_generic_parameters): Small
7041         fix, correctly retrieve our parent from a generic instance.
7042
7043 2004-10-12  Martin Baulig  <martin@ximian.com>
7044
7045         * metadata.c (mono_metadata_generic_param_equal): We always have
7046         an owner.
7047
7048         * class.c
7049         (mono_class_from_generic_parameter): We need to have an owner.
7050         (my_mono_class_from_generic_parameter): Likewise.
7051
7052         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7053         mono_reflection_create_generic_class() and added a new
7054         mono_reflection_setup_generic_class().  
7055         (mono_reflection_initialize_generic_param): If we're a nested
7056         generic type and inherited from the containing class, set our
7057         owner to the outer class.
7058
7059 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7060
7061         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7062
7063         * reflection.c (mono_method_body_get_object): New function to create
7064         a MethodBody object.
7065
7066         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7067
7068 2004-10-11  Martin Baulig  <martin@ximian.com>
7069
7070         * metadata.c (_mono_metadata_type_equal): Renamed to
7071         do_mono_metadata_type_equal() and made static.
7072
7073 2004-10-11  Martin Baulig  <martin@ximian.com>
7074
7075         * appdomain.c: Bump corlib version number to 28.
7076
7077 2004-10-10  Martin Baulig  <martin@ximian.com>
7078
7079         * class-internals.h
7080         (MonoGenericInst): Added `MonoGenericContainer *container'.
7081         (MonoGenericMethod): Likewise.
7082         (MonoGenericContext): Likewise.
7083         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7084
7085         * metadata.c
7086         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7087         (do_mono_metadata_parse_generic_inst): Likewise.
7088         (mono_metadata_parse_type_full): New public method.  This is the actual
7089         mono_metadata_parse_type() implementation - with an additional
7090         `MonoGenericContainer *' argument.
7091         (mono_metadata_parse_array_full): Likewise.
7092         (mono_metadata_parse_signature_full): Likewise.
7093         (mono_metadata_parse_method_signature_full): Likewise.
7094         (mono_metadata_parse_mh_full): Likewise.
7095         (mono_type_create_from_typespec): Likewise.
7096         (mono_metadata_interfaces_from_typedef_full): New public method;
7097         this is similar to the other _full() methods, but we take a
7098         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7099         (mono_metadata_parse_generic_param): Take an additional
7100         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7101         from that container.
7102         (mono_metadata_generic_param_equal): New static method to compare
7103         two type parameters.
7104         (_mono_metadata_type_equal): New static method; takes an
7105         additional `gboolean signature_only' argument - if true, we don't
7106         compare the owners of generic parameters.
7107         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7108         with a TRUE argument - do a signature-only comparision.
7109
7110         * loader.c: Use the new _full() methods and pass the
7111         MonoGenericContainer to them.
7112
7113         * object-internals.h (MonoReflectionTypeBuilder): Added
7114         `MonoGenericContainer *generic_container' field.
7115         (MonoReflectionMethodBuilder): Likewise.
7116
7117 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7118
7119         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7120         case initial images of dynamic assemblies.
7121
7122         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7123
7124         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7125
7126         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7127         length of event->other array.
7128         (typebuilder_setup_events): Ditto.
7129
7130         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7131         'assembly_by_name' and add an 'assemblies' list.
7132
7133         * assembly.h assembly.c: Add a new search hook for determining whenever
7134         an assembly is already loaded. Use this instead of searching in the
7135         loaded_assemblies list.
7136
7137         * domain.c appdomain.c: Implement the new search hook so loaded 
7138         assemblies are now scoped by appdomain. Fixes #67727.
7139
7140 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7141
7142         * threads.c (mono_thread_attach): Initialize synch_lock field so
7143         mono_thread_detach works again.
7144
7145         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7146         'lib' too. Fixes #63130.
7147
7148 2004-10-06  Jackson Harper  <jackson@ximian.com>
7149
7150         * culture-info-tables.h: regenerated.
7151
7152 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7153
7154         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7155         implemented by other interfaces in the result. Fixes #65764.
7156         
7157         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7158         Handle unloadable modules without crashing.
7159
7160         * image.c (load_modules): Revert the previous patch since modules must
7161         have a fixed index inside the array.
7162         
7163         * image.c (load_modules): Don't include native modules in the modules
7164         array.
7165
7166 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7167
7168         * reflection.h: Add param_defaults field.
7169
7170         * reflection.c: Add support for parameter defaults in dynamic methods.
7171         Fixes #64595.
7172
7173         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7174         an empty string when a type has no namespace. Fixes #64230.
7175
7176 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7177
7178         * tabledefs.h: Added "internal" security actions to support non-CAS
7179         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7180         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7181
7182 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7183
7184         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7185         constructor of abstract class. Fixes #61689.
7186
7187 2004-10-04  Martin Baulig  <martin@ximian.com>
7188
7189         * class-internals.h (MonoGenericContainer): New type.
7190         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7191         `MonoGenericContainer *generic_container'.
7192         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7193         `MonoGenericContainer *generic_container'.
7194
7195         * metadata.c (mono_metadata_load_generic_params): Return a
7196         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7197         removed the `num' argument.
7198
7199 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7200
7201         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7202         for dynamic images.
7203
7204         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7205         machine fields.
7206
7207         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7208
7209         * reflection.c: Save pe_kind and machine values into the generated
7210         image file.
7211
7212         * appdomain.c: Bump corlib version number.
7213
7214         * object-internals.h: Reorganize layout of LocalBuilder.
7215
7216         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7217         New helper function.
7218
7219         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7220         created MonoType for dynamic types. Fixes #66180.
7221
7222 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7223
7224         * threadpool.c: the ares hashtable needs a critical section around it.
7225         this prevents some nasty segfaults
7226
7227 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7228
7229         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7230         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7231         bug 67324).
7232         
7233 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7234
7235         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7236         
7237 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7238
7239         * image.c: Always canonicalize image file names, to avoid loading
7240         the same assembly twice when referenced using a relative path.
7241
7242 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7243
7244         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7245
7246         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7247
7248         * marshal.c: Fix warnings.
7249
7250 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7251
7252         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7253         attempting to marshal the delegate_trampoline as the method_addr.
7254         This patch has a static hashtable of marshalled delegates so that 
7255         we can map delegate_trampoline addresses back to delegates.  This
7256         allows a delegate passed to managed code to be passed back into native
7257         code.  Fixes #67039
7258
7259 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7260
7261         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7262
7263         * reflection.c (method_encode_code): Align method headers properly.
7264         Fixes #66025.
7265
7266 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7267
7268         * marshal.c: In the runtime invoke wrapper, reset the abort
7269         exception if it is cached. This avoids the automatic rethrowal of 
7270         the exception after the catch of the wrapper. Also check for pending
7271         interruptions before calling the managed method. This is done using
7272         the new method emit_thread_force_interrupt_checkpoint, since the
7273         normal checkpoint method is ignored when running the invoke wrapper.
7274         * object.c: If the abort exception is rethrown, set the abort_exc
7275         field of the thread, so it will be rethrown aftere every catch.
7276         * threadpool.c: Only run an interruption checkpoint if what has been
7277         requested is a stop of the thread (aborts will be ignored).
7278         * threads.c: By default, a thread will now never be interrumped while
7279         running the runtime invoke wrapper (this ensures that runtime_invoke
7280         will always return to the caller if an exception pointer is provided).
7281         There is a new special method mono_thread_force_interruption_checkpoint()
7282         to force an interruption checkpoint even if running a protected
7283         wrapper, which is used by the same runtime invoke wrapper to do a check
7284         at a safe point.
7285
7286 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7287
7288         * object.c, object-internals.h: Implemented mono_release_type_locks,
7289         which releases the cctor locks held by a thread.
7290         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7291         by a thread. Added mono_thread_exit() method to be used to safely stop
7292         a thread.
7293
7294 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7295
7296         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7297         Move null check before dereference.  Avoid indexing beyond the end
7298         of the 'modules' array.
7299
7300 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7301
7302         * metadata-internals.h (MonoImage): Add module_count field.
7303         * image.c (load_modules): Set image->module_count.
7304         (mono_image_load_file_for_image): Use image->module_count.
7305         * reflection.c (mono_image_load_module): Append to image->modules array 
7306         of dynamic assembly.
7307         (mono_module_get_object): Fix loop to actually increment index.
7308         Use image->module_count.
7309         * assembly.c (mono_assembly_load_references): Use image->module_count.
7310         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7311         Likewise.
7312
7313 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7314
7315         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7316         Avoid assert on generic types.
7317
7318 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7319
7320         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7321
7322         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7323
7324         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7325         function to convert a MarshalSpec structure to its managed counterpart.
7326
7327         * reflection.c: Fix warnings.
7328         
7329         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7330         field.
7331
7332         * icall.c (mono_create_icall_signature): Fix build.
7333
7334 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7335
7336         * icall.c: Add MakePointType icall.
7337
7338         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7339         warnings.
7340
7341 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7342
7343         * threadpool.c: reuse allocated slots in the queue.
7344
7345 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7346
7347         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7348
7349         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7350
7351         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7352         previous change.
7353
7354         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7355         ThrowOnUnmappableChar.
7356
7357         * icall.c (ves_icall_Type_GetPacking): New icall.
7358
7359 2004-09-24  Martin Baulig  <martin@ximian.com>
7360
7361         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7362
7363 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7364
7365         * appdomain.c:
7366         (mono_domain_set): allow setting a domain that is being unloaded.
7367         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7368         being unloaded.
7369
7370 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7371
7372         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7373         the GetCustomAttributes icall.
7374
7375 2004-09-23  Martin Baulig  <martin@ximian.com>
7376
7377         * object-internals.h (MonoReflectionGenericParam): Replaced
7378         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7379         with `guint32 attrs'.
7380
7381 2004-09-23  Martin Baulig  <martin@ximian.com>
7382
7383         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7384
7385 2004-09-23  Martin Baulig  <martin@ximian.com>
7386
7387         * object-internals.h (GenericParameterAttributes): New enum.
7388
7389 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7390
7391         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7392         
7393         * class.c (init_events): Fill out event->other field.
7394
7395         * class.c: Fix warnings.
7396
7397         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7398
7399 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7400
7401         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7402         walk which doesn't supply the IL offset.
7403
7404 2004-09-22  Martin Baulig  <martin@ximian.com>
7405
7406         * reflection.c (mono_reflection_setup_internal_class): If we're
7407         System.ValueType, System.Object or System.Enum, set
7408         `klass->instance_size' and create the vtable.
7409         (mono_reflection_create_internal_class): If we're an enum type,
7410         get the base class from our current corlib.
7411
7412 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7413
7414         * reflection.h (MonoResolveTokenError): New type.
7415
7416         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7417         icall.
7418
7419         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7420
7421 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7422
7423         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7424         Support also calling constructors, but only for already allocated objects.
7425
7426 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7427
7428         * reflection.c (type_get_qualified_name): If the klass is null
7429         return the typename to avoid a NullRefEx.
7430         (encode_cattr_value): Get the qualified name of the boxed type,
7431         not the underlying enumtype.  Fixes #62984.
7432
7433 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7434
7435         * marshal.c: Fix problems with previous checkin.
7436
7437 2004-09-21    <vargaz@freemail.hu>
7438
7439         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7440         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7441
7442         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7443
7444 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7445
7446         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7447         should only return a type for pointers, arrays, and passbyref types.
7448         Fixes bug #63841.
7449
7450 2004-09-21  Martin Baulig  <martin@ximian.com>
7451
7452         * domain.c (mono_debugger_check_runtime_version): New public
7453         function.
7454
7455         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7456
7457 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7458
7459         * reflection.c: Added missing sort to the declarative security 
7460         attributes table. MS implementation stops seeing the attributes if the
7461         token number regress in the table (as shown by ildasm and permview).
7462
7463 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7464
7465         * object-internals.h (MonoReflectionModule): Add 'token' field.
7466         
7467         * reflection.c (mono_reflection_get_token): Add support for Module
7468         and Assembly.
7469         (mono_module_get_object): Set 'token' field.
7470         (mono_module_file_get_object): Set 'token' field.
7471
7472         * icall.c: Add new Assembly and Module icalls.
7473
7474         * appdomain.c: Bump corlib version.
7475
7476 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7477
7478         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7479         tokens of metadata objects.
7480
7481         * reflection.h reflection.c (mono_reflection_get_token): New function
7482         to obtain the token of a metadata object.
7483
7484         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7485
7486 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7487
7488         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7489         
7490         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7491
7492 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7493
7494         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7495         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7496         AssemblyBuilder to access the permissions set in the class lib.
7497         * reflection.c: Added security attributes encoding step in 
7498         mono_image_build_metadata.
7499         * tabledefs.h: Added new security actions defined in 2.0:
7500         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7501
7502 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7503
7504         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7505         macro parameter.
7506
7507 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7508  
7509         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7510           finalized. There where random SIGSEVs at program termination, when
7511           an object being finalized was trying to do a string comparison and
7512           the current culture was already finalized.
7513  
7514 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7515
7516         * threads.c: call thread_cleanup before finishing the thread if we get
7517         there.
7518
7519 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7520
7521         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7522         assemblies from the parent. Fixes #65665.
7523
7524 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7525
7526         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7527         modifiers.
7528
7529 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7530
7531         * reflection.h: add prototype for mono_get_dbnull_object
7532         * reflection.c: add prototypes for get_default_param_value_blobs 
7533         and mono_get_object_from_blob for fussier compilers
7534
7535 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7536  
7537         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7538         false deadlock checks in class initialization.
7539  
7540 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7541
7542         * image.c (mono_image_addref): Fix comment.
7543
7544         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7545         possible.
7546
7547 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7548
7549         * reflection.c (mono_param_get_objects): Modified to return
7550         ParameterInfo.DefaultValue object.
7551
7552         (get_default_param_value_blobs):
7553         (mono_get_object_from_blob):
7554         (mono_get_dbnull_object): New helper routines. 
7555
7556         * object.c (mono_get_constant_value_from_blob): New helper routine
7557         carved out from get_default_field_value ()
7558
7559         * object-internals.h (mono_get_constant_value_from_blob): Added
7560         function declaration.
7561
7562 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7563
7564         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7565         referenced assemblies. Fixes #62135.
7566
7567         * exception.h exception.c (mono_get_exception_file_not_found2): New
7568         helper function.
7569
7570 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7571
7572         * class.h class.c: Add mono_type_get_underlying_type ().
7573
7574 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7575
7576         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7577         Fix GetTypes() to support dynamically created assemblies.
7578
7579 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7580
7581         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7582         
7583         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7584         previous patch.
7585
7586         * reflection.h reflection.c loader.c: Allow dynamic construction of
7587         pinvoke methods. Fixes #65571.
7588         
7589         * reflection.c (mono_reflection_get_type): Revert previous change since
7590         it causes regressions.
7591
7592 2004-09-08  Martin Baulig  <martin@ximian.com>
7593
7594         * class.c (class_compute_field_layout): Don't call
7595         mono_class_layout_fields() for open generic instances.
7596
7597 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7598         * threads.c appdomain.c: fix typo in GC macro
7599
7600 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7601
7602         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7603         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7604
7605 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7606
7607         * image.c (mono_image_close): Applied patch from 
7608         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7609         assembly is loaded multiple times from data.
7610         
7611         * image.c (mono_image_open): Fix warning.
7612
7613 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7614
7615         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7616         once. Fixes #58334.
7617         
7618         * reflection.c (mono_reflection_create_runtime_class): Initialize
7619         klass->nested_classes. Fixes #61224.
7620
7621 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7622
7623         * threads.c: sched_yield() on exit, to allow threads to quit.
7624
7625 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         * object.c (mono_unhandled_exception): Remove leftover debug code.
7628
7629 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7630
7631         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7632
7633 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7634
7635         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7636         
7637         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7638
7639 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7640
7641         * marshal.c (emit_marshal_array): Null terminate string arrays.
7642         
7643         * marshal.c (raise_auto_layout_exception): Fix warning.
7644
7645         * reflection.c (mono_param_get_objects): Initialize the default value
7646         with DBNull.Value, not null. Fixes #62123.
7647
7648 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7649
7650         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7651         throw an exception with a cute explanation.
7652
7653 2004-09-06  Dick Porter  <dick@ximian.com>
7654
7655         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7656         Close the new process's thread handle, as we don't use it.  The
7657         handle stays around forever otherwise.
7658
7659 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7660
7661         * object.c (arith_overflow): Fix warning.
7662
7663         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7664         calling conventions in method refs. Fixes #65352.
7665
7666         * reflection.c: Fix warnings.
7667
7668 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7669
7670         * icall.c: Add a new icall for Array.Clear
7671
7672 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7673
7674         * object.c: When allocating an array, we have to throw
7675         an overflow exception if any of the lengths are < 0.
7676
7677 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7678
7679         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
7680         properly. Also move implementation of string array marshalling to 
7681         managed code. Fixes #42316.
7682
7683 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7684
7685         * assembly.c: provide more information when loading an assembly fails.
7686
7687 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7688
7689         * filewatcher.c: don't expect the development fam package to be
7690         installed.
7691
7692 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
7693
7694         * marshal.c: Make a copy of the signature cookie since it will be
7695         freed by the caller.
7696         
7697         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
7698
7699         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
7700
7701         * metadata.c (mono_metadata_free_marshal_spec): New function to free
7702         marshal specs.
7703
7704         * marshal.c: More refactoring.
7705         
7706         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
7707         smaller functions.
7708
7709 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
7710
7711         * object.c: In mono_message_invoke, fill the output parameter array after
7712           calling the managed method (it was done before the call). This fixes
7713           bug #59299.
7714
7715 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7716
7717         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
7718         as well.
7719
7720 2004-09-02  Martin Baulig  <martin@ximian.com>
7721
7722         * class.c (mono_class_instance_size): Don't allow generic type
7723         definitions or open generic instances.
7724         (mono_class_array_element_size): If we're a value type, call
7725         mono_class_instance_size() on the original class.
7726
7727         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
7728         handle generic instances.
7729
7730         * mono-debug-debugger.c (write_type): Handle generic instances
7731         like classes.
7732
7733 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7734
7735         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
7736         the allocation request fails. Fixes #65089.
7737
7738         * object.c (mono_runtime_free_method): Do not call mono_free_method.
7739         
7740         * object.c (mono_runtime_free_method): New function to free a dynamic
7741         method.
7742
7743         * marshal.c (mono_delegate_free_ftnptr): New function to free the
7744         delegate trampoline.
7745
7746         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
7747         with hasthis as dynamic,
7748
7749         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
7750
7751         * domain.c (mono_jit_info_table_remove): New function to remove an
7752         entry from the jit info table.
7753
7754         * class-internals.h (MonoMethod): Add 'dynamic' field.
7755
7756         * loader.c: Fix warnings.
7757
7758 2004-09-01  Martin Baulig  <martin@ximian.com>
7759
7760         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
7761         instead of mono_debugger_lock() because the latter one is a no-op
7762         unless running in the debugger.
7763
7764 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7765
7766         * class.c (class_compute_field_layout): Classes with auto-layout or
7767         reference fields are not blittable.
7768         
7769 2004-09-01  Dick Porter  <dick@ximian.com>
7770
7771         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
7772         mono_image_get_filename() to get the assembly location.
7773
7774         * icall.c:
7775         * metadata.h: Fix compile warnings
7776
7777 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7778
7779         * class.c (class_compute_field_layout): System.Object is blittable.
7780
7781         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
7782         as in/out. Fixes #59909.
7783
7784 2004-09-01  Martin Baulig  <martin@ximian.com>
7785
7786         * metadata.h (MONO_TYPE_ISREFERENCE): Call
7787         mono_metadata_generic_inst_is_valuetype() if we're a generic
7788         instance to check whether our underlying type is a reference type.
7789
7790 2004-09-01  Martin Baulig  <martin@ximian.com>
7791
7792         * metadata.c (mono_type_size): If we're a generic instance, call
7793         mono_class_value_size() for value types.
7794
7795 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
7796
7797         * marshal.c: Implement more custom marshalling functionality. Fixes
7798         #64915.
7799
7800 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7801
7802         * mono-debug.c, debug-mono-symfile.c: add some locking love.
7803
7804 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
7805
7806         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
7807
7808         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
7809
7810         * icall.c: Fix some warnings.
7811
7812         * threads.c (abort_appdomain_thread): Fix unref errors.
7813         (mono_thread_current): Fix THREAD_DEBUG define.
7814
7815 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
7816
7817         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
7818
7819         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
7820
7821 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
7822
7823         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
7824         string arrays.
7825
7826 2004-08-28  Martin Baulig  <martin@ximian.com>
7827
7828         * metadata.c
7829         (mono_metadata_generic_inst_is_valuetype): New public function.
7830
7831         * metadata.h (MONO_TYPE_ISSTRUCT): Call
7832         mono_metadata_generic_inst_is_valuetype() if we're a generic
7833         instance to check whether our underlying type is a valuetype.
7834
7835 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
7836
7837         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
7838         #63768.
7839
7840 2004-08-25  Martin Baulig  <martin@ximian.com>
7841
7842         * loader.c (mono_get_method_from_token): Abstract methods can also
7843         be generic and thus have type parameters.
7844
7845         * metadata-internals.h
7846         (MonoDynamicImage): Added `GPtrArray *gen_params'.
7847
7848         * reflection.c (mono_image_get_generic_param_info): Don't create a
7849         metadata row, just add an entry to the `gen_params' array.
7850         (build_compressed_metadata): Sort the `gen_params' array and then
7851         actually create the metadata.
7852
7853 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7854
7855         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
7856
7857 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
7858
7859         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
7860
7861 2004-08-24  Martin Baulig  <martin@ximian.com>
7862
7863         * class.cs (mono_class_is_subclass_of): Like an interface, a
7864         generic instance also derives from System.Object.
7865
7866 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
7869         custom modifiers to be in any order. Fixes #61990.
7870
7871 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
7872
7873         * object.c: Register mono_object_new_fast icall.
7874         
7875         * object.c (mono_class_get_allocation_ftn): Return to calling
7876         mono_object_new_fast, since it seems faster to compute the object 
7877         size in unmanaged code than passing it as a parameter.
7878
7879         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
7880
7881         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
7882         this function with Boehm as the oom handler, so we don't have to check
7883         the result of GC_malloc.
7884
7885         * object.c: Remove checks for oom.
7886
7887         * object.h object.c (mono_class_get_allocation_ftn): New function to
7888         return the icall which can be used to allocate an instance of a given
7889         class. 
7890
7891         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
7892
7893         * class-internals.h: Add 'enabled' field.
7894
7895 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
7896
7897         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
7898
7899 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
7900         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
7901         value 0x0010.
7902
7903 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
7904
7905         * appdomain.c: use the Tls function for appdomain too,
7906         at Zoltan's request. Actually return in mono_context_get
7907
7908         * appdomain.c, profiler.c, threads.c: use __thread
7909
7910 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
7911
7912         * appdomain.c threads.c: Call GC_CreateThread on windows.
7913
7914         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
7915         multiple libraries since this don't work on windows.
7916
7917 2004-08-18  Martin Baulig  <martin@ximian.com>
7918
7919         * class-internals.h
7920         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
7921         MonoMethodHeader.
7922
7923         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
7924         MonoMethodNormal since we also need it for abstract and interface
7925         methods.
7926
7927         * reflection.c
7928         (build_compressed_metadata): Sort the GenericParam table.
7929         (mono_image_create_token): Added `gboolean create_methodspec'
7930         argument; this is false when generating a MethodImpl token.
7931         (reflection_methodbuilder_to_mono_method): Abstract and interface
7932         methods may also have generic parameters.
7933
7934 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
7935
7936         * appdomain.c: thread local alloc
7937
7938 2004-08-17  Martin Baulig  <martin@ximian.com>
7939
7940         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
7941
7942         * icall.c
7943         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
7944         argument.
7945
7946         * class.c (mono_type_get_full_name): New public function.
7947         (mono_type_get_name): Don't include the type arguments.
7948
7949 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
7950
7951         * Makefile.am: Build static versions of libmetadata and libmonoruntime
7952         for inclusion into the mono executable.
7953
7954 2004-08-16  Martin Baulig  <martin@ximian.com>
7955
7956         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
7957         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
7958
7959 2004-08-14  Martin Baulig  <martin@ximian.com>
7960
7961         * class.c (dup_type): Also copy the `byref' field.
7962
7963 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
7964
7965         * reflection.c (create_dynamic_mono_image): Revert the last change 
7966         since it breaks bootstrap.
7967
7968 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
7969
7970         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
7971
7972         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
7973         not free them with g_free.
7974
7975 2004-08-11  Martin Baulig  <martin@ximian.com>
7976
7977         * reflection.c (mono_reflection_setup_internal_class): Also call
7978         mono_class_setup_mono_type() if we already have a `tb->type.type'.
7979
7980 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
7981
7982         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
7983         called during default (first) AppDomain creation. Keep track of
7984         Evidence when loading assemblies.
7985
7986 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
7987
7988         * opcodes.c, opcodes.h: reduce runtime relocations.
7989
7990 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
7991
7992         * culture-info.h, locales.c: fixes and chages to sue the new
7993         optimized format of the locale data.
7994         * culture-info-tables.h: regenerated.
7995
7996 2004-08-06  Geoff Norton <gnorton@customerdna.com>
7997         
7998         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
7999
8000 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8001
8002         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8003         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8004         * domain-internals.h: icall declaration.
8005         * icall.c: icall registration.
8006         * object-internals.h: New fields in MonoAssembly for CAS.
8007
8008 2004-08-05  Duncan Mak  <duncan@ximian.com>
8009
8010         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8011         CEE_LDELEM_ANY.
8012
8013 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8014
8015         * reflection.c: fix to deal with object[] arrays in custom ctors
8016         (bug #62550).
8017
8018 2004-08-05  Martin Baulig  <martin@ximian.com>
8019
8020         * class.c (mono_class_array_element_size): Added support for
8021         generic instances and correctly handle "recursive" types.
8022
8023 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8024
8025         * assembly.c: Fix warnings.
8026
8027 2004-08-04  Martin Baulig  <martin@ximian.com>
8028
8029         * class.c
8030         (mono_type_get_name_recurse): Added `gboolean include_arity'
8031         argument specifying whether or not we should include the generic
8032         arity in the type name.
8033         (_mono_type_get_name): New static function.
8034         (mono_class_setup_vtable): If we're a generic instance, don't
8035         include the generic arity in the names of explicit method
8036         implementations.        
8037
8038 2004-08-03  Martin Baulig  <martin@ximian.com>
8039
8040         * class.c (mono_type_get_name_recurse): Enclose the generic type
8041         arguments in `<', '>'.
8042
8043 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8044
8045         * gc.c: make GC warning messages use the trace API, they are just
8046         noise to most of the users.
8047
8048 2004-08-03  Martin Baulig  <martin@ximian.com>
8049
8050         * debug-mono-symfile.c (read_string): Correctly read the string.
8051
8052 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8053
8054         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8055         
8056         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8057         icalls.
8058         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8059
8060 2004-07-30  Martin Baulig  <martin@ximian.com>
8061
8062         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8063         Reflect latest symbol writer changes.   
8064
8065 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8066
8067         * object.c: always create an object if null is passed
8068         to Invoke() where a valuetype is expected.
8069
8070 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8071
8072         * marshal.c (mono_marshal_init): make managed
8073         signatures match native ones better for 64bits.
8074
8075 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8076
8077         * appdomain.c: hack to build correctly the private bin path on windows.
8078         Fixes bug #61991.
8079
8080 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8081
8082         * assembly.c: Load mscorlib from the correct framework directory
8083           (mono/<version>/mscorlib.dll).
8084         * appdomain.h: Added prototypes for new functions.
8085         * internals.h: Added some prototypes.
8086         * domain.c: When initializing the runtime, get from the executable and
8087           the configuration files the runtime version that the app supports.
8088           Added support methods for reading app.exe.config. Added list of versions
8089           supported by the JIT. Added two new methods: mono_init_from_assembly,
8090           which initializes the runtime and determines the required version from
8091           the provided exe file, and mono_init_version, which initializes
8092           the runtime using the provided version.
8093         * icall.c: Get machine.config from version-specific directory.
8094         * reflection.c: When generating an image, embed the version number
8095           of the current runtime.
8096
8097 2004-07-28  Dick Porter  <dick@ximian.com>
8098
8099         * socket-io.c
8100         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8101         returned sockaddr size before creating the remote address object.
8102         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8103         61608.
8104
8105 2004-07-28  Dick Porter  <dick@ximian.com>
8106
8107         * locales.c (string_invariant_compare_char): Fix invariant char
8108         compares between upper and lower cases.  Fixes bug 61458.
8109
8110 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8111         
8112         * marshal.c: actually cache stelem.ref wrappers.
8113         
8114 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8115
8116         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8117         sections and remove the mono_cli_rva_map () function.
8118
8119 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8120
8121         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8122         by Geoff Norton (<gnorton@customerdna.com>).
8123
8124 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8125
8126         * class.c: fix class loads for pointer types (typeof(int) !=
8127         typeof(int*)).
8128
8129 2004-07-27  Martin Baulig  <martin@ximian.com>
8130
8131         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8132         reading the debugging information from an external ".mdb" file.
8133
8134 2004-07-24  Martin Baulig  <martin@ximian.com>
8135
8136         * reflection.c (mono_image_get_type_info): Only write a class
8137         layout entry if we actually have a size or a packing size.
8138
8139 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8140
8141         * reflection.c (type_get_fully_qualified_name): 
8142         insert cast to get type checking of ?: with non-gcc compilers
8143
8144 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8145
8146         * rand.c: use g_getenv for both lookups of
8147         MONO_EGD_SOCKET
8148
8149 2004-07-17  Martin Baulig  <martin@ximian.com>
8150
8151         * reflection.c (mono_reflection_bind_generic_method_parameters):
8152         Set `gmethod->reflection_info'.
8153
8154 2004-07-17  Martin Baulig  <martin@ximian.com>
8155
8156         * class.c (mono_class_create_from_typedef): Insert the newly
8157         created class into the hash table before computing the interfaces
8158         since we could be called recursively.
8159
8160 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8161
8162         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8163         function to implement stelem.ref in managed code
8164         * class-internals.h, debug-helpers.c: a new wrapper type
8165         for the above.
8166
8167 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8168
8169         * gc.c: allow GC handles to work even when no GC is compiled in.
8170         Fix part of bug #61134 (GetAddrOfPinnedObject).
8171
8172 2004-07-13  Peter Williams  <peter@newton.cx>
8173  
8174         * process.c (complete_path): Make sure we don't attempt to execute
8175         directories.
8176  
8177 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8178
8179         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8180           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8181           and will add/subtract the hour if needed
8182
8183 2004-07-12  Martin Baulig  <martin@ximian.com>
8184
8185         * reflection.c (mono_field_get_object): If we have
8186         `field->generic_info', take the attributes from
8187         `field->generic_info->generic_type'.    
8188
8189 2004-07-12  Martin Baulig  <martin@ximian.com>
8190
8191         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8192         This function must be called before initializing the runtime.
8193         (mono_debug_init_1): New function; call this after initializing
8194         the runtime, but before loading the assembly.  It tells the
8195         debugger to load corlib and the builtin types.
8196
8197         * mono-debug-debugger.c: Did some larger changes in the debugging
8198         code; support recursive class declarations, make sure we actually
8199         add all classes.
8200
8201 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8202
8203         * debug-helpers.c: undo my previous patch and fixed the real issue in
8204         ../mini/exceptions-x86.c
8205
8206 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8207
8208         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8209         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8210         called from other .cctors.
8211
8212 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8213
8214         * loader.c: Removed the mono_loader_wine_init hack now that we are
8215         doing a managed version of Windows.Forms.
8216
8217 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8218
8219         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8220         threadpool.c, threads.c: remove static data from rootset.
8221
8222 2004-07-09  Dick Porter  <dick@ximian.com>
8223
8224         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8225         Don't do any more processing if the matched length was 0.  It was
8226         increasing the size of the string before.  Fixes bug 61167.
8227
8228 2004-07-09  Dick Porter  <dick@ximian.com>
8229
8230         * socket-io.h:
8231         * socket-io.c
8232         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8233         Add support for SO_PEERCRED if its available.
8234
8235 2004-07-09  Peter Bartok <pbartok@novell.com>
8236         * loader.c: winelib.exe.so error message is now only displayed if
8237         MONO_DEBUG is set. To help us avoid questions when people are trying
8238         out the new Managed.Windows.Forms.
8239
8240 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8241
8242         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8243         for isinst and castclass wrappers.
8244
8245         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8246         to libmetadata from the JIT, so they could be used by the marshalling
8247         code and the interpreter.
8248
8249         * marshal.c: Register marshalling related JIT icalls here instead of
8250         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8251         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8252
8253         * metadata.h: Remove unneeded marshalling conversions.
8254
8255         * opcodes.c: Update for new opcodes.
8256         
8257 2004-07-08  Martin Baulig  <martin@ximian.com>
8258
8259         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8260         (mono_debug_get_domain_data): Make this function static.
8261
8262 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8263
8264         * gc.c, object.h: add nice GC handle API for embedders.
8265
8266 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8267
8268         * reflection.c: more changes for the new api
8269
8270         * object.c: When we reflect on a field w/ a constant value, it
8271         will not have a memory location, so we must access metadata. Also,
8272         allow easier reading of strings so that we can read them from
8273         the constant data.
8274
8275         * class.c (mono_class_layout_fields): no need for literal fields here.
8276
8277         * class-internals.h: api changes for const fields
8278
8279         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8280
8281 2004-07-06  Martin Baulig  <martin@ximian.com>
8282
8283         * mono-debug.h: Increment version number to 44.
8284
8285         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8286         now a gpointer, rewrote this whole method.
8287
8288         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8289         function.  Add information about the wrapper in a new "misc table".
8290
8291         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8292         for the new misc table.
8293
8294 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8295
8296         * metadata-internals.h image.c: Add a cache for helper signatures.
8297
8298         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8299
8300 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8301
8302         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8303         delegates from a delegate. Fixes #61033.
8304         
8305         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8306         marshalling of stringbuilder arrays. Fixes #59900.
8307
8308 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8309
8310         * icall.c: Add EnumBuilder:setup_enum_type icall.
8311
8312 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8313
8314         * icall.c: Added a new icall for the property version of
8315         OffsetOfStringData.
8316
8317 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8318
8319         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8320         it has a constant size across platforms.
8321
8322         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8323         stack trace.
8324
8325 2004-06-29  Martin Baulig  <martin@ximian.com>
8326
8327         * mono-debug.c (mono_debug_add_method): Protect the whole function
8328         in mono_debugger_lock(), not just parts of it.
8329
8330 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8331
8332         * reflection.c: make sure padding bytes in heaps are zeroed.
8333
8334 2004-06-24  David Waite  <mass@akuma.org>
8335
8336         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8337         image.c, loader.c, locales.c, marshal.c, metadata.c,
8338         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8339         string-icalls.c, threads.c: change to C90-style comments from C99 /
8340         C++ -style
8341
8342 2004-06-24  Dick Porter  <dick@ximian.com>
8343
8344         * threads.c
8345         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8346         return createdNew.  Fixes bug 60412.
8347
8348         * threads-types.h: 
8349         * icall.c: Add createdNew parameter to CreateMutex icall
8350
8351 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8352
8353         * reflection.c, object-internals.h: save default value in params.
8354
8355 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8356
8357         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8358         no need to build a new path combining that with the application base.
8359         Fixes bug #60442.
8360
8361 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8362
8363         * reflection.c: fixed minor standard compliance issues.
8364
8365 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8366
8367         * reflection.c: fixed issue with encoding some custom attributes
8368         (arrays in properties and fields, bug #60411).
8369
8370 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8371
8372         * reflection.c: fix start address when copying the public key token.
8373
8374 2004-06-23  Martin Baulig  <martin@ximian.com>
8375
8376         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8377         the `exc' object in a static object to put it into the GC's root set.
8378
8379 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8380
8381         * reflection.c: make mono_reflection_setup_internal_class ()
8382         callable a second time to setup a new parent class.
8383
8384 2004-06-23  Dick Porter  <dick@ximian.com>
8385
8386         * threads.c: Check for WAIT_IO_COMPLETION return values.
8387
8388 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8389
8390         * appdomain.c: Removed the g_free on the public key token. Now copy 
8391         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8392         * assembly.c: Added public key token string value when loading 
8393         assemblies. Fix bug #60439.
8394         * icall.c: Added missing informations (like public key) in 
8395         GetReferencedAssemblies. Fix #60519.
8396         * image.h: Changed definition for public key token from const char*
8397         public_tok_value to guchar public_key_token [17];
8398         * reflection.c: Updated for changes to public key token.
8399
8400 2004-06-22  Lluis Sanchez Gual
8401
8402         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8403         for the field in base classes.
8404
8405 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8406
8407         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8408         mark headers as not supported, they are installed only for use by the
8409         debugger.
8410
8411 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8412
8413         * *.c, *.h: avoid namespace pollution in public headers.
8414
8415 2004-06-21  Martin Baulig  <martin@ximian.com>
8416
8417         * exception.c (mono_get_exception_security): It's in
8418         "System.Security", not in "System".
8419
8420         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8421         the exception classes.
8422
8423 2004-06-21  Martin Baulig  <martin@ximian.com>
8424
8425         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8426         Protect the exception object from being finalized.
8427
8428 2004-06-21  Martin Baulig  <martin@ximian.com>
8429
8430         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8431         public function.
8432
8433 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8434
8435         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8436         if it was not loaded before. Fix parts of #60439.
8437
8438 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8439
8440         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8441         code that was broken since Ben's change: wrappers are now
8442         dependent on the method signature only again.
8443
8444 2004-06-21  Martin Baulig  <martin@ximian.com>
8445
8446         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8447         added interface support.
8448
8449 2004-06-21  Martin Baulig  <martin@ximian.com>
8450
8451         * class.c (mono_vtable_get_static_field_data): New public method.
8452
8453 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8454
8455         * filewatcher.c : Windows build fix to be compliant with API changes.
8456
8457 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8458
8459         * class.h, class.c: more accessors.
8460         * metadata.h, metadata.c: prepare for hiding MonoType and
8461         MonoMethodSignature: people should use the accessors from now on
8462         outside of the tree.
8463
8464 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8465
8466         * *.c, *.h: more API cleanups.
8467
8468 2004-06-18  Jackson Harper  <jackson@ximian.com>
8469
8470         * assembly.c: Trace loading assemblies.
8471         * loader.c: Trace loading native libraries.
8472         * mono-config.c: Trace loading config files.
8473         
8474 2004-06-18  Dick Porter  <dick@ximian.com>
8475
8476         * locales.c: Tell ICU the lengths of strings, it can cope with
8477         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8478
8479 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8480
8481         * image.c: swapped name/filename;
8482
8483 2004-06-18  Martin Baulig  <martin@ximian.com>
8484
8485         * mono-debug-debugger.c (write_class): Write the parent class at
8486         the end of the header.
8487
8488 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8489
8490         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8491
8492 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8493
8494         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8495         (bundle_obj): New conditional define.
8496         (BUILT_SOURCES): Remove.
8497         ($(bundle_srcs)): Make parallel-make safe.
8498         (libmonoruntime_la_LIBADD): Make unconditional.
8499         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8500         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8501
8502 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8503
8504         * culture-info-tables.h: It was inconsistent with the latest
8505           supp info files.
8506
8507 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8508
8509         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8510         be loaded.
8511
8512         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8513         with gcc 2.95.
8514
8515 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8516
8517         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8518         cleaned up public header threads.h.
8519
8520 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8521
8522         * Makefile.am, *.c, *.h: more API cleanups.
8523
8524 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8525
8526         * Makefile.am: removed monosn from compilation.
8527         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8528         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8529         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8530         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8531         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8532         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8533
8534 2004-06-15  Jackson Harper  <jackson@ximian.com>
8535
8536         * assembly.c: Make locales lower case when searching the GAC for
8537         assemblies. gacutil will always make locales lowercase when
8538         installing so this effectively makes them case insensitive.
8539         
8540 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8541
8542         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8543         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8544           parameter which allows to choose whether the wait can be interrupted or 
8545           not. Also added the method mono_monitor_enter(), which locks the monitor
8546           using an infinite wait and without allowing interruption.
8547           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8548           interrupted.
8549         * object.h: Added new fields in MonoThread. suspend_event holds the event
8550           used to susped/resume the thread. synch_lock is the lock object to use for
8551           modifying the thread state.
8552         * threads.c: Use the new synch_lock object for locking, instead of "this",
8553           which can generate deadlocks.
8554           Moved thread state change in Thread.Sleep and Thread.Join from managed
8555           to unmanaged code. This avoids a deadlock when the thread was suspended
8556           just after acquiring the thread lock.
8557           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8558           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8559           which is not fully implemented in the io-layer.
8560         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8561
8562 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8563
8564         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8565         threads-types.h: more API cleanups.
8566
8567 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8568
8569         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8570         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8571         threadpool.c, threads.c: first pass at the exported API cleanup.
8572
8573 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8574
8575         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8576
8577 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8578
8579         * icall.c: added internalGetHome.
8580
8581 2004-06-14  Dick Porter  <dick@ximian.com>
8582
8583         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8584         possible to return successfully when '.' or '..' were the only
8585         entries in a directory, but were skipped.  The MonoIOStat was not
8586         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8587         Fixes bug 59574.
8588
8589 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8590
8591         * reflection.c: make binaries run on .Net 1.1 by default.
8592
8593 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8594
8595         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8596
8597 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8598
8599         * marshal.c: keep track of struct size with explicit layout
8600         (bug #59979).
8601
8602 2004-06-12  Martin Baulig  <martin@ximian.com>
8603
8604         * mono-debug-debugger.c: Comment out a debugging g_message().
8605
8606 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8607
8608         * reflection.c, reflection.h: do not free custom attrs that are cached.
8609         * icall.c: use braces to make code clearer.
8610
8611 2004-06-11  Martin Baulig  <martin@ximian.com>
8612
8613         * class.h (MonoInflatedField): New type.
8614         (MonoClassField): Replaced `MonoType *generic_type' with
8615         `MonoInflatedField *generic_info'.
8616
8617         * icall.c
8618         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8619
8620 2004-06-11  Martin Baulig  <martin@ximian.com>
8621
8622         * reflection.c (mono_image_create_method_token): Correctly encode
8623         varargs methods.
8624
8625 2004-06-11  Martin Baulig  <martin@ximian.com>
8626
8627         * metadata.c (mono_metadata_parse_method_signature): When parsing
8628         a MethodDef which has VarArgs, also set sentinelpos if we don't
8629         have any parameters.
8630
8631 2004-06-11  Martin Baulig  <martin@ximian.com>
8632
8633         * verify.c (mono_method_verify): In CEE_CALL, use
8634         mono_method_get_signature() to get the method's signature, unless
8635         we're a PInvoke method.
8636
8637 2004-06-10  Jackson Harper  <jackson@ximian.com>
8638
8639         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8640         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8641         logical name as the supplied path is just a prefix to the gac not
8642         the direct path to it.
8643         
8644 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8645
8646         * reflection.c: make the token for a created method match
8647         the token of the MethodBuilder it was created from
8648         (IKVM requires this behaviour now).
8649
8650 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8651
8652         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8653         reflection.c, socket-io.c: leak fixes.
8654
8655 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8656
8657         * icall.c: handle sentinel pos in vararg methods in position different
8658         from 0.
8659
8660 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8661
8662         * culture-info-tables.h: freshly generated.
8663
8664 2004-06-09  Martin Baulig  <martin@ximian.com>
8665
8666         * loader.c (mono_get_method_constrained): Call `mono_class_init
8667         (constrained_class)'.   
8668
8669 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8670
8671         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8672         any methods. Fixes #59629.
8673
8674 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8675
8676         * culture-info-tables.h: reflecting locale-builder updates.
8677
8678 2004-06-08  Dick Porter  <dick@ximian.com>
8679
8680         * object.h:
8681         * locales.c: Fixed compile warnings, including a real bug in
8682         CompareInfo_internal_compare.
8683         
8684 2004-06-08  Dick Porter  <dick@ximian.com>
8685
8686         * locales.c
8687         (ves_icall_System_Globalization_CompareInfo_internal_index):
8688         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8689         Double-check the resuls of usearches, because ICU currently
8690         ignores most of the collator settings here.  Fixes bug 59720.
8691         
8692 2004-06-08  Dick Porter  <dick@ximian.com>
8693
8694         * locales.c
8695         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8696         Fix memory leak and segfault-causing typo.  No idea how this one
8697         lasted so long without being noticed.
8698
8699 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
8700
8701         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
8702         any methods. Fixes #59629.
8703
8704 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8705
8706         * assembly.c:
8707         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
8708         own the critical section before). Removed dead code (that's done
8709         in the preload hook).
8710
8711         (mono_assembly_load_with_partial_name): call the preload hook.
8712
8713 2004-06-08  Martin Baulig  <martin@ximian.com>
8714
8715         * metadata.c (mono_metadata_signature_alloc): Default
8716         `sentinelpos' to -1.
8717
8718         * reflection.c (mono_image_get_array_token): Likewise.
8719
8720 2004-06-08  Martin Baulig  <martin@ximian.com>
8721
8722         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
8723
8724         * metadata.c (mono_metadata_parse_method_signature): When parsing
8725         a MethodDef which has VarArgs, set sentinelpos.
8726
8727         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
8728         `gint16' since we're using -1 for non-varargs methods.
8729
8730         * reflection.c
8731         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
8732         (method_encode_signature): Added varargs support.
8733         (method_builder_encode_signature): Likewise.
8734         (mono_image_get_varargs_method_token): New static method.
8735         (mono_image_create_method_token): New public method; this is
8736         called via an icall instead of mono_image_create_token() when
8737         calling a varargs method.       
8738
8739 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
8740
8741         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
8742
8743 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8744
8745         * culture-info-tables.h : Reflecting the latest locale-builder that
8746           fixed empty array representation ({} to {0}).
8747
8748 2004-06-07  Jackson Harper  <jackson@ximian.com>
8749
8750         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
8751         looking up extra gac paths. This allows MONO_GAC_PATH to act
8752         exactly like a prefix.
8753         
8754 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8755
8756         * reflection.c (mono_reflection_type_from_name): Make a copy of the
8757         type name before modifying it. Fixes #59405.
8758
8759 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8760
8761         * culture-info.h: added fields for "all datetime patterns".
8762         * locales.c: (  ves_icall_System_Globalization_CultureInfo
8763           _construct_datetime_format ()): fill xxx_patterns fields.
8764         * object.h: added fields for "all datetime patterns" to
8765           MonoDateTimeFormatInfo.
8766         * culture-info-tables.h: reflecting locale-builder updates.
8767
8768 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8769
8770         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
8771         the event has no add and remove methods. Fixes #59629.
8772
8773 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
8774
8775         * object.c: Fixed possible integer overflow when allocating large
8776         strings.
8777
8778 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8779
8780         * culture-info-tables.h: reflecting locale-builder updates.
8781
8782 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8783
8784         * culture-info-tables.h: reflecting locale-builder updates.
8785
8786 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
8787
8788         * culture-info-tables.h: reflecting locale-builder updates.
8789
8790 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
8791
8792         * threads.c: Made Thread.Sleep abortable.
8793
8794 2004-06-02  Martin Baulig  <martin@ximian.com>
8795
8796         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
8797
8798         * debug-mono-symfile.h: Bumped symbol file version number to 37.
8799
8800 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
8801
8802         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
8803
8804 2004-05-30  Jackson Harper  <jackson@ximian.com>
8805
8806         * reflection.c: Do not hardcode assembly versions or public key
8807         tokens anymore. All of this except the corlib section was dead
8808         code anyways.
8809         
8810 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
8811
8812         * object.c (mono_runtime_invoke_array): Automatically create boxed
8813         objects for byref valuetypes if needed. Fixes #59300.
8814         
8815         * object.c (mono_method_return_message_restore): Handle 
8816         MONO_TYPE_OBJECT as well.
8817
8818 2004-05-28  Jackson Harper  <jackson@ximian.com>
8819
8820         * reflection.c: The modified type encoding was causing build
8821         problems. Reverted for now.
8822         
8823 2004-05-28  Jackson Harper  <jackson@ximian.com>
8824
8825         * reflection.c/h: Take an assembly ref so that we dont create
8826         fully qualified names when encoding types in the same assembly as
8827         the custom attribute being emitted.
8828         * appdomain.c: Increment version number.
8829         
8830 2004-05-26  Duncan Mak  <duncan@ximian.com>
8831
8832         * icall.c
8833         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8834         Set the full version number (major, minor, build, revision).
8835
8836 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
8837
8838         * marshal.c (emit_struct_conv): increment src/dst after blit
8839         (mono_marshal_get_managed_wrapper,
8840         mono_marshal_get_native_wrapper): make sure we have marshalling
8841         info before marshalling params (info computation affects
8842         blittable)
8843
8844         * class.c (class_compute_field_layout): correctly deal with
8845         blittable
8846         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
8847         value types (as per what windows dows by default)
8848         (mono_class_setup_mono_type): System.ValueType is blittable
8849         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
8850         blittable
8851
8852         * marshal.c (mono_marshal_load_type_info): flag types  as
8853         non-blittable if the native layout doesn't match the managed
8854         layout
8855
8856 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8857
8858         * appdomain.c: don't add stuff in the private search path that is
8859         above the application base. If application base is not set, there's
8860         no private search path.
8861
8862 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
8863
8864         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
8865         byref struct arguments in native->managed marshalling.
8866
8867 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
8868
8869         * marshal.c (mono_marshal_get_runtime_invoke): correctly
8870         cache methods using signature (special case for methods
8871         that are value type or string class)
8872         
8873         * image.c (mono_image_close): clean up allocated GSList's
8874         in runtime_invoke_cache.
8875
8876 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8877
8878         * mono-config.c: set the correct path for mono_cfg_dir on windows when
8879         there's no MONO_CFG_DIR environment variable defined.
8880
8881 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8882
8883         * threads.c: windows version must be >= 0x0500 to include OpenThread.
8884
8885 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
8886
8887         * threadpool.c: Really wait for 500ms after the async call, even if the wait
8888           is interrumped.
8889         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
8890           before waiting for it, and call CloseHandle after the wait to unref it.
8891           This will make sure that handles are not disposed too early.
8892
8893 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8894
8895         * appdomain.c:
8896         * appdomain.h:
8897         * icall.c: removed
8898         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
8899         needed now.
8900
8901         * object.c: se the application_base only for the domain that runs
8902         Main. Fixes bug #59216,
8903
8904 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8905
8906         * appdomain.c:
8907         * object.c: only the domain in which Main is run have
8908         SetupInformation.ConfigurationFile set, so moved a few lines from
8909         appdomain.c to object.c.
8910
8911 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8912
8913         * appdomain.c: we tried to load [name].(dll|exe), but according
8914         to bug #57710, we must also try [culture]/[name].(dll|exe) and
8915         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
8916         There's a test case attached to bug #58922.
8917
8918 2004-05-27  Dick Porter  <dick@ximian.com>
8919
8920         * icall.c:
8921         * file-io.c: Implemented icalls for locking and unlocking regions
8922         in a file.
8923         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
8924         FALSE on error (fixes both compiler warning and real bug.)
8925
8926 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
8927
8928         * culture-info-tables.h: reflecting locale-builder updates.
8929
8930           (Added missing ChangeLog entry for 05/26)
8931
8932 2004-05-27  Jackson Harper  <jackson@ximian.com>
8933
8934         * locales.c: Fix some cut and paste errors.
8935         
8936 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8937
8938         * mono-config.c: set the correct path for config. directory on windows.
8939
8940 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8941
8942         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
8943           on win32.
8944
8945 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
8946
8947         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
8948         from pinvoke functions.
8949         
8950         * marshal.c (mono_ftnptr_to_delegate): Implement this.
8951
8952 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8953
8954         * culture-info-tables.h: reflecting locale-builder updates.
8955
8956 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
8957
8958         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
8959         #59086.
8960
8961 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
8962
8963         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
8964         * icall.c: Modified icalls for RNG.
8965         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
8966         Windows (CryptoAPI).
8967
8968 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
8969
8970         * locales.c: Fix build.
8971
8972 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8973
8974         * culture-info-tables.h: reflecting locale-builder updates.
8975
8976 2004-05-25  Jackson Harper  <jackson@ximian.com>
8977
8978         * locales.c: When creating the current culture use the $LANGs
8979         specific culture. So DateTimeFormat and NumberFormat entries are created.
8980         
8981 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
8982
8983         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
8984         a char array as parameter.
8985
8986 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
8987
8988         * image.c: In mono_image_open(), always use an absolute path name to
8989           look for already loaded images.
8990
8991 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
8992
8993         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
8994         missing in the windows build (like older cygwin include files).
8995
8996 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
8997
8998         * icall.c: Fixed check for possible integer overflow in Buffer_
8999         BlockCopy icall. Replaced comments style // by /* */.
9000
9001 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9002
9003         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9004         
9005         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9006         check after MONO_VTADDR. Fixes pinvoke2.exe.
9007
9008         * marshal.h marshal.c metadata.h: Add beginnings of support for
9009         ftnptr -> delegate marshalling.
9010
9011 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9012
9013         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9014         * threads.c: Fix warnings.
9015
9016 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9017
9018         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9019         * icall.c: Registered icalls for Suspend and Resume.
9020         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9021           Thread.Abort.
9022         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9023         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9024         * process.c: Use WaitForSingleObjectEx.
9025         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9026           checkpoints.
9027         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9028           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9029           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9030           background threads. Added basic support for Abort in Windows.
9031           Start new threads using a managed delegate invoke wrapper. This wrapper
9032           has an interruption checkpoint that is needed since an interruption
9033           can be requested before the thread leaves the unmanaged code that starts 
9034           the thread.
9035         * marshal.c: Added interruption checkpoint after every native call, and
9036           also before managed calls for wrappers called from unmanaged code to
9037           go into managed code.
9038         * object.h: Added new field in MonoThread to keep track of interruption
9039           requests.
9040
9041 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9042
9043         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9044         calls.
9045
9046 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9047
9048         * appdomain.c:
9049         * assembly.c:
9050         * gc.c:
9051         * locales.c:
9052         * mono-config.c:
9053         * rand.c: getenv -> g_getenv (windows!)
9054
9055         * process.c: complete_path is also used on non-windows platforms.
9056
9057 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9058
9059         * icall.c: new signature for Process_Start.
9060
9061         * process.[ch]: new signature for Process_Start. If we're on windows
9062         and UseShellExecute is false, we have to search for the program by
9063         ourselves if we don't get a full path.
9064
9065 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9066
9067         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9068         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9069
9070 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9071
9072         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9073         Fixes bug #58373.
9074
9075 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9076
9077         * process.c: use double quotes to quote program name and arguments on
9078         windows. Fixes bug #58575.
9079
9080 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9081
9082         * file-io.c: don't return "." and ".." when using windows Find*File.
9083
9084 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9085
9086         * marshal.c: Don't pass wrappers to message init because method 
9087         addressed used to lookup metadata. part of remoting[2|3] fix.
9088
9089 2004-05-15  Jackson Harper  <jackson@ximian.com>
9090
9091         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9092         path is essentially the same as MONO_PATH except that it points to
9093         GACs instead of lib directories.
9094         * loader.h: The user gac is gone so we dont need function to
9095         enable/disable it.
9096         * mono-config.c: user gac option is now gone.
9097         
9098 2004-05-15  Jackson Harper  <jackson@ximian.com>
9099
9100         * culture-info.h: Make defines more consistent, add calendar data
9101         to the culture info table.
9102         * culture-info-tables.h: Add basic calendar data. Basically
9103         everyone gets default gregorian until all the data is
9104         updated.
9105         * locales.c: Use the new consistent defines. Set calendar data for
9106         culture info objects.
9107         * object.h: add a field for calendar data to CultureInfo
9108         
9109 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9110
9111         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9112         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9113         a signature.
9114         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9115         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9116         an extra param that is the pointer of the method to invoke. The IL for
9117         the invoke method is no longer specific to the method, but to the
9118         signature of the method. Thus, we can share the same code for multiple
9119         methods. This reduces the number of methods that have to be compiled.
9120
9121 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9122
9123         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9124
9125         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9126
9127         * icall.c: Optimize Buffer.BlockCopy.
9128
9129 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9130
9131         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9132         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9133         quote). Changed them to "MMMM yyyy".
9134
9135 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9136
9137         * rand.c
9138         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9139
9140 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9141
9142         * reflection.h: Updated after changes to managed structures.
9143
9144         * appdomain.c: Bump corlib version.
9145
9146 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9147
9148         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9149         windows.
9150
9151 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9152
9153         * Makefile.am: link to ../os/libmonoos.la on windows.
9154
9155         * assembly.c:
9156                 -If MONO_DEBUG, warn about non-existing directories in
9157                 MONO_PATH.
9158                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9159                 compile time variable.
9160                 -Removed init_default_path and call mono_set_rootdir from
9161                 libmonoos.a instead (windows only).
9162
9163         * assembly.h: declare mono_assembly_getrootdir().
9164
9165         * domain.c:
9166         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9167
9168         * loader.c: s/getenv/g_getenv/
9169
9170 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9171
9172         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9173
9174         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9175
9176         * metadata.h: Add new marshalling conversions.
9177
9178         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9179         function.
9180
9181         * reflection.c (mono_reflection_get_type): Lookup the type in all
9182         modules of a multi-module assembly. Fixes #58291.
9183
9184 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9185
9186         * threads.c: Before aborting a background, set the StopRequested
9187         state.  This avoids throwing the Abort exception.
9188         In mono_thread_manage, don't continue with the shutdown until all
9189         aborted threads have actually stopped.
9190
9191 2004-05-10  Jackson Harper  <jackson@ximian.com>
9192
9193         * locales.c: Remove the modifier from culture names.
9194         
9195 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9196
9197         * Makefile.am: monosn is not installed any more. It has been deprecated
9198         in favor of sn.
9199
9200 2004-05-07  Jackson Harper  <jackson@ximian.com>
9201
9202         * locales.c
9203         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9204         Fix array construction, add bailout if the length is 0.
9205
9206 2004-05-07  Dick Porter  <dick@ximian.com>
9207
9208         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9209         machine doesn't have a DNS entry.  Patch by Urs Muff
9210         (umuff@quark.com), fixes bug 57928.
9211
9212 2004-05-06  Jackson Harper  <jackson@ximian.com>
9213
9214         * reflection.c: Handle null PublicTokens properly. alloc mem for
9215         assembly names culture so we dont crash when freeing it.
9216         
9217 2004-05-06  Jackson Harper  <jackson@ximian.com>
9218
9219         * assembly.c: Check the usergac when loading with partial names.
9220         
9221 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9222
9223         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9224         does nothing for now (not required for Linux/Windows) but the class
9225         library can call it (and a newer or modified runtime could need it).
9226         * icall.c: Registred icall.
9227
9228 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9229
9230         * loader.c: prints a message on module loading error we set MONO_DEBUG
9231         environment variable.
9232
9233 2004-05-05  Jackson Harper  <jackson@ximian.com>
9234
9235         * appdomain.c: Handle PublicKeyToken=null properly.
9236         
9237 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9238
9239         * environment.c|h: Added icall ves_icall_System_Environment_
9240         GetOSVersionString to get the current OS version as a string.
9241         * icall.c: Registred icall.
9242
9243 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9244
9245         * object.c: in mono_object_get_virtual_method(), take into account that
9246         non-virtual methods don't have a slot in the vtable. Check needed when
9247         the object is a proxy.
9248
9249 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9250
9251         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9252         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9253
9254         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9255
9256         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9257         passed when a valuetype is expected.
9258
9259         * object.c (mono_unhandled_exception): Only set the exit code if the
9260         exception happens in the main thread. Fixes thread5.exe.
9261
9262         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9263         invalid names. Fixes #58047.
9264
9265 2004-05-03  Jackson Harper  <jackson@ximian.com>
9266
9267         * assembly.c: This line was committed accidently and is unneeded.
9268         
9269 2004-05-03  Jackson Harper  <jackson@ximian.com>
9270
9271         * icall.c: Add new icall for Assembly::LoadWithPartialName
9272         * assembly.c/.h: new function that probes the GAC to load partial
9273         assembly names by Paolo Molaro.
9274         
9275 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9276
9277         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9278         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9279         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9280         full type name.
9281
9282 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9283
9284         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9285         * reflection.c: fix bug when parsing a full type name and Version is not
9286         the last thing in the string.
9287
9288 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9289
9290         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9291         crashes when it is freed.
9292
9293 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9294
9295         * assembly.c: print the compat warning to stderr.
9296
9297 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9298
9299         * assembly.c (mono_assembly_load_references): Add a compatibility
9300         hack to run old applications that might be still referencing the
9301         3300-based assemblies, only do this for System.xxx.
9302
9303 2004-05-01  Jackson Harper  <jackson@ximian.com>
9304
9305         * appdomain.c: If the culture is neutral we set it to "".
9306         
9307 2004-04-29  Jackson Harper  <jackson@ximian.com>
9308
9309         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9310
9311 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9312  
9313         * string-icalls.c: added low overhead function for copying chars
9314         * icall.c: added needed icall for the above function
9315  
9316 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9317
9318         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9319         Environment.GetLogicalDrives.
9320
9321 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9322
9323         * rand.c: try and talk to egd or prngd
9324         for random bytes if opening devices fail.
9325
9326 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9327
9328         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9329         alignment for the type using the native alignment of its members 
9330         instead of using klass->min_align.
9331
9332         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9333
9334 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9335
9336         * file-io.c:
9337         * socket-io.c: added check for sys/aio.h.
9338
9339 2004-04-28  Dick Porter  <dick@ximian.com>
9340
9341         * threads.c: Don't abort a thread thats already aborting, when
9342         terminating everything.
9343
9344 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9345
9346         * icall.c: added 2 new async calls for Socket.
9347
9348         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9349         IO on *nix systems.
9350
9351         * threadpool.c: removed unused variable.
9352
9353 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9354
9355         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9356
9357 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9358
9359         * locales.c: put back string_invariant_tolower () and
9360         string_invariant_toupper ().
9361
9362 2004-04-26 David Waite <mass@akuma.org>
9363
9364         * file-io.h:
9365         * socket-io.h:
9366         * threads.h:
9367         * unicode.h: remove comma from end of enumeration declarations
9368
9369 2004-04-26 David Waite <mass@akuma.org>
9370
9371         * debug-mono-symfile.h:
9372         * decimal.c:
9373         * mono_debug.h:
9374         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9375
9376
9377 2004-04-26  Jackson Harper  <jackson@ximian.com>
9378
9379         * appdomain.c: Increment version number.
9380         
9381 2004-04-26  Jackson Harper  <jackson@ximian.com>
9382
9383         * appdomain.c: Set assembly references public token value when
9384         PublicKeyToken is specified, not the hash_value. Free public token
9385         values when free assembly name data. Previously the public key
9386         token was hex decoded, however we are using hex encoded public key
9387         tokens, so this is not neccasary.
9388         * assembly.c: Lookup assemblies in the gac if their public token
9389         value is set. Add function to allow enabling user gac
9390         lookups. Specify whether or not the assembly was loaded from the
9391         GAC. Compare full assembly names when checking the cache for
9392         assemblies (Temporarily disabled see comment in code). Remove
9393         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9394         specifies trace-loader they get extra info to stdout on the
9395         loading of assemblies.
9396         * image.h: Add a field for an assembly references public token
9397         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9398         whether an assembly has been loaded from the GAC.
9399         * image.c: Remove a corlib -> mscorlib name mapping.
9400         * loader.h: Add function to enable/disable the user gac.
9401         * mono-config.c: Check if the usergac is enabled in the config
9402         file.
9403         * icall.c: New icall to determine whether or not an assembly has
9404         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9405         * tabldefs.h: Add constant for assemblyref flag that specifies a
9406         full public key is used instead of a public token.
9407         * reflection.c: Remove mscorlib -> corlib mappings. Set
9408         PublicTokenValue instead of hash value. This value is a hex
9409         string so it does not need to be expanded.
9410
9411 2004-04-26  Martin Baulig  <martin@ximian.com>
9412
9413         * mono-debug-debugger.c (mono_debugger_initialize): Set
9414         `mono_debugger_initialized' before calling mono_debug_lock().
9415
9416 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9417
9418         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9419           InternalToUpper/InternalToLower.
9420         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9421           removed invariant culture shortcut.  This is now done in managed code.
9422         * locales.c: (string_invariant_toupper/tolower) removed.
9423
9424 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9425
9426         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9427         Added Poll internal call.
9428
9429         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9430         call for Poll. Select was too heavy for polling a single socket.
9431
9432         * threadpool.[ch]: added mono_threadpool_cleanup.
9433         * threads.c: use it. Don't use Thread_Abort on windows.
9434
9435 2004-04-23  Martin Baulig  <martin@ximian.com>
9436
9437         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9438
9439 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9440
9441         * icall.c: Registred new icalls for key pair protection and added an
9442         icall for Environment.GetFolderPath on Windows.
9443         * security.c|h: Added new icalls for key pair protection.
9444
9445 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9446
9447         * socket-io.c: don't display the non-supported family warning for known
9448         families. Now this is not displayed on windows when checking support
9449         for IPv4/IPv6.
9450
9451 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9452
9453         * class.c: don't display the layout warning for static fields.
9454
9455 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9456
9457         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9458         * locales.c, locales.h: Added new icalls for culture-specific
9459         Char.ToLower and Char.ToUpper.
9460
9461 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9462
9463         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9464         by David Waite.
9465
9466 2004-04-20  Martin Baulig  <martin@ximian.com>
9467
9468         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9469         of the type name before passing it to mono_reflection_type_from_name().
9470
9471 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9472
9473         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9474         encodings here. Fixes #56965.
9475
9476 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9477
9478         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9479         fix test on strstr result not that I can see anything that
9480         relies on the result.
9481
9482 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9483
9484         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9485         Fixes #57081.
9486
9487         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9488
9489         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9490         function to determine which marshalling to use for strings. Fixes
9491         #56965.
9492
9493         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9494
9495         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9496
9497 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9498
9499         * icall.c: #include mono-config.h
9500
9501 2004-04-15  Jackson Harper  <jackson@ximian.com>
9502
9503         * culture-info-tables.h: Fix date formats for en-US culture.
9504         
9505 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9506
9507         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9508         ThreadPool.SetMinThreads.
9509         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9510         ThreadPool.SetMinThreads.
9511
9512 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9513
9514         * mono-config.c: also load the .config file in the directory
9515         where the assembly was found.
9516
9517 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9518
9519         * assembly.c: load per-assembly config files.
9520         * icall.c: decrapified code to get the config dir and moved to
9521         mono-config.c.
9522         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9523         per-assembly config files. When doing a dll map lookup give precedence
9524         to the per-assembly data.
9525
9526 2004-04-14  Martin Baulig  <martin@ximian.com>
9527
9528         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9529         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9530         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9531
9532         * mono-debugger-debugger.c: While the debugger is locked, remember
9533         whether the symbol tables have changes and send one single
9534         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9535
9536 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9537
9538         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9539
9540         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9541         function.
9542
9543         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9544         account when marshalling string arrays. Fixes #56965.
9545
9546 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9547
9548         * icall.c: Add new icalls mapping for security.
9549         * security.c|h: Add internal calls for WindowsIdentity,
9550         WindowsImpersonationContext and WindowsPrincipal.
9551
9552 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9553
9554         * class.c: Added comment to ensure the System.MonoDummy class
9555         is removed when no longer necessary
9556
9557 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9558
9559         * appdomain.c: Pass arguments to the bootstraping exceptions to
9560         minimize JITed methods at boot
9561
9562         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9563         second string to be null.
9564
9565         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9566         Change the protocol to minimize the JIT methods at startup.  Now
9567         it Returns the internal codepage, if the value of "int_code_page"
9568         is 1 at entry, and we can not compute a suitable code page
9569         number, returns the code page as a string.
9570
9571 2004-04-13  Jackson Harper  <jackson@ximian.com>
9572
9573         * culture-info-tables.h: Fix number of decimal digits for all
9574         english locales.
9575
9576 2004-04-13  Jackson Harper  <jackson@ximian.com>
9577
9578         * icall.c: Clairfy out of sync error message. It is not always
9579         your corlib that is out of sync.
9580
9581 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9582
9583         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9584         properties when only the set accessor is overriden. Fixes #55874.
9585
9586 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9587
9588         * assembly.c (mono_assembly_load_references): Make this thread safe.
9589         Fixes #56327.
9590
9591 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9592
9593         * monosn.c: Add missing initialization calls.
9594
9595 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9596
9597         * locales.c:
9598         ves_icall_System_Globalization_CultureInfo_construct_number_format
9599         Fix g_assert so it compiles on fussier compilers re int/ptr
9600         mismatch
9601
9602 2004-04-08  Dick Porter  <dick@ximian.com>
9603
9604         * socket-io.h:
9605         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9606         53992.  Also rearrange the code so that the internal calls return
9607         an error value and exceptions are thrown from managed code.
9608
9609         * icall.c: Add type info to the socket icalls.
9610
9611 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9612
9613         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9614         owes me a beer.
9615
9616 2004-04-07  Martin Baulig  <martin@ximian.com>
9617
9618         * class.c (mono_class_from_generic_parameter): Don't default
9619         `klass->parent' to `mono_defaults.object_type'.
9620
9621 2004-04-07  Martin Baulig  <martin@ximian.com>
9622
9623         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9624         `param->pklass->reflection_info'.       
9625
9626 2004-04-07  Jackson Harper  <jackson@ximian.com>
9627
9628         * culture-info-tables.h: Fix date separator symbol.
9629         
9630 2004-04-07  Martin Baulig  <martin@ximian.com>
9631
9632         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9633         from System.Type to System.MonoType.
9634
9635 2004-04-07  Martin Baulig  <martin@ximian.com>
9636
9637         * reflection.h
9638         (MonoReflectionGenericParam): Added `has_reference_type' and
9639         `has_value_type' fields.
9640
9641         * reflection.c (mono_image_get_generic_param_info): Encode the
9642         correct flags if we have the `class' or `struct' constraint.
9643
9644 2004-04-07  Martin Baulig  <martin@ximian.com>
9645
9646         * reflection.h
9647         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9648
9649 2004-04-07  Jackson Harper  <jackson@ximian.com>
9650
9651         * appdomain.c: Revert extra patches, just wanted to bump the
9652         version number.
9653         
9654 2004-04-07  Jackson Harper  <jackson@ximian.com>
9655
9656         * Makefile.am: Add culture-info private headers.
9657         * icall.c: Add new icalls for contructing locales.
9658         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9659         * locales.h: Declare new culture info construction methods.
9660         * object.h: Add new fields used to avoid the CultureMap to
9661         MonoCultureInfo.
9662         * culture-info.h: Definition of structs used in the culture info
9663         tables.
9664         * culture-info-tables.h: Autogenerated tables that contain culture
9665         info data. This file was generated with the locale-builder tool.
9666         * appdomain.c: Incement corlib version number.
9667         
9668 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9669
9670         * appdomain.c: (mono_runtime_init) move mono_thread_init
9671         to before mono_object_new calls so critical sections
9672         are initialized before use.
9673
9674 2004-04-07  Martin Baulig  <martin@ximian.com>
9675
9676         * icall.c
9677         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9678         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9679         (ves_icall_MonoGenericParam_initialize): Removed.
9680         (monogenericparam_icalls): Removed.
9681         (generictypeparambuilder_icalls): Added new table for
9682         System.Reflection.Emit.GenericTypeParameterBuilder.
9683
9684         * reflection.c
9685         (mono_reflection_define_generic_parameter): Removed.
9686         (mono_reflection_initialize_generic_parameter): This is now called
9687         from GenericTypeParameterBuilder's .ctor.
9688
9689 2004-04-06  Martin Baulig  <martin@ximian.com>
9690
9691         * class.c (mono_class_init): Don't inflate nested classes in a
9692         generic instance.
9693         (mono_type_get_name_recurse): Include the generic arguments for
9694         generic instances and generic type declarations.
9695         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
9696         (_mono_class_get_instantiation_name): Removed.
9697         (mono_class_create_generic): Always use `gklass->name' as our name.
9698
9699         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
9700
9701         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
9702         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
9703         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
9704         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
9705         closed generic methods here.
9706
9707         * reflection.c
9708         (mono_reflection_generic_inst_get_nested_types): Removed.
9709         (inflate_mono_method): Copy the generic parameters from the
9710         MonoMethodHeader into out MonoGenericMethod.
9711
9712 2004-04-06  Martin Baulig  <martin@ximian.com>
9713
9714         * row-indexes.h
9715         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
9716
9717         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
9718
9719         * reflection.c (build_compressed_metadata): If we have any entries
9720         in the GenericParam, MethodSpec or GenericParamConstraint tables,
9721         set the header version to 1.1.
9722
9723 2004-04-06  Martin Baulig  <martin@ximian.com>
9724
9725         * class.c (mono_class_init): If we're a generic instance,
9726         initialize our nested classes, too.
9727         (_mono_class_get_instantiation_name): Deal with the new `!%d'
9728         suffix. 
9729
9730 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9731
9732         * process.c: quote the argument passed to the shell on windows.
9733
9734 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
9735
9736         * threads.c (mono_alloc_special_static_data): Allow this to be
9737         called during startup.
9738
9739 2004-04-02  Martin Baulig  <martin@ximian.com>
9740
9741         * icall.c
9742         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
9743
9744 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
9745
9746         * icall.c: Fix build.
9747
9748 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
9749
9750         * Makefile.am: Added security.c|h.
9751         * icall.c: Added icall for get_UserName;
9752         * security.c: New file for security related icalls. Added function
9753         get_UserName for System.Environment (fix #56144).
9754         * security.h: New. Header file for security.c
9755
9756 2004-04-02  Dick Porter  <dick@ximian.com>
9757
9758         * icall.c: Deleted the icalls that were obsoleted some time ago
9759         by the ICU string code, and which were mixed into the icall
9760         rearranging.  Fixes bug 55969.
9761
9762         * string-icalls.h: 
9763         * string-icalls.c: Deleted the code that those icalls reference.
9764
9765 2004-04-01  Martin Baulig  <martin@ximian.com>
9766
9767         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
9768
9769         * class.c (mono_class_from_generic_parameter): Don't set 
9770         TYPE_ATTRIBUTE_INTERFACE.
9771         (my_mono_class_from_generic_parameter): Likewise.
9772
9773 2004-04-01  Martin Baulig  <martin@ximian.com>
9774
9775         * loader.c (find_method): Added an optional `MonoClass *ic'
9776         argument to search in a specific interface.
9777         (mono_get_method_constrained): New public function.
9778
9779 2004-04-01  Martin Baulig  <martin@ximian.com>
9780
9781         * reflection.c (mono_image_get_generic_field_token): Use the
9782         `handleref' cache here.
9783
9784 2004-04-01  Martin Baulig  <martin@ximian.com>
9785
9786         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
9787
9788         * reflection.c (create_generic_typespec): Use the `typespec' hash
9789         here, not the `typeref' one.    
9790
9791 2004-04-01  Martin Baulig  <martin@ximian.com>
9792
9793         * class.c (mono_class_inflate_generic_type): Moved the
9794         functionality into a new static inflate_generic_type() which
9795         returns NULL if it didn't do anything.  Only increment the
9796         `mono_stats.inflated_type_count' if we actually inflated
9797         something.
9798         (mono_class_get_full): Check the classes type to see whether we
9799         need to inflate it; also inflate MONO_TYPE_(M)VAR.
9800
9801 2004-04-01  Jackson Harper  <jackson@ximian.com>
9802
9803         * reflection.c: Set culture for assembly references.
9804         
9805 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
9806
9807         * reflection.[ch], icall.[ch], Fix support for pinning variables.
9808
9809 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9810
9811         * assembly.c:
9812         (do_mono_assembly_open): the critical section also covers
9813         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
9814
9815 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9816
9817         * threads.c:
9818         (mono_manage_threads): abort the background threads when finishing.
9819         Fixes bug #47232.
9820
9821 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9822
9823         * gc.c: only close the done_event handle if there was no timeout.
9824         C-ified comments.
9825
9826 2004-03-30  Martin Baulig  <martin@ximian.com>
9827
9828         * icall.c (icall_entries): It's called "System.Activator", not
9829         "System.Activation".    
9830
9831 2004-03-30  Martin Baulig  <martin@ximian.com>
9832
9833         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
9834         (mono_class_create_from_typespec): Likewise.
9835
9836 2004-03-30  Martin Baulig  <martin@ximian.com>
9837
9838         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
9839         `has_ctor_constraint' and `initialized'.
9840
9841 2004-03-30  Martin Baulig  <martin@ximian.com>
9842
9843         * reflection.c (encode_new_constraint): New static function to add
9844         the constructor constraint attribute to a type parameter.
9845         (encode_constraints): Call encode_new_constraint() if necessary.
9846
9847         * reflection.h
9848         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
9849
9850         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
9851         
9852 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
9853
9854         * reflection.c, icall.c: add support for pinning variables. 
9855
9856 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
9857
9858         * marshal.c (mono_marshal_get_managed_wrapper):
9859         init bool local with zero rather than null.
9860
9861 2004-03-29  Martin Baulig  <martin@ximian.com>
9862
9863         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
9864         the "official" behavior here.
9865         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
9866
9867 2004-03-29  Martin Baulig  <martin@ximian.com>
9868
9869         * icall.c: Reflect latest API changes.
9870
9871 2004-03-29  Martin Baulig  <martin@ximian.com>
9872
9873         * loader.c (mono_get_method_from_token): Also call
9874         mono_metadata_load_generic_params () for abstract and interface
9875         methods; replace the type arguments in the method signature with
9876         the ones which are loaded from the metadata.
9877
9878 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
9879
9880         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
9881         of the lock is not the current thread. MS.NET don't do it, in spite of
9882         what the documentation says. See bug #56157.
9883
9884 2004-03-28  Martin Baulig  <martin@ximian.com>
9885
9886         * class.c (mono_class_init): Don't call init_properties() and
9887         init_events() for generic instances; set `prop->parent' when
9888         inflating properties.
9889
9890         * reflection.c (mono_generic_inst_get_object): Call
9891         `mono_class_init (ginst->klass)'.
9892         (mono_type_get_object): Only create a MonoGenericInst if your
9893         generic type is a TypeBuilder.
9894         (do_mono_reflection_bind_generic_parameters): Only set
9895         `ginst->is_dynamic' if our generic type is a TypeBuilder.
9896
9897 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
9898
9899         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
9900         Fixes #56091.
9901
9902 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9903
9904         * icall.c: added Kill_internal icall.
9905         * process.[ch]: added Kill_internal icall.
9906
9907 2004-03-25  Martin Baulig  <martin@ximian.com>
9908
9909         * class.h (MonoStats): Added `generic_instance_count',
9910         `inflated_method_count', `inflated_type_count' and
9911         `generics_metadata_size'.       
9912
9913 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9914
9915         * reflection.c: no warnings now.
9916
9917 2004-03-25  Martin Baulig  <martin@ximian.com>
9918
9919         * class.c (mono_class_get_full): New public function; does a
9920         mono_class_get(), but also takes a `MonoGenericContext *'.
9921
9922         * loader.c (mono_field_from_memberref): Renamed to
9923         `field_from_memberref', made static and added `MonoGenericContext *'
9924         argument.
9925         (mono_field_from_token): Added `MonoGenericInst *' argument.
9926         (method_from_memberef): Likewise.
9927         (mono_get_method_from_token): Likewise.
9928         (mono_get_method_full): New public function; does a
9929         mono_get_method(), but also takes a `MonoGenericContext *'.
9930
9931         * verify.c (mono_method_verify): Get the method's generic context
9932         and pass it to mono_field_from_token(), mono_get_method_full() and
9933         mono_class_get_full().
9934
9935 2004-03-25  Martin Baulig  <martin@ximian.com>
9936
9937         * class.c (mono_class_inflate_generic_type): Take a
9938         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
9939         `MonoGenericMethod *'.
9940
9941 2004-03-25  Martin Baulig  <martin@ximian.com>
9942
9943         * loader.h (MonoMethodInflated): Store the MonoGenericContext
9944         instead of the MonoGenericMethod here.
9945
9946 2004-03-25  Martin Baulig  <martin@ximian.com>
9947
9948         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
9949         each time we create a new MonoGenericInst, we also create a new
9950         context which points back to us.
9951
9952         * class.c (inflate_method): Use `ginst->context' instead of
9953         creating a new context.
9954
9955         * loader.c (method_from_memberref): Use
9956         `klass->generic_inst->context' instead of creating a new context.
9957
9958 2004-03-25  Martin Baulig  <martin@ximian.com>
9959
9960         * class.h (MonoGenericContext): New struct.
9961         (MonoGenericMethod): Removed `generic_inst'.
9962
9963         * class.c (mono_class_inflate_generic_method): Take a
9964         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
9965
9966 2004-03-25  Martin Baulig  <martin@ximian.com>
9967
9968         * loader.h (MonoMethodInflated): New typedef.
9969
9970         * metadata.h (MonoMethodSignature): Removed `gen_method', make
9971         `generic_param_count' consume just 30 bits, added `is_inflated'
9972         and `has_type_parameters' flags (one bit each).
9973
9974         * class.c (mono_class_inflate_generic_method): Create a
9975         MonoMethodInflated instead of a MonoMethodNormal and set
9976         `is_inflated' in the method signature.
9977
9978         * class.h (MonoGenericMethod): Removed `generic_method'.
9979
9980 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
9981
9982         * image.c: Make sure the name of a MonoImage is always an absolute path.
9983           This fixes bug #54415.
9984
9985 2004-03-24  Martin Baulig  <martin@ximian.com>
9986
9987         * class.c (mono_class_setup_vtable): If we're a generic instance,
9988         use our generic type's vtable size.
9989
9990 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
9991
9992         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
9993         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
9994         problems.
9995
9996 2004-03-23  Martin Baulig  <martin@ximian.com>
9997
9998         * class.h (MonoDynamicGenericInst): Added `int count_events' and
9999         `MonoEvent *events'.
10000
10001         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10002         (typebuilder_icalls): Added "get_event_info"; calls
10003         mono_reflection_event_builder_get_event_info(). 
10004
10005         * reflection.c (mono_reflection_generic_inst_initialize): Added
10006         `MonoArray *events'.
10007         (mono_reflection_event_builder_get_event_info): New function.
10008
10009 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10010
10011         * object.h: add mono_type_initialization_init
10012
10013         * object.c (mono_runtime_class_init): 
10014         implement class constructor synchronization rules
10015         to cope with threading issues.  
10016         add mono_type_initialization_init
10017
10018         * appdomain.c (mono_runtime_init): call 
10019         mono_type_initialization_init
10020
10021         * class.h: removing initializing field from MonoVTable
10022
10023 2004-03-23  Martin Baulig  <martin@ximian.com>
10024
10025         * class.c (my_mono_class_from_generic_parameter): Use
10026         `param->name' if it's not NULL. 
10027
10028 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10029
10030         * class.c: do not insert non-virtual methods in the vtable.
10031         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10032         that means the method is non-virtual. This never would have
10033         happened before.
10034
10035 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10036
10037         * profiler.c: Added lock for accessing coverage_hash.
10038
10039 2004-03-22  Martin Baulig  <martin@ximian.com>
10040
10041         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10042         `method->method->signature->generic_param_count != 0' to make it
10043         work for interface methods.
10044
10045 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10046
10047         * process.c: quote the string passed to the shell using g_shell_quote.
10048
10049 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10050
10051         * threads.c:
10052         (mono_threads_manage): don't remove the finalizer thread and self
10053         from the threads hash table so that mono_thread_manage can be called
10054         more than once.
10055
10056 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10057
10058         * process.c: quote the arguments when UseShellExecute is true. Fixes
10059         bug #55790.
10060
10061 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10062
10063         * threads.c: set mono_thread_detach as a cleanup routine for every
10064         thread. This way it's always executed upon thread termination, either
10065         aborted or finished normally. No more xsp hangs!
10066
10067 2004-03-17  Martin Baulig  <martin@ximian.com>
10068
10069         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10070         `int count_nested' and a `MonoType **nested'.
10071
10072         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10073         most of the functionality into a new static
10074         do_mono_reflection_bind_generic_parameters() and don't take a
10075         `MonoType *nested_in' argument any more.  Don't compute nested
10076         types here.
10077         (mono_reflection_generic_inst_get_nested_types): New public method
10078         to get nested types.
10079
10080         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10081         we're a nested class.
10082
10083         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10084         mono_reflection_generic_inst_get_nested_types() to compute the
10085         nested types.
10086
10087 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10088
10089         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10090         descriptive error message under windows.
10091         
10092 2004-03-17  Martin Baulig  <martin@ximian.com>
10093
10094         * class.c (dup_type): Added `const MonoType *original' argument;
10095         copy the attrs from the original type.
10096
10097 2004-03-17  Martin Baulig  <martin@ximian.com>
10098
10099         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10100         `m->generic_inst_cache' here.
10101
10102 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10103
10104         * exception.h exception.c: Add stack_overflow_exception.
10105
10106 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10107
10108         * threadpool.c:
10109         (overlapped_callback): call SetEvent *after* invoking the callback.
10110         No need to call CloseHandle.
10111
10112 2004-03-16  Martin Baulig  <martin@ximian.com>
10113
10114         * reflection.c (mono_image_get_fieldref_token): Take a
10115         `MonoReflectionField *' instead of a `MonoClassField *' and a
10116         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10117
10118 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10119
10120         * appdomain.c: don't add the culture to the filename we're looking for
10121         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10122
10123 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10124
10125         * locales.c: don't ignore symbols when doing case insensitive compares.
10126         Thanks Dick! Fixes bug #54046.
10127
10128         * threads.c: surround 'threads' usage with enter/leave in
10129         mono_thread_manage.
10130
10131 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10132
10133         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10134         implicitly marshalled as [Out]. Fixes #55450.
10135
10136         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10137         an exception.
10138
10139 2004-03-16  Martin Baulig  <martin@ximian.com>
10140
10141         * class.c (mono_class_from_generic_parameter): Use the actual
10142         parameter name. 
10143
10144 2004-03-16  Martin Baulig  <martin@ximian.com>
10145
10146         * reflection.c (type_get_signature_size): New static function.
10147         Compues the size of the type in a method signature.
10148         (method_get_signature_size): New static function; calls
10149         type_get_signature_size() to compute the actual size of the
10150         method's signature.
10151         (method_encode_signature): Use method_get_signature_size() to get
10152         the signature's size rather than using `nparams * 10'.
10153
10154 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10155
10156         * file-io.h: define here WapiOverlapped on windows. I don't want the
10157         regular OVERLAPPED one.
10158
10159         * file-io.c:
10160         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10161         Disabling AIO on windows.
10162
10163 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10164
10165         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10166         bug #55385.
10167
10168 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10169
10170         * appdomain.c: upgraded corlib version.
10171
10172         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10173         and BeginWrite. Allow opening files for asynchrnous operations.
10174
10175         * file-io.h: new struct that maps FileStreamAsyncResult.
10176         * icall.c: added new icalls.
10177         * process.[ch]: support setting child process environment variables
10178         and use the SHELL or COMSPEC when UseShellExecute is true.
10179
10180         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10181         callback for async. IO is here and also BindHandle.
10182
10183         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10184         from here.
10185
10186 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10187
10188         * reflection.c (create_custom_attr): Allow len == 0.
10189
10190         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10191         computation on big-endian machines.
10192
10193 2004-03-13  Martin Baulig  <martin@ximian.com>
10194
10195         * class.h (MonoGenericInst): Added `int count_ifaces'.
10196
10197         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10198         `ginst->count_ifaces' instead `klass->interface_count' since we
10199         may get called before the vtable is created.
10200
10201         * loader.c (mono_method_get_param_names): If we're a generic
10202         instance, return and don't initialize the class.
10203
10204         * reflection.c (mono_reflection_setup_generic_class): Don't call
10205         ensure_runtime_vtable().
10206         (mono_reflection_bind_generic_parameters): Set
10207         `ginst->count_ifaces'.
10208
10209 2004-03-11  Jackson Harper <jackson@ximian.com>
10210
10211         * icall.c:
10212         * unicode.c:
10213         * unicode.h: Remove unused System.Char icalls.
10214         
10215 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10216
10217         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10218         code when we P/Invoke the first library in Windows.Forms, instead
10219         of when we first open the assembly.
10220
10221         * assembly.c: Drop the lookup from here.
10222
10223 2004-03-10  Martin Baulig  <martin@ximian.com>
10224
10225         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10226         class for properties, fields and events.  Finally fixes #54945.
10227
10228 2004-03-10  Martin Baulig  <martin@ximian.com>
10229
10230         * metadata.c (mono_metadata_class_equal): New static function;
10231         checks whether two generic instances or two generic parameters are
10232         equal.
10233         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10234         compare classes.        
10235
10236 2004-03-10  Martin Baulig  <martin@ximian.com>
10237
10238         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10239
10240         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10241         argument and write it into the `reflection_info' field.
10242
10243         * icall.c
10244         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10245         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10246
10247 2004-03-09  Jackson Harper  <jackson@ximian.com>
10248
10249         * char-conversions.h: use 8 bits for numeric data its all we need
10250         * icall.c: numeric data is only 8 bits now.
10251
10252 2004-03-09  Martin Baulig  <martin@ximian.com>
10253
10254         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10255
10256         * class.c (init_properties, init_events): Initialize the new
10257         `parent' field.
10258
10259         * reflection.c (typebuilder_setup_properties): Likewise.
10260         (typebuilder_setup_events): Likewise.
10261
10262         * reflection.h (MonoEventInfo): Replaced `parent with
10263         `declaring_type' and `reflected_type'.
10264
10265         * icall.c (ves_icall_get_property_info): Distinguish between
10266         declaring and reflected type.
10267         (ves_icall_get_event_info): Likewise.
10268
10269 2004-03-09  Martin Baulig  <martin@ximian.com>
10270
10271         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10272         (ves_icall_Type_GetField): Correctly set field->klass.
10273
10274 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10275
10276         * loader.h: Fix warning.
10277
10278 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10279
10280         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10281         library routine if present.  Notice that it will still continue
10282         executing even if its missing, for those working on the Gtk#
10283         edition of Windows.Forms.
10284
10285         * assembly.c (do_mono_assembly_open): If loading the
10286         System.Windows.Forms call mono_loader_wini_init.
10287
10288 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10289
10290         * class.h: Added MonoRemoteClass struct.
10291         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10292         function for MonoStrings.
10293         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10294         Added internal call for getting the proxy type.
10295         * marshal.c: Get the type of transparent proxies from its remote_class.
10296         Added methods that generate the IL for type checks and casts:
10297         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10298         mono_marshal_get_proxy_cancast.
10299         * marshal.h: Declaration of the previous new methods.
10300         * object.c: Added new moethods for creating and updating MonoRemoteClass
10301         instances: mono_remote_class, mono_upgrade_remote_class, 
10302         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10303         * verify.c: FIx transparent_proxy_fields layout.
10304         * appdomain.c: Bump corlib version.
10305
10306 2004-03-04  Jackson Harper  <jackson@ximian.com>
10307
10308         * icall.c: Add icall to access char conversion tables.
10309         * char-conversions.h: Character conversion tables.
10310         * Makefile.am: Add char-conversions.h private header file.
10311         
10312 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10313
10314         * appdomain.c (unload_thread_main): Increase unloading timeout to
10315         10 sec as a temporary workaround for Nant problems.
10316
10317 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10318
10319         * gc.c: Add checks for GC_enable and GC_disable.
10320
10321         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10322         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10323         (bug #54988).
10324         
10325 2004-02-27  Martin Baulig  <martin@ximian.com>
10326
10327         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10328         `MonoReflectionType *' instead of a `MonoType *'.
10329
10330 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10331
10332         * gc.c (run_finalize): Avoid finalizing the object representing the
10333         finalizer thread.
10334         (finalizer_thread): Fix warning.
10335
10336 2004-02-25  Martin Baulig  <martin@ximian.com>
10337
10338         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10339         argument for nested types.
10340         (mono_class_create_generic): Added support for nested generictypes.
10341
10342         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10343         `GList *nested'.
10344
10345         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10346
10347         * reflection.c (method_encode_signature): Increase the minimum
10348         value of `size' from 10 to 11.
10349         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10350         and `MonoType **types' arguments instead of the `MonoArray
10351         *types'; added `MonoType *nested_in'.  Recursively instantiate
10352         nested classes. 
10353
10354 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10355
10356         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10357         stack_overflow_ex members which are used by exception handling.
10358
10359         * appdomain.c (mono_runtime_init): Initialize the new members.
10360
10361         * gc.c (mono_gc_enable): New helper function.
10362         * gc.c (mono_gc_disable): New helper function.
10363
10364 2004-02-23  Martin Baulig  <martin@ximian.com>
10365
10366         * icall.c: I must have been really stupid - make it actually work
10367         this time ;-)
10368
10369 2004-02-23  Martin Baulig  <martin@ximian.com>
10370
10371         * loader.c (method_from_memberref): Only inflate the method if
10372         it's in another klass.
10373
10374 2004-02-23  Martin Baulig  <martin@ximian.com>
10375
10376         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10377         (mono_class_init): If we're a generic instance and an interface,
10378         compute `class->interface_id'; also create `class->interfaces'
10379         here and inflate them.
10380
10381         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10382         `ginst->is_open'.
10383         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10384
10385         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10386
10387 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10388
10389         * reflection.c (method_encode_code): Improved the error message
10390         generated by the exception.
10391
10392 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10393
10394         * icall.c: Martin did not do what he said in the ChangeLog for
10395         2004-02-18, but put back the changes for properties and events.
10396         Commenting those changes out again and adding comment to bug #54518.
10397         
10398         * process.c: removed warning.
10399
10400 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10401
10402         * marshal.c (emit_struct_conv): Print an error message instead of
10403         asserting when a type does not have the StructLayout attribute.
10404
10405 2004-02-20  Martin Baulig  <martin@ximian.com>
10406
10407         * reflection.c (mono_type_get_object): Also use the cache for
10408         generic instances.
10409         (mono_reflection_bind_generic_parameters): Always compute
10410         `ginst->ifaces'.        
10411
10412 2004-02-20  Martin Baulig  <martin@ximian.com>
10413
10414         * class.h (MonoGenericMethod): Removed `klass'.
10415
10416         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10417         *klass' argument.
10418
10419 2004-02-20  Martin Baulig  <martin@ximian.com>
10420
10421         * reflection.c (method_encode_methodspec): Actually use the
10422         uninflated signature for the memberref.
10423
10424 2004-02-20  Martin Baulig  <martin@ximian.com>
10425
10426         * class.h (MonoGenericMethod): Removed `declaring'.
10427
10428         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10429         is NULL, compute it here.
10430
10431 2004-02-20  Martin Baulig  <martin@ximian.com>
10432
10433         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10434
10435         * metadata.c (mono_metadata_generic_inst_hash): New method.
10436         (mono_metadata_generic_inst_equal): New method.
10437
10438         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10439         `klass->image->generic_inst_cache' cache to avoid creating
10440         duplicate MonoGenericInst's.
10441
10442         * class.c (mono_class_inflate_generic_type): Use the cache.
10443
10444 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10445
10446         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10447
10448 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10449
10450         * icall.c: added Socket.WSAIoctl icall.
10451
10452         * socket-io.[ch]: implemented
10453         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10454
10455 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10456
10457         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10458
10459 2004-02-18  Urs C Muff  <umuff@quark.com>
10460
10461         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10462         this work on PPC and other big-endian architectures.
10463
10464         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10465         fields with an underscore to make sure they're only accessed by
10466         the read32() macro.
10467
10468 2004-02-18  Martin Baulig  <martin@ximian.com>
10469
10470         * icall.c: Put the klass->refclass changes back for methods and
10471         fields, but not for properties and events.  We're currently not
10472         distinguishing between DeclaringType and ReflectedType for
10473         properties and events, that's what caused the regressions.
10474
10475 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10476
10477         * object.c:
10478         (mono_async_result_new): the handle can be NULL.
10479
10480         * threadpool.c: Use an event instead of a semaphore, don't initialize
10481         it until needed. This saves quite a few semaphores from being created
10482         when using the threadpool.
10483
10484 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10485
10486         * object.c (mono_string_is_interned_lookup): Fix interning of long
10487         strings. Fixes #54473.
10488
10489         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10490
10491         * icall.c: Revert the klass->refclass changes since they introduce
10492         regressions (bug #54518).
10493
10494 2004-02-18  Martin Baulig  <martin@ximian.com>
10495
10496         * class.c (mono_class_init): If we're a generic instance and don't
10497         come from a TypeBuilder, inflate our members here.
10498         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10499         (mono_class_create_generic): New public method.
10500         (mono_class_initialize_generic): Removed.
10501         (get_instantiation_name): Renamed to
10502         _mono_class_get_instantiation_name() and made it public.
10503
10504 2004-02-18  Martin Baulig  <martin@ximian.com>
10505
10506         * class.c (mono_class_inflate_generic_type): Clear the new
10507         instance's `nginst->klass' when inflating a generic instance.
10508         (mono_class_is_subclass_of): Added (basic) support for generic
10509         instances.
10510
10511 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10512
10513         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10514         MonoMempool to hold compiled native code.
10515
10516 2004-02-17  Martin Baulig  <martin@ximian.com>
10517
10518         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10519         `properties'.
10520
10521         * reflection.c (mono_reflection_generic_inst_initialize): Added
10522         `MonoArray *properties' argument.
10523
10524         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10525
10526 2004-02-17  Martin Baulig  <martin@ximian.com>
10527
10528         * icall.c (ves_icall_Type_GetFields): Renamed to
10529         ves_icall_Type_GetFields_internal() and added a
10530         `MonoReflectionType *rtype' argument; pass it to
10531         mono_field_get_object() to set the field's "reflected" type.
10532         (ves_icall_Type_GetConstructors): Likewise.
10533         (ves_icall_Type_GetEvents): Likewise.
10534         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10535         argument; pass it to mono_method_get_object() to set the method's
10536         "reflected" type.       
10537
10538 2004-02-17  Martin Baulig  <martin@ximian.com>
10539
10540         * class.h (MonoDynamicGenericInst): New type.
10541         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10542
10543         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10544         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10545         (ves_icall_MonoGenericInst_GetFields): New interncall.
10546
10547         * class.c (mono_class_from_generic): Don't call
10548         mono_class_initialize_generic() if this is a dynamic instance;
10549         ie. it's being created from a TypeBuilder.
10550         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10551         `class->byval_arg.type'.
10552
10553         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10554         to `inflate_method' and made static.
10555         (mono_reflection_inflate_field): Removed.
10556         (mono_reflection_generic_inst_initialize): New public method.
10557
10558         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10559         `ctors' and `fields'; added `initialized'.
10560
10561 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10562
10563         * debug-helpers.c (mono_method_full_name): Fix output for empty
10564         namespaces.
10565
10566 2004-02-12  Martin Baulig  <martin@ximian.com>
10567
10568         * class.h (MonoClassField): Added `MonoType *generic_type'.
10569
10570         * reflection.c (mono_image_get_fieldref_token): Added support for
10571         instantiated generic types.
10572         (field_encode_inflated_field): Removed.
10573         (mono_image_get_inflated_field_token): Removed.
10574         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10575
10576         * reflection.h (MonoReflectionInflatedField): Removed.
10577
10578 2004-02-12  Martin Baulig  <martin@ximian.com>
10579
10580         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10581         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10582
10583         * reflection.c (mono_image_get_methodspec_token): Take a
10584         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10585         (mono_image_create_token): Check whether we have a
10586         `method->signature->gen_method' and call
10587         mono_image_get_methodspec_token() if appropriate.
10588         (inflated_method_get_object): Removed.
10589         (mono_reflection_bind_generic_method_parameters): Return a
10590         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10591         (mono_reflection_inflate_method_or_ctor): Likewise.
10592
10593         * reflection.h (MonoReflectionInflatedMethod): Removed.
10594
10595 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10596
10597         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10598         for custom valuetype marshalling.
10599
10600         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10601
10602 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10603
10604         * icall.c: fixed WSAGetLastError_internal name.
10605
10606 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10607
10608         * threads.c (mono_thread_attach): Allow this to be called multiple
10609         times for a thread.
10610         
10611         * threads.c (build_wait_tids): Do not wait for ourselves.
10612
10613         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10614         appdomain list is empty.
10615
10616         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10617         memory returned by mono_string_builder_to_utf16, since it points into
10618         managed memory. Thanks to Bernie Solomon for noticing this.
10619
10620         * icall.c: Add AppDomainSetup icalls.
10621
10622         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10623
10624         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10625         types.
10626
10627         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10628         custom attributes to the method_aux struct. Also fix array indexes etc.
10629
10630         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10631         
10632 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10633
10634         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10635         (both static and runtime) and reduce startup time.
10636
10637 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10640         AsAny marshalling conversion instead of crashing.
10641
10642         * marshal.c: Fix warnings.
10643
10644 2004-02-09  Martin Baulig  <martin@ximian.com>
10645
10646         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10647
10648         * reflection.h (MonoReflectionInflatedMethod): Removed the
10649         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10650
10651         * reflection.c (method_encode_methodspec): Removed the `method'
10652         argument; we get it from `gmethod->declaring'.
10653         (inflated_method_get_object): Removed the `declaring' argument.
10654
10655 2004-02-09  Martin Baulig  <martin@ximian.com>
10656
10657         * class.h (MonoGenericMethod): New type.
10658         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10659         `generic_method'.
10660
10661         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10662         a `MonoGenericMethod *gen_method' one.
10663
10664         * class.c (mono_class_inflate_generic_type): Take an additional
10665         `MonoGenericMethod * argument.  This is only non-NULL if we're
10666         inflating types for a generic method.   
10667         (mono_class_inflate_generic_signature): Renamed to
10668         inflate_generic_signature() and made static; take a
10669         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10670         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10671         instead of a `MonoGenericInst *' one.
10672         (mono_class_inflate_generic_method): Likewise.
10673
10674         * reflection.c (encode_generic_method_sig): Take a
10675         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10676         (method_encode_methodspec): Likewise.
10677         (inflated_method_get_object): Likewise. 
10678
10679         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
10680         field with a `MonoGenericMethod *gmethod' one.  
10681
10682 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
10683
10684         * class.h (mono_class_has_parent): add parens to expansion
10685         so you can ! this.
10686
10687 2004-02-08  Martin Baulig  <martin@ximian.com>
10688
10689         * image.h (MonoImage): Removed `generics_cache'.
10690
10691         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
10692         instead of a `MonoType *' argument; removed the `inflate_methods'
10693         argument.  Don't inflate methods here.
10694
10695         * loader.c (find_method): If it's a generic instance, call
10696         mono_class_init() on the `sclass->generic_inst->generic_type'.
10697
10698         * metadata.c (mono_type_size): Make this work on uninitialized
10699         generic instances; call it on the `ginst->generic_type's class.
10700
10701         * reflection.c (mono_reflection_bind_generic_parameters): Call
10702         mono_class_from_generic() to create the `ginst->klass'.
10703
10704 2004-02-08  Martin Baulig  <martin@ximian.com>
10705
10706         * class.h (MonoClass): Changed type of `generic_inst' from
10707         `MonoType *' to `MonoGenericInst *'.
10708
10709 2004-02-08  Martin Baulig  <martin@ximian.com>
10710
10711         * icall.c (ves_icall_Type_BindGenericParameters): Just call
10712         mono_type_get_object(), this is now creating a `MonoGenericInst'
10713         for MONO_TYPE_GENERICINST.
10714         (ves_icall_MonoGenericInst_GetParentType): Likewise.
10715         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
10716
10717         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10718         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
10719         (inflated_method_get_object): Added `MonoClass *refclass' argument.
10720         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
10721         and reflected type.
10722
10723         * reflection.h (MonoReflectionInflatedMethod): Removed
10724         `declaring_type' and `reflected_type'.
10725
10726 2004-02-08  Martin Baulig  <martin@ximian.com>
10727
10728         * class.h (MonoGenericInst): Added `MonoType *parent' and
10729         `MonoType **ifaces'.
10730
10731         * reflection.h (MonoReflectionGenericInst): Removed `klass',
10732         `parent' and `interfaces'.
10733
10734         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10735         `MonoType *' argument and return a `MonoType *'.
10736
10737         * icall.c
10738         (ves_icall_MonoGenericInst_GetParentType): New interncall.
10739         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
10740
10741 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10742
10743         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
10744         valuetype marshalling.
10745
10746 2004-02-06  Martin Baulig  <martin@ximian.com>
10747
10748         * class.c
10749         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
10750         (my_mono_class_from_generic_parameter): Likewise.
10751
10752 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10753
10754         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
10755         contents of the symbol files lazily.
10756
10757         * object.h (MonoThread): Add 'name' and 'name_len' fields.
10758
10759         * threads.h threads.c icall.c: New icalls for getting and setting the
10760         threads name.
10761
10762 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
10763
10764         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
10765         Raise an exception when the domain is not found.
10766
10767 2004-02-03  Martin Baulig  <martin@ximian.com>
10768
10769         * reflection.c (mono_image_get_methodspec_token): Use the
10770         uninflated signature; fixes gen-33.
10771
10772 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
10773
10774         * gc.c threads.c: Make the finalizer thread a normal managed thread so
10775         the finalizer code can use thread functionality.
10776
10777         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
10778         the finalizer thread.
10779
10780         * threads.c: Make some functions more robust.
10781
10782         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
10783
10784         * metadata.h: Add new marshalling conventions.
10785
10786         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
10787         stringbuilder marshalling. Fixes #53700.
10788
10789         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
10790
10791         * reflection.c (mono_image_get_type_info): Save declarative security
10792         info.
10793
10794         * reflection.c (mono_image_get_field_info): Handle uninitialized 
10795         unmanaged fields as well.
10796
10797         * appdomain.c: Bump corlib version.
10798
10799 2004-02-01  Martin Baulig  <martin@ximian.com>
10800
10801         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
10802         method type arguments.  
10803
10804 2004-01-30  Duncan Mak  <duncan@ximian.com>
10805
10806         * marshal.h: Add prototype for
10807         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
10808         and
10809         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
10810         fix the build.
10811
10812 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
10813
10814         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
10815         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
10816
10817 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10818
10819         * marshal.c (mono_marshal_get_native_wrapper): Add support for
10820         custom marshalling of valuetypes.
10821
10822         * marshal.c: Fix some warnings.
10823
10824 2004-01-29  Martin Baulig  <martin@ximian.com>
10825
10826         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
10827         for generic method parameters.
10828
10829         * reflection.c (method_encode_methodspec): Write the uninflated
10830         signature into the methodspec table.
10831         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
10832         is always the uninflated method.
10833         (reflection_methodbuilder_to_mono_method): Copy the generic
10834         parameters from the MethodBuilder into `header->gen_params'.
10835
10836 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10837
10838         * class.c (mono_class_from_generic_parameter): Fix warning.
10839
10840 2004-01-27  Martin Baulig  <martin@ximian.com>
10841
10842         * class.c (mono_class_from_generic_parameter): Don't create
10843         `klass->methods' here.  
10844
10845 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
10846
10847         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
10848         extension since it does not work with libraries named lib<FOO>.dll.so.
10849
10850 2004-01-25  Martin Baulig  <martin@ximian.com>
10851
10852         * class.c (mono_class_inflate_generic_type): Added support for
10853         MONO_TYPE_GENERICINST.
10854
10855         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
10856         inflate methods on open constructed types.      
10857
10858 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10859
10860         * object.c: fire ProcessExit event in the root AppDomain after running
10861         Main. Fixes bug #53299.
10862
10863 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
10864
10865         * socket-io.c: include the new socket-wrappers.h header.
10866         Use the wrappers instead of the unix socket functions to make the code
10867         more clear.
10868
10869 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
10870
10871         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
10872
10873         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
10874         Fixes #22532.
10875
10876 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
10877
10878         * reflection.c (mono_image_create_pefile): Handle the case when the
10879         entry point is not a MethodBuilder.
10880
10881         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
10882         field to ReflectionMethod since it is not allways a builder.
10883
10884         * reflection.c (type_get_fully_qualified_name): New helper function to
10885         return the fully qualified name of a type.
10886
10887         * reflection.c (encode_marshal_blob): Always emit the fully qualified
10888         type name for custom marshallers.
10889
10890         * reflection.c (mono_marshal_spec_from_builder): Ditto.
10891
10892         * class.c (mono_class_setup_vtable): If a parent class already 
10893         implements an interface, use the implementing methods from that class.
10894         Fixes #53148.
10895
10896 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10897
10898         * threadpool.c: just return instead of ExitThread to allow for thread
10899         clean up earlier.
10900
10901 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
10902
10903         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
10904         when closing resource modules.
10905
10906         * reflection.c (mono_image_create_pefile): Handle the case when the
10907         entry point is not a MethodBuilder.
10908
10909         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
10910         field to ReflectionMethod since it is not allways a builder.
10911
10912 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
10913
10914         * marshal.c (mono_marshal_get_managed_wrapper): 
10915         mono_marshal_alloc takes native int so CONV_I
10916         the arg for 64bits.
10917
10918 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
10919
10920         * reflection.c (fixup_cattrs): New function to fixup the methoddef
10921         tokens in the cattr table. Fixes #53108.
10922
10923 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10924
10925         * loader.c: don't trim ".dll" before looking up in the config file.
10926         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
10927
10928 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
10929
10930         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
10931         Return the module which contains the resource as well.
10932         (ves_icall_System_Reflection_Module_Close): New icall.
10933
10934         * appdomain.c: Bump corlib version number.
10935
10936         * image.c (mono_image_addref): New public function.
10937
10938         * assembly.c: Call mono_image_addref.
10939
10940         * reflection.c (mono_module_get_object): Increase reference count of 
10941         the image.
10942
10943         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
10944         Fixes #22532.
10945
10946         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
10947         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
10948         proper exceptions on DllImport problems.
10949
10950 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
10951
10952         * class.c, metadata.c: eliminate CSIZE macro.
10953
10954 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
10955
10956         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
10957         * object.h: Added async_callback field in MonoAsyncResult.
10958         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
10959         * verify.c: Added async_callback in MonoAsyncResult layout.
10960
10961 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
10962
10963         * reflection.c (mono_reflection_get_custom_attrs): Add support
10964         for Modules.
10965
10966 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
10967
10968         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
10969         marshalling.
10970         (mono_marshal_method_from_wrapper): Add null pointer check.
10971
10972 2004-01-16  Martin Baulig  <martin@ximian.com>
10973
10974         * debug-mono-symfile.h: Set version number to 36 and reflect
10975         latest symbol writer changes.
10976
10977 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
10978
10979         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
10980         multi-dimensional arrays.
10981         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
10982         (mono_class_from_mono_type): Use bounded_array_class_get.
10983         
10984         * class.c (mono_bounded_array_class_get): New function which takes
10985         a 'bounded' bool argument to distinguish vectors from one dimensional
10986         arrays.
10987
10988         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
10989         bounded_array_class_get if the array has bounds.
10990
10991         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
10992         Search modules loaded using AssemblyBuilder:AddModule as well.
10993
10994 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10995
10996         * appdomain.c: increased corlib version.
10997         * filewatcher.c: removed g_print.
10998         * icall.c:
10999         (get_property_info): only allocate what is actually requested.
11000         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11001
11002 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11003
11004         * Makefile.am: added filewatcher.[ch]
11005         * filewatcher.[ch]: FileSystemWatcher runtime support.
11006         * icall.c: added new FSW icalls.
11007
11008 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11009
11010         * string-icalls.c: fix stringbuilder regression as suggested by
11011         Iain McCoy <iain@mccoy.id.au>.
11012
11013 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11014
11015         * process.c (process_read_stringtable_block): Recognize '007f' as
11016         a language neutral stringtable block.
11017
11018 2004-01-12  Patrik Torstensson
11019
11020         * object.h (MonoStringBuilder) : Changed layout to support our
11021         new stringbuilder class.
11022         * marshal.c: Change marshalling to support the new layout of 
11023         string builder.
11024         * appdomain.c: increased version number because new layout of
11025         string builder.
11026
11027 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11028
11029         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11030         assembly name as an string instead of an AssemblyName, since it is
11031         easier to extract info from it.
11032
11033         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11034         the culture subdirectories too. Fixes #52231.
11035
11036 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11037
11038         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11039         It takes 2 new parameters with an optional name for the method to look
11040         for and case ignoring info.
11041
11042         * threadpool.c: removed unused variable.
11043
11044 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11045
11046         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11047         It takes 2 new parameters with an optional name for the property to look
11048         for and case ignoring info.
11049         Fixes bug #52753.
11050
11051 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11052
11053         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11054         Fix #52451.
11055
11056 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11057
11058         * appdomain.c:
11059         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11060         Fixes bug #52630.
11061
11062 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11063
11064         * reflection.c: Add support for more than one unmanaged resource.
11065
11066         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11067         in field->def_value, as done in all other cases.
11068
11069         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11070         TypeBuilders.
11071
11072         * reflection.c (mono_reflection_create_runtime_class): Remove 
11073         errorneous assignment to klass->element_class, since it is already
11074         done in mono_reflection_setup_internal_class.
11075
11076 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11077
11078         * gc.c: added missing LeaveCriticalSection.
11079         * icall.c: indented a couple of lines.
11080         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11081         if we call EndInvoke inside a callback. Fixes bug #52601.
11082
11083 2004-01-07  Martin Baulig  <martin@ximian.com>
11084
11085         * mono-debug-debugger.h
11086         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11087
11088 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11089
11090         * appdomain.c: Use messages in NotImplementedException.
11091
11092         * exception.c (mono_get_exception_not_implemented): Now this takes
11093         a message argument.
11094
11095         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11096         exception instead of g_asserting an aborting when something is not
11097         implemented.
11098
11099         Add some inline docs.
11100
11101 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11102
11103         * reflection.h: Update after changes to object layout.
11104
11105         * reflection.c: Implement saving of unmanaged aka win32 resources.
11106
11107         * appdomain.c: Bump version number.
11108
11109         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11110         Handle missing domains gracefully.
11111
11112 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11113
11114         * file-io.c : On Windows, there are much more invalid_path_chars.
11115
11116 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11117
11118         * class.h, object.c: prepare for GetType () speedup.
11119
11120 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11121
11122         * profiler.c: workaround for --profile null reference exception on
11123           cygwin. Patch by Patrik Torstensson.
11124
11125 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11126
11127         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11128         make work for unaligned access.
11129
11130 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11131
11132         * class.c: small cleanup (class->fields [i] -> field).
11133         * image.c: check address of metadata is valid.
11134
11135 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11136
11137         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11138         search the list of loaded assemblies.
11139
11140         * reflection.c (mono_reflection_type_from_name): Use 
11141         mono_assembly_loaded instead of mono_image_loaded.
11142
11143         * reflection.c: Fix warnings.
11144
11145 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11146
11147         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11148         is dynamic. This is needed since an assembly can contain both dynamic and
11149         non-dynamic images.
11150
11151         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11152         assembly->dynamic.
11153
11154         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11155
11156         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11157         to store modules loaded using AddModule.
11158
11159         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11160         on Modules.
11161
11162         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11163
11164         * reflection.c (mono_image_fill_export_table_from_module): New function to
11165         fill out the EXPORTEDTYPES table from a module.
11166
11167         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11168         into a separate function. Also handle loaded non-dynamic modules.
11169
11170         * reflection.c (mono_image_basic_init): Fix memory allocation.
11171
11172         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11173
11174         * assembly.c (mono_assembly_load_references): Make this public.
11175
11176 2003-12-19  Martin Baulig  <martin@ximian.com>
11177
11178         * class.c (mono_class_initialize_generic): Made this static, take
11179         a `MonoGenericInst *' instead of a `MonoClass *'.
11180         (mono_class_from_generic): Call mono_class_initialize_generic()
11181         unless we're already initialized or being called from
11182         do_mono_metadata_parse_generic_inst().
11183
11184         * class.h (MonoGenericInst): Added `initialized' and
11185         `init_pending' flags.
11186
11187         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11188         `mono_class_init (gklass)' or mono_class_initialize_generic()
11189         here; set `generic_inst->init_pending' while parsing the
11190         `type_argv'.
11191
11192 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11193
11194         * locales.c: include string.h for memxxx prototypes
11195
11196 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11197
11198         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11199         constructor when accessing literal fields.
11200
11201 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11202
11203         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11204
11205         * reflection.c (assembly_add_resource_manifest): New function to fill
11206         the MANIFESTRESOURCE table.
11207
11208         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11209
11210         * reflection.h: Update to changes in class layout.
11211
11212         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11213         Reenable call to mono_runtime_is_shutting_down ().
11214
11215         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11216         determine if the runtime is shutting down.
11217
11218 2003-12-16  Jackson Harper <jackson@ximian.com>
11219
11220         * icall.c: comment out call to mono_runtime_is_shutting_down to
11221         fix build.
11222         
11223 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11224
11225         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11226         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11227
11228 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11229
11230         * reflection.c: move definition of swap_with_size
11231         to before its first call
11232
11233 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11234
11235         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11236
11237         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11238         icall.
11239
11240         * object.c: Fix warnings.
11241
11242         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11243         members if FlattenHierarchy is set.
11244
11245         * reflection.c (mono_image_add_decl_security): New function to emit
11246         declarative security.
11247
11248         * reflection.h reflection.c: Add support for declarative security.
11249
11250         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11251         
11252 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11253
11254         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11255         
11256         * appdomain.c verify.c: Moved corlib version checking into its own
11257         function in appdomain.c since it needs to create vtables etc.
11258
11259 2003-12-13  Patrik Torstensson <p@rxc.se>
11260
11261         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11262         instead of unwrapped server.
11263
11264 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11265
11266         * verify.c (check_corlib): Fix field index.
11267
11268 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11269
11270         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11271         GetGacPath icall.
11272
11273 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11274
11275         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11276         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11277         cope with sizeof(size_t) != sizeof(guint32).
11278
11279 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11280
11281         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11282         in case of failure.
11283
11284 2003-12-10  Mark Crichton <crichton@gimp.org>
11285
11286         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11287         in managed code.
11288
11289         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11290
11291 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11292
11293         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11294         marked as deleted.
11295
11296 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11297
11298         * verify.c (check_corlib): Handle the case when the version field is 
11299         initialized by a static constructor.
11300
11301 2003-12-08  Patrik Torstensson  <p@rxc.se>
11302
11303     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11304
11305 2003-12-08  Martin Baulig  <martin@ximian.com>
11306
11307         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11308         a MonoReflectionGenericParameter, also take the parameter index
11309         and name as arguments.
11310         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11311         (ves_icall_MonoGenericParam_initialize): New interncall.
11312         (ves_icall_Type_make_byref_type): New interncall.
11313
11314         * reflection.h (MonoReflectionGenericParam): Derive from
11315         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11316         `index' fields.
11317
11318         * reflection.c (mono_reflection_define_generic_parameter): Create
11319         and return a new MonoReflectionGenericParam; don't initialize the
11320         constraints here.
11321         (mono_reflection_initialize_generic_parameter): New public method;
11322         initializes the constraints and creates the `param->pklass'.
11323
11324 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11325
11326         * reflection.h reflection.c: Use the new fields 'num_types', 
11327         'num_fields' and 'num_methods' to track the number of types etc.
11328
11329         * verify.c (check_corlib): Check corlib version number.
11330
11331 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11332
11333         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11334         function works on all methods.
11335
11336 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11337
11338         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11339         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11340         the custom_type_info flag of the transparent proxy.
11341         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11342         objects that supports IRemotingTypeInfo.
11343         * object.h: Added custom_type_info field in transparent proxy.
11344
11345 2003-12-06  Martin Baulig  <martin@ximian.com>
11346
11347         * class.c (mono_class_create_from_generic): Removed.
11348         (mono_class_from_generic): Check `ginst->klass' before doing
11349         anything else.  This is important to fully support "recursive"
11350         generic types.
11351
11352         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11353         empty `generic_inst->klass' before doing anything else.
11354
11355 2003-12-06  Dick Porter  <dick@ximian.com>
11356
11357         * verify.c: 
11358         * object.h:
11359         * icall.c:
11360         * locales.c: Use C structs to access class fields.  Don't do a
11361         conversion between MonoString and UChar because both are
11362         platform-endian UTF-16.  Compare now takes startindex and count
11363         parameters.  Add a char overload for IndexOf.  Speed up the
11364         invariant string IndexOf.
11365
11366 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * Makefile.am (monosn_LDADD): Fix parallel build.
11369
11370 2003-12-04  Martin Baulig  <martin@ximian.com>
11371
11372         * icall.c
11373         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11374         (ves_icall_Type_make_array_type): New interncall.       
11375
11376 2003-12-04  Martin Baulig  <martin@ximian.com>
11377
11378         * locales.c: also change it in the !HAVE_ICU case.
11379
11380 2003-12-04  Dick Porter  <dick@ximian.com>
11381
11382         * icall.c:
11383         * locales.c: construct_compareinfo is now in CompareInfo, not
11384         CultureInfo.
11385
11386 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11387
11388         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11389         image->files array.
11390
11391         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11392         table as well.
11393
11394         * assembly.c (mono_assembly_load_references): Only load references
11395         once.
11396
11397         * class.c (mono_class_from_name): Avoid linear search of the 
11398         EXPORTEDTYPE table.
11399
11400         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11401
11402 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11403
11404         * image.h (MonoImage): Add 'field_cache' field.
11405
11406         * loader.c (mono_field_from_token): Cache field lookups.
11407         
11408         * reflection.c (mono_module_get_object): Fix name property.
11409
11410         * icall.c (ves_icall_get_enum_info): Update after changes to 
11411         mono_metadata_get_constant_index ().
11412
11413         * icall.c: Get rid of get_type_info icall, use a separate icall for
11414         each type property to avoid needless memory allocations. Fixes #51514.
11415
11416         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11417         to avoid needless binary searches.
11418
11419         * class.c (class_compute_field_layout): Move the initialization of
11420         field->def_value to mono_class_vtable ().
11421
11422         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11423         non-corlib types.
11424
11425         * object.c (mono_object_allocate): Make it inline.
11426
11427         * object.c (mono_object_allocate_spec): Make it inline.
11428         
11429 2003-12-02  Dick Porter  <dick@ximian.com>
11430
11431         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11432         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11433
11434 2003-12-01  Dick Porter  <dick@ximian.com>
11435
11436         * threads.c: Fix signature and call in CreateMutex and
11437         CreateEvent.
11438
11439 2003-12-01  Dick Porter  <dick@ximian.com>
11440
11441         * icall.c: 
11442         * locales.c: Implement string compares and searching
11443
11444         * object.h: Add extra Thread field
11445
11446 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11447
11448         * reflection.c (fixup_method): Add support for MonoCMethod.
11449
11450 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11451
11452         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11453
11454         * reflection.c (assembly_name_to_aname): Allow extra characters in
11455         assembly names. Fixes #51468.
11456
11457 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11458
11459         * exception.c (mono_exception_from_name_domain): New helper function.
11460
11461         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11462         exception object in the correct domain.
11463
11464         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11465         formatting + make a copy a the input data.
11466
11467         * loader.c (mono_get_method_from_token): Methods which contain
11468         native code do not have entries in the ImplMap.
11469
11470         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11471         Thanks to Gonzalo for spotting this.
11472         
11473         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11474         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11475
11476         * assembly.h (mono_assembly_load_from): Split the second part of 
11477         assembly loading into a new public function.
11478
11479         * exception.h (mono_get_exception_bad_image_format): New function.
11480
11481 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11482
11483         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11484         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11485         
11486         * icall.c: Add new icall for creating dynamic methods.
11487
11488         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11489
11490         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11491
11492         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11493         create a dynamic method.
11494
11495         * reflection.c (resolve_object): New helper function.
11496
11497         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11498         which manipulate it so they can also work on dynamic methods.
11499
11500         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11501         creating the MonoReflectionMethodAux structure if it is not needed.
11502         
11503         * reflection.h verify.c: Update after changes to object layout.
11504
11505         * reflection.c (method_builder_encode_signature): Fix compilation on
11506         gcc 2.95.x.
11507
11508 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11509
11510         * appdomain.h: Added support for context static fields. Added static_data
11511           field to MonoAppContext and renamed thread_static_fields to a more
11512           generic special_static_fields in MonoAppDomain, since it can now contain
11513           context static fields.
11514         * domain.c: Updated hashtable name.
11515         * object.c: Replaced field_is_thread_static() for a more generic
11516           field_is_special_static() which also checks for context static attribute.
11517           In mono_class_vtable(), added support for static context fields.
11518         * threads.c: Changed methods that manage thread static fields to more
11519           generic methods so they can be reused both for thread and context static
11520           data.
11521         * threads.h: Declared some new methods.
11522
11523 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11524
11525         * reflection.h: Update after changes to the managed types.
11526
11527         * reflection.c (encode_custom_modifiers): New helper function.
11528
11529         * reflection.c (method_encode_signature): Emit custom modifiers.
11530
11531         * reflection.c (field_encode_signature): Emit custom modifiers.
11532
11533 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11534
11535         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11536
11537         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11538         implementation.
11539
11540         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11541         icall.
11542
11543         * object.c (mono_field_get_value_object): New function.
11544
11545         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11546         specific.
11547
11548 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11549
11550         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11551         return a preallocated out-of-memory exception instance.
11552
11553         * object.c (out_of_memory): Use the new function.
11554
11555         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11556         flag is before the custom modifiers. Fixes #49802.
11557
11558 2003-11-16  Martin Baulig  <martin@ximian.com>
11559
11560         * class.c (mono_class_is_open_constructed_type): Implemented the
11561         MONO_TYPE_GENERICINST case.
11562
11563 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11564
11565         * assembly.c (mono_assembly_fill_assembly_name): New function to
11566         fill out the MonoAssemblyName structure.
11567         (mono_assembly_open): Use the new function.
11568
11569         * icall.c (fill_reflection_assembly_name): New helper function.
11570
11571         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11572         new function.
11573
11574         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11575
11576 2003-11-15  Martin Baulig  <martin@ximian.com>
11577
11578         * class.c (mono_class_is_open_constructed_type): New public
11579         function; checks whether a type is an open constructed type,
11580         ie. whether it still contains type parameters.
11581         (mono_class_inflate_generic_type): If we're a type parameter and
11582         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11583         type.
11584
11585         * class.h (MonoGenericInst): Added `guint32 is_open'.
11586
11587         * loader.c (method_from_methodspec): Check whether we're an open
11588         or closed constructed type and set `ginst->is_open'.
11589
11590         * reflection.c (mono_reflection_bind_generic_parameters): Check
11591         whether we're an open or closed constructed type and set
11592         `ginst->is_open'.
11593         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11594         from open constructed types.
11595
11596 2003-11-15  Martin Baulig  <martin@ximian.com>
11597
11598         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11599         a generic instance (instead of a generic type declaration) with
11600         unbound generic parameters, bind them to our actual types.
11601
11602 2003-11-14  Martin Baulig  <martin@ximian.com>
11603
11604         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11605
11606         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11607         an interface type, populate `res->interfaces' with instantiated
11608         versions of all the interfaces we inherit.
11609
11610 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11611
11612         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11613         when MONO_PATH is set but doesn't contain the install dir.
11614
11615 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11616
11617         * icall.c:
11618         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11619         it's also implemented in base classes. Fixes bug #50927.
11620
11621 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11622
11623         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11624         if this method is called from a finalizer. Fixes #50913.
11625
11626 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11627
11628         * threads.c: Implement VolatileRead/VolatileWrite
11629
11630         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11631
11632 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11633
11634         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11635         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11636         2.95.3.
11637
11638         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11639         from Peter Ross (pro@missioncriticalit.com).
11640         
11641 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11642
11643         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11644
11645 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11646
11647         * assembly.c (mono_assembly_load_references): Disable check because it
11648         triggers on older corlibs which lots of people have.
11649
11650 2003-11-12  Jackson Harper  <jackson@ximian.com>
11651
11652         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11653         load corlib.dll if mscorlib.dll is not found.
11654         * assembly.h: Remove corlib name define.
11655         * class.c:
11656         * domain.c:
11657         * image.c: Change corlib name to mscorlib.
11658         
11659 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11660
11661         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11662
11663 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11664
11665         * appdomain.h: Added loader_optimization here to sync with the C#
11666         code, and add disallow_binding_redirects field.
11667
11668 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11669
11670         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11671
11672         * reflection.c (mono_image_build_metadata): Fix crash on modules
11673         with no types.
11674
11675         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11676
11677         * icall.c (ves_icall_get_method_info): Return callingConvention as
11678         well.
11679
11680         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
11681         namespaces from the EXPORTEDTYPE table as well.
11682
11683         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
11684         from all modules inside the assembly.
11685         
11686 2003-11-11  Martin Baulig  <martin@ximian.com>
11687
11688         * reflection.c (mono_reflection_bind_generic_parameters): Make
11689         this work for interfaces.
11690
11691 2003-11-11  Martin Baulig  <martin@ximian.com>
11692
11693         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
11694
11695 2003-11-11  Martin Baulig  <martin@ximian.com>
11696
11697         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
11698         "MonoInflatedMethod" and "MonoInflatedCtor".
11699
11700 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11701
11702         * reflection.c (resolution_scope_from_image): Use the assembly table
11703         from the manifest module, since other modules don't have it.
11704
11705         * debug-helpers.c (mono_type_full_name): New helper function.
11706
11707         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
11708
11709         * image.c (mono_image_load_file_for_image): New public function which
11710         is a replacement for the load_file_for_image in class.c.
11711
11712         * assembly.c (mono_assembly_load_module): A wrapper for the function
11713         above which does assembly association and reference loading too.
11714
11715         * class.c (mono_class_from_name): Call mono_assembly_load_module.
11716
11717 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11718
11719         * appdomain.c: not all of the attributes for the full assembly name
11720         are required and the order doesn't matter. Fixes bug #50787.
11721
11722 2003-11-10  Dick Porter  <dick@ximian.com>
11723
11724         * locales.c: Use platform-endian UTF16
11725
11726 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11727
11728         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11729         
11730 2003-11-10  Martin Baulig  <martin@ximian.com>
11731
11732         * metadata.c
11733         (mono_metadata_load_generic_params): Make this actually work.
11734
11735         * reflection.c (mono_reflection_bind_generic_parameters): If our
11736         parent is a generic instance, pass all the `types' to it, no
11737         matter whether it has the same number of type parameters or not.
11738
11739 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11740
11741         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11742
11743         * assembly.c (mono_assembly_load_references): Move the image<->assembly
11744         assignment code to this function so it gets called recursively for all
11745         modules.
11746
11747         * image.c (load_modules): Remove the assembly assignment since it is
11748         now done by mono_assembly_load_references.
11749         
11750         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11751         Add 'module' argument.
11752         (mono_module_get_types): New helper function.
11753         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
11754
11755 2003-11-08  Martin Baulig  <martin@ximian.com>
11756
11757         * class.c (mono_class_inflate_generic_method): Interface method
11758         don't have a header.
11759
11760         * reflection.c (mono_image_get_methodspec_token): Take an
11761         additional `MonoGenericInst *' argument instead of reading it from
11762         the header; this is necessary to support interfaces.
11763         (mono_image_create_token): Pass the `MonoGenericInst *' from the
11764         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
11765         (inflated_method_get_object): Take an additional `MonoGenericInst *'
11766         argument.
11767
11768         * reflection.h (MonoReflectionInflatedMethod): Added
11769         `MonoGenericInst *ginst'.
11770
11771 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
11772
11773         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
11774
11775 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
11776
11777         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
11778
11779 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
11780
11781         * reflection.c 
11782         (reflection_methodbuilder_from_method_builder):
11783         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
11784         initialize a ReflectionMethodBuilder structure.
11785         (mono_image_get_methodbuilder_token):
11786         (mono_image_get_ctorbuilder_token): New functions to emit memberref
11787         tokens which point to types in another module inside the same assembly.
11788
11789         * reflection.c: Use the new helper functions.
11790         
11791         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
11792
11793         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
11794         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
11795
11796         * reflection.c (resolution_scope_from_image): Emit a moduleref if
11797         neccesary.
11798
11799         * reflection.c (mono_image_build_metadata): Emit metadata only for the
11800         current module. Emit the manifest only for the main module.
11801
11802         * reflection.c (mono_image_create_token): Add assertion when a 
11803         memberref needs to be created.
11804
11805         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
11806
11807         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
11808         larger buffer for the custom attribute blob. Fixes #50637.
11809         
11810 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11811
11812         * threadpool.c: notify listener on async processing handles after
11813         invoking the async callback. Thanks to Zoltan.
11814
11815 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11816
11817         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
11818         avoid code duplication.
11819
11820         * reflection.h (MonoDynamicImage): New type which is currently unused,
11821         but will be used through the ref.emit code in place of 
11822         MonoDynamicAssembly.
11823
11824         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11825         object layout.
11826
11827         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
11828         a MonoDynamicImage instead of just a MonoImage.
11829         
11830         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
11831         icalls to ModuleBuilder but keep their semantics, so they will work
11832         with moduleb->assemblyb. This will change later.
11833         
11834 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11835
11836         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11837         object layout.
11838
11839         * reflection.c (mono_image_build_metadata): Avoid creation of a default
11840         main module, since it is now done by the managed code.
11841
11842 2003-11-03  Martin Baulig  <martin@ximian.com>
11843
11844         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
11845         `ginst->klass' here.
11846         (method_encode_methodspec): Don't use the `ginst->generic_method's
11847         klass if it's a generic instance, use `ginst->klass' in this case.
11848
11849 2003-11-03  Martin Baulig  <martin@ximian.com>
11850
11851         * reflection.c (mono_image_get_generic_method_param_info):
11852         Removed, use mono_image_get_generic_param_info() instead.
11853         (mono_image_get_type_info): Write the GenericParam table before
11854         the Method table.  This is neccessary because in the GenericParam
11855         table, type parameters of the class (ie. '!0' etc.) must come
11856         before the ones from its generic methods (ie. '!!0' etc).
11857
11858 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11859
11860         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
11861
11862 2003-11-02  Martin Baulig  <martin@ximian.com>
11863
11864         * reflection.c (create_generic_typespec): Take a
11865         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
11866         the generic parameters from it.
11867
11868 2003-11-02  Martin Baulig  <martin@ximian.com>
11869
11870         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
11871         instead of a `MonoClassField *' since we just need the type.
11872         (create_generic_typespec): New static function.  Creates a
11873         TypeSpec token for a generic type declaration.
11874         (mono_image_get_generic_field_token): New static function.
11875         (mono_image_create_token): If we're a FieldBuilder in a generic
11876         type declaration, call mono_image_get_generic_field_token() to get
11877         the token.
11878
11879 2003-11-02  Martin Baulig  <martin@ximian.com>
11880
11881         * reflection.h
11882         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
11883         `MonoReflectionGenericInst *declaring_type' and
11884         `MonoReflectionGenericInst *reflected_type' fields.
11885
11886         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
11887         `MonoReflectionGenericInst *declaring_type' and a
11888         `MonoReflectionGenericInst *reflected_type' argument instead of a
11889         single `MonoReflectionGenericInst *type' one.  Set
11890         `res->declaring_type' and `res->reflected_type' from them.
11891         (mono_reflection_inflate_field): Likewise.      
11892
11893 2003-11-02  Martin Baulig  <martin@ximian.com>
11894
11895         * class.c (mono_class_setup_vtable): Don't store generic methods
11896         in the vtable.  
11897
11898 2003-11-02  Martin Baulig  <martin@ximian.com>
11899
11900         * reflection.h (MonoReflectionGenericInst): Added
11901         `MonoReflectionType *declaring_type'.
11902
11903         * reflection.c (mono_reflection_bind_generic_parameters): Use
11904         `if (tb->parent)' instead of `klass->parent'.
11905
11906 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
11907
11908         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
11909         with an empty ASSEMBLY table.
11910
11911         * reflection.c (mono_image_build_metadata): Avoid using the same loop
11912         variable in the inner and outer loops.
11913
11914 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
11915
11916         * metadata.h (mono_metadata_make_token): Put parentheses around macro
11917         argument.
11918
11919         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
11920         
11921         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
11922         icalls. Instead, do everything in managed code. This is needed since
11923         it is hard to restore the original domain etc. in unmanaged code in the
11924         presence of undeniable exceptions.
11925
11926         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
11927         New icalls to push and pop appdomain refs.
11928
11929 2003-10-31  Martin Baulig  <martin@ximian.com>
11930
11931         * class.c (inflate_generic_type): Renamed to
11932         mono_class_inflate_generic_type() and made it public.
11933
11934         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
11935         New interncall.
11936
11937         * loader.c (mono_field_from_memberref): Also set the retklass for
11938         typespecs.
11939
11940         * fielder.c (mono_image_get_inflated_field_token): New static
11941         method; creates a metadata token for an inflated field.
11942         (mono_image_create_token, fixup_method): Added support for
11943         "MonoInflatedField".
11944         (fieldbuilder_to_mono_class_field): New static function.
11945         (mono_reflection_inflate_field): New public function.
11946
11947         * reflection.h
11948         (MonoReflectionGenericInst): Added `MonoArray *fields'.
11949         (MonoReflectionInflatedField): New typedef.     
11950
11951 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
11952
11953         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
11954         for Solaris and other platforms without s6_addr16
11955
11956 2003-10-30  Martin Baulig  <martin@ximian.com>
11957
11958         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
11959         argument instead of two.
11960         (mono_class_inflate_generic_signature): Likewise.
11961         (inflate_generic_header): Likewise.
11962         (mono_class_inflate_generic_method): Likewise.  In addition, if
11963         `ginst->klass' is set, it becomes the new `method->klass'.
11964
11965         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
11966         field.
11967
11968         * reflection.c (encode_generic_method_sig): Write a 0xa as the
11969         first byte. [FIXME]
11970         (method_encode_methodspec): If we have generic parameters, create
11971         a MethodSpec instead of a MethodRef.
11972         (fixup_method): Added support for "MonoInflatedMethod" and
11973         "MonoInflatedCtor".
11974         (mono_image_create_token): Added support for "MonoInflatedMethod"
11975         and "MonoInflatedCtor".
11976         (inflated_method_get_object): New static function; returns a
11977         managed "System.Reflection.MonoInflatedMethod" object.
11978         (mono_reflection_bind_generic_method_parameters): Return a
11979         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
11980         (mono_reflection_inflate_method_or_ctor): Likewise.
11981         (mono_image_get_generic_method_param_info): Initialize unused
11982         fields to zero.
11983         (mono_image_get_generic_param_info): Likewise.
11984
11985         * reflection.h (MonoReflectionInflatedMethod): New public
11986         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
11987         "S.R.MonoInflatedCtor" classes.
11988
11989         * loader.c (method_from_memberref): If we're a TypeSpec and it
11990         resolves to a generic instance, inflate the method.
11991
11992 2003-10-28  Dick Porter  <dick@ximian.com>
11993
11994         * object.c (mono_runtime_run_main): Convert command-line arguments
11995         into utf8, falling back to the user's locale encoding to do so.
11996
11997 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
11998
11999         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12000         at this time.
12001
12002         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12003
12004         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12005         up icalls at method definition time. Partially fixes #33569.
12006
12007 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12008
12009         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12010         marshalling of arrays. Fixes #50116.
12011
12012         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12013
12014         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12015         points to a vtable in the dying appdomain.
12016
12017         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12018         listeners into unmanaged code inside the lock.
12019
12020         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12021         domains and add some comments.
12022
12023 2003-10-25  Martin Baulig  <martin@ximian.com>
12024
12025         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12026
12027         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12028
12029         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12030         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12031         currently parsing.  Create the generic class and store it in
12032         `generic_inst->klass' before parsing the type arguments.  This is
12033         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12034         for an example.
12035         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12036         to support recursive typespec entries.
12037
12038         * class.c (mono_class_setup_parent): If our parent is a generic
12039         instance, we may get called before it has its name set.
12040         (mono_class_from_generic): Splitted into
12041         mono_class_create_from_generic() and mono_class_initialize_generic().
12042
12043 2003-10-25  Martin Baulig  <martin@ximian.com>
12044
12045         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12046         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12047         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12048         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12049
12050         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12051         (create_typespec): Likewise.
12052         (mono_reflection_bind_generic_parameters): Return a
12053         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12054         (mono_reflection_inflate_method_or_ctor): New public function.
12055
12056         * reflection.h (MonoReflectionGenericInst): New typedef.        
12057
12058 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12059
12060         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12061         inside the domain lock. Fixes #49993.
12062         
12063         * object.c (mono_class_vtable): When typed allocation is used, 
12064         allocate vtables in the GC heap instead of in the mempool, since the
12065         vtables contain GC descriptors which are used by the collector even
12066         after the domain owning the mempool is unloaded.
12067
12068         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12069
12070         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12071         reflect what it does. Also invalidate mempools instead of freeing
12072         them if a define is set.
12073
12074         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12075         of the appdomain.
12076         
12077         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12078         hold the finalizable objects in this domain.
12079
12080         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12081         appdomain.
12082
12083         * appdomain.c (mono_domain_set): New function to set the current
12084         appdomain, but only if it is not being unloaded.
12085
12086         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12087         appdomain which is being unloaded.
12088         
12089         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12090         unloading of the root appdomain.
12091
12092         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12093         icall to execute a method in another appdomain. Intended as a 
12094         replacement for InternalSetDomain, which can confuse the code 
12095         generation in the JIT.
12096
12097         * appdomain.c (mono_domain_is_unloading): New function to determine
12098         whenever an appdomain is unloading.
12099
12100         * appdomain.c (mono_domain_unload): New function to correctly unload
12101         an appdomain.
12102
12103         * assembly.c (mono_assembly_load_references): Check that an assembly
12104         does not references itself.
12105
12106         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12107         domain manually, it asks the finalizer thread to do it, then waits for
12108         the result. Also added a timeout.
12109
12110         * icall.c: Register the new icalls.
12111
12112         * threads.h threads.c: Export the mono_gc_stop_world and 
12113         mono_gc_start_world functions.
12114         
12115         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12116         function to fill out the mempool with 0x2a.
12117
12118 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12119
12120         * reflection.h (MonoReflectionMethodAux): New structure to store
12121         information which is rarely used, thus is not in the MonoMethod
12122         structure.
12123
12124         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12125         store the aux info.
12126
12127         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12128         and marshalling info into the aux structure.
12129
12130         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12131         from the aux structure.
12132
12133         * loader.c (mono_method_get_param_names): Retrieve the param names from
12134         the aux structure.
12135         
12136 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12137
12138         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12139         warning.
12140
12141 2003-10-21  Dick Porter  <dick@ximian.com>
12142
12143         * socket-io.c
12144         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12145         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12146
12147 2003-10-21  Martin Baulig  <martin@ximian.com>
12148
12149         * reflection.c (mono_reflection_bind_generic_parameters):
12150         `klass->parent' is NULL for interfaces.
12151
12152 2003-10-21  Martin Baulig  <martin@ximian.com>
12153
12154         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12155
12156 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12157
12158         * exception.c (mono_exception_from_name_msg): New helper function for
12159         creating exceptions and initializing their message field.
12160
12161         * exception.c: Simplify functions using the new helper.
12162
12163         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12164         New function.
12165
12166         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12167         mono_raise_exception, since otherwise gcc doesn't generate the function
12168         epilog for raise_exception, confusing the stack unwinding in the JIT.
12169         Fixes #45043.
12170
12171         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12172         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12173         Fixes #49499.
12174
12175 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12176
12177         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12178         utf8.
12179
12180 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12181
12182         * icall.c: Removed GetUninitializedObject method because
12183           AllocateUninitializedClassInstance does the same.
12184
12185 2003-10-18  Martin Baulig  <martin@ximian.com>
12186
12187         * class.c (inflate_generic_signature): Renamed to
12188         mono_class_inflate_generic_signature() and made it public.
12189         (my_mono_class_from_generic_parameter): New static function; if we
12190         don't already have the generic parameter's MonoClass, create a
12191         very simple one which is just used internally in the runtime and
12192         not passed back to managed code.
12193
12194         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12195
12196         * metadata.h (MonoMethodSignature): Moved the
12197         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12198         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12199
12200         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12201         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12202         interncall on the MonoMethod class, not on MethodInfo.
12203         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12204         calling mono_reflection_bind_generic_method_parameters() directly.
12205
12206         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12207         return the already computed `method->signature'.
12208         (method_from_methodspec): New static function to load a method
12209         from a MethodSpec entry.
12210         (mono_get_method_from_token): Call the new method_from_methodspec()
12211         for MethodSpec tokens.  
12212         (mono_get_method_from_token): If we're a generic method, load the
12213         type parameters.
12214
12215         * reflection.c (mono_image_get_memberref_token): Allow
12216         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12217         table.
12218         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12219         (mono_image_create_token): First check whether it's a generic
12220         method (so we'd need to create a MethodSpec), then do the other
12221         two alternatives.
12222         (mono_reflection_bind_generic_method_parameters): Return a
12223         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12224         called directly from the interncall.
12225
12226 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12227
12228         * reflection.c (load_public_key): Move loading of the public key
12229         into managed code.
12230
12231         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12232
12233         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12234         fields.
12235
12236         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12237         culture, hash_alg and public_key. Fixes #49555.
12238
12239 2003-10-17  Martin Baulig  <martin@ximian.com>
12240
12241         * class.h (MonoGenericInst): Moved this declaration here and added
12242         `MonoMethod *generic_method'.
12243
12244         * icall.c
12245         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12246         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12247
12248         * metadata.c (mono_metadata_type_equal): Two types of
12249         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12250         index; ie. don't compare the address of the `MonoGenericParam'
12251         structure.
12252         (mono_metadata_load_generic_params): Removed the `MonoMethod
12253         *method' argument.
12254
12255         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12256         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12257
12258         * reflection.c (method_encode_signature): Encode the number of
12259         generic parameters.
12260         (encode_generic_method_sig): New static function.
12261         (method_encode_methodspec): New static function; creates an entry
12262         in the MethodSpec table for a generic method.
12263         (mono_image_get_methodspec_token): New static function.
12264         (mono_image_create_token): Call mono_image_get_methodspec_token()
12265         for generic methods.
12266         (mono_reflection_bind_generic_method_parameters): New public
12267         function.  Instantiates a generic method.
12268
12269 2003-10-16  Martin Baulig  <martin@ximian.com>
12270
12271         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12272         *gen_params' here from MonoMethodHeader.
12273
12274         * metadata.c (mono_metadata_parse_method_signature): If we have
12275         generic parameters, initialize `method->gen_params' and then set
12276         the correct `type->data.generic_param' in all the parameters.
12277
12278 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12279
12280         * threads.c (mono_threads_get_default_stacksize): New function to 
12281         return the default stacksize.
12282
12283         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12284         termination of the finalizer thread, since the previous method had
12285         race conditions. Fixes #49628.
12286
12287         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12288         as for the other managed threads.
12289
12290 2003-10-16  Martin Baulig  <martin@ximian.com>
12291
12292         * class.c (inflate_generic_signature): Copy `generic_param_count'
12293         and `gen_params'.
12294
12295         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12296         New interncall.
12297
12298         * metadata.c (mono_metadata_parse_method_signature): Actually set
12299         the `method->generic_param_count' here.
12300         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12301
12302 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12303
12304         * object.h: Add a new field to TypedRef to simplify the implementation
12305         of the REFANY opcodes in the JIT.
12306
12307         * icall.c: Make use of the new field.
12308
12309         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12310         dynamically.
12311
12312 2003-10-15  Martin Baulig  <martin@ximian.com>
12313
12314         * class.c (mono_class_from_gen_param): Renamed to
12315         mono_class_from_generic_parameter() and moved most of the
12316         functionality from mono_reflection_define_generic_parameter()
12317         here; ie. we create a "real" class here.
12318         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12319         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12320         previously been called.
12321
12322         * class.h (MonoGenericParam): Moved the declaration of this struct
12323         here from metadata.h and added `MonoMethod *method'.
12324
12325         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12326         interncall.
12327
12328         * loader.c (mono_get_method_from_token): If we have any generic
12329         parameters, call mono_metadata_load_generic_params() to read them
12330         from the MONO_TABLE_GENERICPAR.
12331
12332         * metadata.c (mono_metadata_load_generic_params): Added
12333         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12334
12335         * metadata.h (MonoMethodSignature): Replaced
12336         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12337         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12338
12339         * reflection.c (mono_reflection_define_generic_parameter): Moved
12340         most of the functionality into the new
12341         mono_class_from_generic_parameter(); set the `method' field if
12342         we're a method parameter.       
12343
12344 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12345
12346         * marshal.c (emit_struct_conv): if native size is 0
12347         emit no code.
12348
12349 2003-10-14  Martin Baulig  <martin@ximian.com>
12350
12351         * icall.c: The generics API has changed in the spec since it was
12352         added to System.Type; these modifications make it match the spec
12353         again.
12354         (ves_icall_Type_GetGenericParameters): Renamed to
12355         `ves_icall_Type_GetGenericArguments'.
12356         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12357         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12358         `ves_icall_MonoType_get_HasGenericArguments'.
12359         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12360         `ves_icall_MonoType_get_IsGenericParameter'.
12361         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12362         this is no interncall anymore.
12363         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12364         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12365
12366 2003-10-14  Martin Baulig  <martin@ximian.com>
12367
12368         * reflection.c (mono_reflection_bind_generic_parameters): Also
12369         inflate generic methods if we're reading the class from IL.
12370
12371 2003-10-13  Martin Baulig  <martin@ximian.com>
12372
12373         * reflection.c (mono_reflection_define_generic_parameter): This
12374         method isn't called directly from the icall anymore; take a
12375         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12376         method generic parameters.
12377         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12378         (method_builder_encode_signature): Encode generic parameters.
12379         (mono_image_get_method_info): Write generic params to the
12380         MONO_TABLE_GENERICPARAM table.
12381
12382         * reflection.h (MonoReflectionMethodBuilder): Added
12383         `MonoArray *generic_params'.
12384
12385         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12386
12387         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12388         wrapper for mono_reflection_define_generic_parameter().
12389         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12390
12391 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12392
12393         * marshal.h: Add missing function to fix build.
12394
12395         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12396         the SetLastError pinvoke attribute.
12397
12398         * marshal.c (mono_marshal_set_last_error): New helper function called
12399         by the generated code.
12400         
12401         * marshal.c (mono_mb_emit_branch): New helper function.
12402
12403         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12404
12405         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12406         classes as parameters and return values of delegates. Fixes #29256. 
12407
12408 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12409
12410         * locales.c: use gint32 in non HAVE_ICU case
12411
12412 2003-10-11  Martin Baulig  <martin@ximian.com>
12413
12414         * mono-debug.c (mono_debug_add_method): Added a workaround for
12415         bug #48591.
12416
12417 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12418
12419         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12420         delegates passed to native code must use the STDCALL calling 
12421         convention. Fixes #35987.
12422
12423 2003-10-10  Martin Baulig  <martin@ximian.com>
12424
12425         * class.c (inflate_generic_type): If we're inflating for a generic
12426         type instance (and not for a generic method), return
12427         MONO_TYPE_MVAR unchanged.
12428
12429 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12430
12431         * string-icalls.c: Join ignores null strings in the source array.
12432         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12433         * threads.c: GetAvailableTheads is slightly more accurate.
12434
12435 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12436
12437         * threads.h threads.c : add mono_threads_set_default_stacksize
12438         and pass default to CreateThread calls.
12439
12440 2003-10-09  Dick Porter  <dick@ximian.com>
12441
12442         * icall.c:
12443         * locales.h:
12444         * locales.c: Internal calls for constructing CultureInfo and
12445         related objects from libicu (if its available.)
12446
12447 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12448
12449         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12450
12451 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12452
12453         * threadpool.c: added an argument to async_invoke_thread that is the
12454         item to process, pass the MonoAsyncResult to the thread start function
12455         when creating a new thread. This way we don't need to acquire any lock
12456         when we're creating a new thread. Readded a semaphore for faster
12457         response times (instead of that Sleep i added).
12458
12459 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12460
12461         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12462         get daylight change dates better on Windows, fix handling
12463         of platforms without tm_gmtoff.
12464
12465 2003-10-06  Martin Baulig  <martin@ximian.com>
12466
12467         * class.c (inflate_generic_method): Renamed to
12468         mono_class_inflate_generic_method() and made public.
12469         (mono_class_init): Don't inflate the generic methods here.
12470         (mono_class_from_generic): Added `gboolean inflate_methods'
12471         argument.  Inflate the methods here.
12472
12473         * loader.c (mono_method_get_param_names): Ignore instances of
12474         generic types for the moment.
12475
12476         * reflection.c (fixup_method): Added support for inflated methods.
12477         (mono_image_create_token): Use mono_image_get_methodref_token()
12478         for inflated methods.
12479         (mono_custom_attrs_from_param): Ignore instances of generic types
12480         for the moment.
12481         (mono_reflection_bind_generic_parameters): New public function.
12482         Moved all the functionality from
12483         ves_icall_Type_BindGenericParameters() here and added support for
12484         dynamic types.
12485         (mono_reflection_define_generic_parameter): Initialize
12486         `klass->methods' here.
12487
12488         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12489         functionality into mono_reflection_define_generic_parameter().
12490         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12491         TypeBuilder, return that TypeBuilder.
12492
12493 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12494
12495         * appdomain.c: removed mono_delegate_semaphore.
12496
12497         * threadpool.c:
12498         (mono_thread_pool_add): moved hash table creation inside and the thread 
12499         creation outside of the critical region.
12500         (mono_thread_pool_finish): removed obsolete code.
12501         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12502         continue or exit the thread depending on the queue.
12503
12504 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12505
12506         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12507         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12508         handle more bool marshalling options
12509
12510 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12513         arrays of structs. Also add a more descriptive error message when
12514         a structure member is marshalled as LPArray.
12515
12516 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12517
12518         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12519         marshalling arrays of complex types. Fixes #29098. Also remove an
12520         usused and incomplete function.
12521
12522 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12523
12524         * gc.c: report heap_size - free_bytes as total memory allocated
12525         (bug#49362).
12526
12527 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12528
12529         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12530         fix timezone handling problems on Windows.
12531         
12532         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12533         asserts when the year is outside the range handled by ms the functions.
12534
12535         * class.c (setup_interface_offsets): If the class is an interface,
12536         fill out its interface_offsets slot.
12537
12538 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12539
12540         * threadpool.c: mark threadpool threads as background.
12541
12542 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12543
12544         * decimal.c - define DECINLINE to nothing if not using GCC
12545
12546 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12547
12548         * assembly.c: More refcount fixes.
12549
12550 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12551
12552         * string-icalls.c: if we're not trimming, return the same string.
12553         When not splitting, don't create a new string.
12554
12555 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12556
12557         * image.c:
12558         (mono_image_open): increment the ref_count inside the critical section.
12559
12560 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12561
12562         * image.c (mono_image_open): Fix reference counting bug.
12563
12564 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12565
12566         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12567         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12568         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12569         mono_lookup_pinvoke_call throws.        
12570
12571 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12572
12573         * reflection.c (mono_reflection_parse_type): Fix #49114.
12574
12575         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12576         temporary workaround for cygwin header problem.
12577
12578         * object.c (mono_object_isinst): Synchronize this with the code
12579         generated by the JIT for casts.
12580
12581 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12582
12583         * reflection.c (encode_type): Fix #38332.
12584
12585 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12586
12587         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12588         the original method from the wrapper method.
12589
12590 2003-09-25  Martin Baulig  <martin@ximian.com>
12591
12592         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12593         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12594         (ves_icall_Type_get_IsGenericInstance): New interncall.
12595
12596 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12597
12598         * object.c: fix cast warning in big endian code.
12599
12600 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12601
12602         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12603         
12604 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12605
12606         * assembly.c: don't call check_env from mono_assembly_load. It's
12607         already done once in mono_assemblies_init and may cause headaches when
12608         multiple threads are loading assemblies.
12609
12610 2003-09-19  Martin Baulig  <martin@ximian.com>
12611
12612         * reflection.c (mono_reflection_define_generic_parameter): Don't
12613         allocate `klass->methods', set `klass->flags' to
12614         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12615
12616 2003-09-18  Martin Baulig  <martin@ximian.com>
12617
12618         * class.c (mono_class_init): Don't create `class->methods' if it's
12619         already initialized.
12620
12621         * metadata.c (mono_metadata_load_generic_params): Make this
12622         actually work.
12623
12624         * reflection.c (mono_reflection_define_generic_parameter): Set
12625         parent class and interfaces from the constraints.
12626
12627         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12628         to keep this struct in sync with the declaration in TypeBuilder.cs.
12629
12630 2003-09-17  Martin Baulig  <martin@ximian.com>
12631
12632         * metadata.h (MonoType): Replaced the data's `int type_param'
12633         field with `MonoGenericParam *generic_param'.
12634         (MonoGenericParam): Added `MonoClass *klass'.
12635
12636         * class.c (mono_class_from_gen_param): Removed the
12637         `MonoImage *image' and `int type_num' arguments.
12638
12639         * metadata.c (mono_metadata_parse_generic_param): New static
12640         method; creates a MonoGenericParam which just contains the index.
12641         (do_mono_metadata_parse_type): Call
12642         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12643         MONO_TYPE_MVAR.
12644
12645         * reflection.c (mono_image_typedef_or_ref): Generic type
12646         parameters may be in the same assembly, but never use a typedef
12647         for them.
12648         (mono_reflection_define_generic_parameter): We're now creating a
12649         "real" class for the type parameter; it's now safe to call
12650         mono_class_from_mono_type() on the class'es type, it'll do the
12651         right thing.
12652
12653 2003-09-16  Martin Baulig  <martin@ximian.com>
12654
12655         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12656         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12657         the `symfile' data structure must be fully initialized before it
12658         gets added to the table.
12659
12660 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12661
12662         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12663
12664         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12665         class init trampolines.
12666
12667 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12668
12669         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12670         to the built-in profiler to turn off time and allocation profiling
12671         respectively.
12672
12673 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12674
12675         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12676         g_direct_equal.
12677
12678         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12679         in human readable form.
12680
12681 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
12682
12683         * reflection.c icall.c: Fixed warnings.
12684
12685         * image.c (load_class_names): Use a temporary hash table to hold the
12686         namespaces in order to avoid doing many string comparisons.
12687
12688         * image.h: Fix typo.
12689
12690         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
12691         Pass NULL instead of g_direct_equal to the GHashTable constructor 
12692         since the NULL case is short-circuited inside g_hash_table_lookup, 
12693         leading to better performance.  
12694
12695         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
12696         obtain the first custom attribute for a given index. Depends on the
12697         CustomAttribute table being sorted by the parent field.
12698
12699         * reflection.c (mono_custom_attrs_from_index): Use the new function 
12700         for better performance.
12701
12702 2003-09-07  Martin Baulig  <martin@ximian.com>
12703
12704         * class.c (mono_class_init): If we're a generic instance, inflate
12705         all our methods instead of loading them from the image.
12706         (mono_class_from_generic): Set `class->methods = gklass->methods'.
12707
12708 2003-09-07  Martin Baulig  <martin@ximian.com>
12709
12710         * mono-debug-debugger.c: Added support for constructors.
12711
12712 2003-09-06  Martin Baulig  <martin@ximian.com>
12713
12714         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
12715         New interncall.
12716
12717         * reflection.c (mono_reflection_setup_generic_class): Call
12718         ensure_runtime_vtable() to create the vtable.
12719
12720 2003-09-05  Martin Baulig  <martin@ximian.com>
12721
12722         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
12723         MONO_TYPE_MVAR.
12724
12725 2003-09-04  Martin Baulig  <martin@ximian.com>
12726
12727         * reflection.c (mono_reflection_define_generic_parameter): Generic
12728         parameters start with zero.
12729
12730 2003-09-04  Martin Baulig  <martin@ximian.com>
12731
12732         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12733
12734         * reflection.h (MonoReflectionGenericParam): New typedef.
12735         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
12736         the generic parameters from the managed TypeBuilder.
12737
12738         * reflection.c (mono_reflection_define_generic_parameter): New function.
12739         (mono_reflection_create_runtime_class): Encode generic parameters.
12740         (mono_reflection_setup_generic_class): New function; this is
12741         called after adding adding all generic params to the TypeBuilder.
12742         (encode_type): Added MONO_TYPE_VAR.
12743
12744 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
12745
12746         * class.h class.c (mono_class_needs_cctor_run): Moved this method
12747         here from the JIT.
12748
12749         * assembly.h assembly.c: Moved the AOT loading code into an assembly
12750         load hook.
12751
12752 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
12753
12754         * reflection.h reflection.c class.h class.c: Delete duplicate 
12755         definition of mono_type_get_name () from reflection.c and export the
12756         one in class.c.
12757
12758         * class.c: Class loading fixes from Bernie Solomon 
12759         (bernard@ugsolutions.com).
12760
12761         * reflection.c: Endianness fixes from Bernie Solomon 
12762         (bernard@ugsolutions.com).
12763         
12764 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
12765
12766         * assembly.h assembly.c: Define a file format version for AOT
12767         libraries.
12768         
12769         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
12770
12771         * appdomain.h (MonoJitInfo): New field to determine whenever the
12772         code is domain neutral.
12773         
12774 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
12775
12776         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
12777
12778 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
12779
12780         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
12781         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
12782         Avoid caching the result since strings must be domain specific. Fixes
12783         #48050.
12784
12785 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
12786
12787         * marshal.c (mono_marshal_init): Make this callable multiple times
12788         since it is hard to find a correct place to call it.
12789
12790         * object.c (mono_runtime_class_init): Execute static constructors in
12791         the correct appdomain.
12792
12793         * image.c (build_guid_table): Handle the case when multiple images have
12794         the same GUID.
12795
12796 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12797
12798         * icall.c: added a couple of icalls for System.Web.
12799
12800 2003-08-28  Martin Baulig  <martin@ximian.com>
12801
12802         * icall.c (ves_icall_Type_BindGenericParameters): Use
12803         `klass->generic_inst' instead of `&klass->byval_arg' in the
12804         mono_type_get_object() call.  The returned type must be
12805         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
12806
12807 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
12808
12809         * NOTES: New file.
12810
12811         * object.c (mono_class_proxy_vtable): Make it thread safe.
12812
12813         * pedump.c: Fix warning.
12814
12815         * object.c appdomain.h: Get rid of metadata_section. 
12816         It is no longer needed and it was causing deadlocks with domain->lock.
12817
12818         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
12819
12820 2003-08-26  Martin Baulig  <martin@ximian.com>
12821
12822         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
12823
12824 2003-08-26  Martin Baulig  <martin@ximian.com>
12825
12826         * pedump.c (main): Call mono_metadata_init(),
12827         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
12828         and mono_loader_init().
12829
12830 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
12831
12832         * loader.h: Add missing include to fix build.
12833
12834         * image.h: mono_image_load_references is no more.
12835
12836         * assembly.c: Reworked assembly loading to make it really thread safe.
12837         After these changes, the assembly returned by mono_assembly_open is
12838         fully initialized, i.e. all its references assemblies are loaded.
12839
12840         * assembly.c (mono_image_load_references): Renamed to 
12841         mono_assembly_load_references, and made private, since clients no
12842         longer need to call it.
12843
12844         * class.c: Removed calls to mono_assembly_load_references, since it was
12845         a source of deadlocks.
12846
12847         * loader.h loader.c class.h class.c: Protect data structures using a 
12848         new lock, the loader lock.
12849
12850         * class.c (mono_class_setup_vtable): Create temporary hash tables and
12851         GPtrArrays only when needed.
12852
12853         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
12854         into empty structures by mcs. Fixes pinvoke7.cs.
12855         
12856         * domain.c (mono_init): Call a new initialization function.
12857
12858         * appdomain.c (mono_runtime_init): Call the new initializer function
12859         of the marshal module.
12860
12861         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
12862         inserted into empty structures by mcs. Fixes pinvoke7.cs.
12863
12864         * marshal.h marshal.c: Added locks around the wrapper caches to make
12865         this module thread safe.
12866
12867         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
12868         this argument. Fixes pinvoke1.exe.
12869
12870 2003-08-25  Lluis Sanchez <lluis@ximian.com>
12871
12872         * object.h: Added call_type field to MonoMethodMessage and the corresponding
12873         enumeration of values. Removed fields to store remote call output values in
12874         MonoAsyncResult. Not needed any more.
12875         * object.c: Initialize call_type and async_result fields in mono_message_init.
12876         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
12877         dispatching the message.
12878         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
12879         async call to finish. To do it use a message with EndInvoke call type.
12880
12881 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
12882
12883         * loader.h loader.c (mono_method_hash_marhal_info): New function which
12884         determines whenever a method has marshalling info.
12885
12886 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12887
12888         * assembly.c: fix the build on windows.
12889
12890 2003-08-22 Lluis Sanchez <lluis@ximian.com>
12891
12892         * object.cs: Fixed bug #47785.
12893
12894 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
12895
12896         * string-icalls.c (StringReplace): If their are no occurances of
12897         the old string found return a reference to the supplied
12898         string. This saves some memory and matches MS behavoir.
12899         
12900 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12901
12902         * socket-io.c: fixed compilation for systems that define AF_INET6
12903         and don't define SOL_IP/SOL_IPV6.
12904
12905 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
12906
12907         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
12908         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
12909
12910         * rawbuffer.c rawbuffer.h: Make this module thread safe.
12911
12912         * domain.c: Make this module thread safe.
12913
12914         * domain.c (mono_init): Call new initialization function.
12915
12916         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
12917         reference types too. Fixes #38812.
12918
12919         * image.c (mono_image_init): Fixed warnings.
12920
12921         * class.c (mono_class_from_typeref): Handle assembly load failure
12922         correctly.
12923
12924         * appdomain.c (add_assemblies_to_domain): Handle the case when
12925         the references of an assembly are not yet loaded.
12926
12927         * metadata.c image.c assembly.c: Moved initialization of global
12928         variables to a separate function called at startup since lazy 
12929         initialization of these variables is not thread safe.
12930         
12931         * image.c assembly.c: Made this module thread safe by adding locks in 
12932         the appropriate places.
12933
12934         * domain.c (mono_init): Call the new initialization functions of the
12935         three modules.
12936
12937 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
12938
12939         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
12940           make a direct call. It is proxy's work to make the call asynchronous.
12941           mono_delegate_end_invoke(): If the targe is a proxy, just collect
12942           the return values.
12943         * object.cs: mono_method_call_message_new(): read AsyncResult and
12944           state object from parameters list, if this info is requested.
12945         * object.h: Added fields to store remote call output values in
12946           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
12947
12948 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
12949
12950         * object.h: add needed fields to MonoThread.
12951         * threads.c, threads.h: allow registering a function to cleanup data
12952         allocated per thread by the JIT.
12953
12954 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
12955
12956         * loader.h: portability fix by Bernie Solomon
12957         * <bernard@ugsolutions.com>.
12958
12959 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
12960
12961         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
12962         return a MonoArray. This simplifies the code and also ensures that
12963         the cache allways contains an object reference as a value.
12964
12965         * icall.c (ves_icall_get_parameter_info): Simplified using the new
12966         function.
12967
12968 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12969
12970         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
12971         fixes a problem with byte ordering when getting the address family for
12972         a socket.
12973
12974 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
12975
12976         * .cvsignore: Added monosn.
12977
12978         * reflection.h reflection.c loader.c: Added support for parameter
12979         marshalling to dynamically created types. Fixes #47295.
12980
12981 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
12982
12983         * rand.c: remove useless warnings.
12984
12985 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
12986
12987         * class.c: implemented ldtoken for methods and fieldrefs.
12988
12989 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12990
12991         * threadpool.c: when mono_async_invoke was called, no one took care of
12992         monitoring the queue. So if the method invoked took some time and we
12993         got new async invoke requests after 500 ms (the thread created waited
12994         that long in WaitForSingleObject), the new async invoke was not called
12995         until the previous one finished.
12996
12997         This is fixed now. Thanks to Totte for helping with it.
12998
12999 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13000
13001         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13002
13003 2003-08-11  Martin Baulig  <martin@ximian.com>
13004
13005         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13006
13007 2003-08-06  Martin Baulig  <martin@ximian.com>
13008
13009         * mono-debug-debugger.c: Added support for static fields,
13010         properties and methods.
13011
13012 2003-08-06  Martin Baulig  <martin@ximian.com>
13013
13014         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13015         make this work for applications with multiple application domains.
13016
13017 2003-08-04  Martin Baulig  <martin@ximian.com>
13018
13019         * mono-debug-debugger.c: Completely reworked the type support; the
13020         most important thing is that we're now just using one single
13021         `MonoType' instance per type.
13022
13023 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13024
13025         * mono-endian.h, mono-endian.c, icall.c: Added icall
13026         ves_icall_System_Double_AssertEndianity to assert double word endianity
13027         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13028
13029 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13030
13031         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13032         support, icalls and fixes.
13033
13034 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13035
13036         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13037         classes that are a punctuation character in .NET is not the same a
13038         g_unichar_ispunct.
13039
13040 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13041
13042         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13043
13044 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13045
13046         * icall.c: Add new MemCopy internalcall.
13047         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13048         Simplified code; It is not necessary to handle all the cases here,
13049         as the C# code takes care of it.  Only handle the case of the name
13050         resource embedded into the assembly.
13051
13052         Changed signature to return the data pointer and the size of the
13053         data. 
13054
13055 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13056
13057         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13058         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13059
13060 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13061
13062         * socket-io.c: ignore EINTR error in select.
13063
13064 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13065
13066         * class.h, class.c: removed unused subclasses field in MonoClass.
13067
13068 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13069
13070         * icall.c: improve fix of get_base_definition(). If the parent class
13071           doesn't have the mehod, look at the parent of the parent.
13072         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13073           to check if a parameter is an in or out parameter
13074           (PARAM_ATTRIBUTE_IN is not set by default).
13075           mono_method_return_message_restore(): Use mono_class_value_size to
13076           get the size of a value type. mono_type_stack_size (parameterType)
13077           does not return the correct value if parameterType is byRef.
13078           mono_load_remote_field(), mono_load_remote_field_new(),
13079           mono_store_remote_field(), mono_store_remote_field_new():
13080           raise exception if the remote call returns an exception.
13081
13082 2003-07-28  Martin Baulig  <martin@ximian.com>
13083
13084         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13085         method.  This is a wrapper around mono_runtime_invoke() which
13086         boxes the instance object if neccessary.
13087
13088 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13089
13090         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13091         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13092
13093 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13094
13095         * icall.c: disable mcs bug workaround.
13096
13097 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13098
13099         * object.c (mono_runtime_class_init): Take the metadata_section
13100         mutex before obtaining the domain mutex.
13101
13102         * appdomain.h: Added definition of metadata_section mutex here. 
13103
13104         * object.c: define metadata_mutex here.
13105
13106 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13107
13108         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13109         fixed.
13110
13111 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13112
13113         * reflection.c: Fix bug #46669
13114
13115 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13116
13117         * exception.c:
13118         * exception.h:
13119         * icall.c:
13120         * object.h: fill in the type name for TypeLoadException.
13121
13122 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13123
13124         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13125         relationship between TypeBuilders while compiling corlib) and bug
13126         45993 (Array types returned from the runtime while compiling
13127         corlib were from the loaded corlib).
13128
13129 2003-07-22  Martin Baulig  <martin@ximian.com>
13130
13131         * mono-debug-debugger.c: Reworked the type support a bit more;
13132         distinguish between types and classes.
13133
13134 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13135
13136         * icall.c: add IsArrayImpl icall.
13137
13138 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13139
13140         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13141         initializing real_size only once. Also fix bug #46602.
13142
13143 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13144
13145         * object.c: Renamed mono_metadata_section to metadata_section.
13146
13147 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13148
13149         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13150           empty array if the type is an array. Fixed.
13151           ves_icall_MonoMethod_get_base_definition: if the base method
13152           is abstract, get the MethodInfo from the list of methods of
13153           the class.
13154         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13155           and it was 1-based. Fixed in mono_param_get_objects.
13156
13157 2003-07-20  Martin Baulig  <martin@ximian.com>
13158
13159         * mono-debug.h: Set version number to 31.
13160         (mono_debug_init): Added `MonoDomain *' argument.
13161
13162         * mono-debug-debugger.c: Reworked the type support; explicitly
13163         tell the debugger about builtin types; pass the `klass' address to
13164         the debugger.
13165
13166 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13167
13168         * image.c: Allow new metadata tables to be loaded without a
13169         warning. Also update the warning message to give the new constant value.
13170                 
13171 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13172
13173         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13174         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13175         array type representation changes.
13176
13177 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13178
13179         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13180         on Environment.Exit () call.
13181
13182 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13183
13184         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13185         requires a matching corlib.
13186
13187 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13188
13189         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13190           Committed again without the CRs.
13191         
13192 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13193
13194         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13195           getting it from the "this" socket instance. Did not work
13196           if the socket is a subclass of Socket.
13197           Also fixed bug #35371.
13198
13199 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13200
13201         * metadata.c: fixed size for TypedByRef.
13202         * loader.c: when searching for a method, consider the vararg amrker.
13203         * unicode.c, decimal.c: constify some arrays.
13204
13205 2003-07-15  Dick Porter  <dick@ximian.com>
13206
13207         * socket-io.c: Fixed compilation for gcc < 3.2.
13208
13209         Fixed compilation for machines that don't have AF_INET6 (thanks to
13210         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13211
13212         Fixed compile warnings.
13213         
13214         Fixed formatting and line endings.
13215
13216 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13217
13218         * socket-io.h:
13219         * socket-io.c: Added IPv6 support.
13220
13221 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13222
13223         * class.c (mono_class_is_assignable_from): New function to implement
13224         the is_assignable_from logic. Used by mono_object_isinst, 
13225         Type::IsAssignableFrom () and the interpreter.
13226
13227         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13228         Object, even interfaces.
13229         
13230         * object.c (mono_object_isinst): Implement in terms of 
13231         is_assignable_from.
13232
13233         * icall.c (ves_icall_type_is_assignable_from): New icall.
13234
13235 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13236
13237         * domain.c (foreach_domain): fix compiler warning.
13238
13239 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13240
13241         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13242         not available on all plattforms
13243
13244 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13245
13246         * image.h image.c: Store the metadata version string in MonoImage.
13247         * icall.c: New icall to retrieve the image version.
13248         * reflection.c (create_dynamic_image): Fill in the image version field
13249         * reflection.c (build_compressed_metadata): Use the image version
13250         from the image structure.
13251
13252 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13253
13254         * appdomain.c: modified comment.
13255         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13256         That will be its last iteration when mono_gc_cleanup is called from
13257         mono_runtime_cleanup and before the domain is unloaded.
13258
13259         Fixes bug #45962.
13260
13261 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13262
13263         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13264         attributes.
13265
13266 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13267
13268         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13269         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13270         Bernie Solomon <bernard@ugsolutions.com>.
13271
13272 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13273
13274         * object.c, object.h: provide mono_object_new_fast() for faster
13275         allocation in some special cases.
13276
13277 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13278
13279         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13280         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13281
13282 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13283
13284         * threadpool.c: fix leaks.
13285
13286 2003-07-01  Dick Porter  <dick@ximian.com>
13287
13288         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13289         using MonoGHashTables.  Fixes threadpool bug posted to list.
13290
13291 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13292
13293         * image.h, image.c: added support to load an assembly from a byte array.
13294         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13295         assembly bundle support.
13296
13297 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13298
13299         * threadpool.c (mono_thread_pool_add): keep a reference to the
13300         AsyncResult to prevent GC
13301
13302 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13303
13304         * class.c: leak fix.
13305
13306 2003-06-25  Dick Porter  <dick@ximian.com>
13307
13308         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13309         for the async object, the WaitHandle object will close the handle.
13310         Fixes bug 45321.
13311
13312 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13313
13314         * class.c: in mono_array_class_get (), lookup from the hash with the
13315         same type we insert: this works around a bug in
13316         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13317         lluis. The real fix will have to wait for after the release.
13318
13319 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13320
13321         * icall.c: fix memory leak when getting type members.
13322
13323 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13324
13325         * reflection.c: added more pubtoken special cases.
13326
13327 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13328
13329         * class.c: handle field offset correctly when class size
13330         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13331
13332 2003-06-20  Martin Baulig  <martin@ximian.com>
13333
13334         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13335         *image' field.
13336
13337 2003-06-20  Martin Baulig  <martin@ximian.com>
13338
13339         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13340
13341 2003-06-20  Martin Baulig  <martin@ximian.com>
13342
13343         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13344         just distinguish between variables in registers and variables at
13345         an offset relative to a register.
13346
13347 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13348
13349         * icall.c: #ifdef out latest changes until mcs is fixed.
13350
13351 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13352
13353         * icall.c: return members in metadata order.
13354
13355 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13356
13357         * icall.c: avoid infinite loop in GetTimeZoneData.
13358
13359 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13360
13361         * icall.c: added Marshal.Prelink/All icalls.
13362
13363 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13364
13365         * object.c, object.h: fix warnings and do some overflow checking
13366         when creating arrays.
13367
13368 2003-06-17  Dick Porter  <dick@ximian.com>
13369
13370         * file-io.h:
13371         * file-io.c: File attributes need to be tweaked slightly when
13372         passed from the managed to the w32 world.
13373
13374 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13375         * profiler.h profiler-private.h profiler.c: Rework last patch
13376         based on suggestion by Paolo.
13377         
13378 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13379
13380         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13381         instruction level coverage data collection.
13382         * profiler.h profiler.c (: Added new callback function which can be
13383         used by the profiler to limit which functions should have coverage
13384         instrumentation.
13385         * profiler.c (mono_profiler_load): Call g_module_build_path to
13386         generate the file name of the profiler library.
13387
13388 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13389
13390         * profiler.c, profiler.h, profiler-private.h: added basic block 
13391         coverage profiling API.
13392
13393 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13394
13395         * reflection.c (mono_reflection_create_runtime_class): Add support
13396         for events in dynamically generated code.
13397
13398         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13399         not allocated.
13400
13401 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13402
13403         * icall.c: when getting timezone info, return reasonable values if we
13404         can't get the actual data.
13405
13406 2003-06-14  Dick Porter  <dick@ximian.com>
13407
13408         * threads.c (start_wrapper): Remove the reference to the thread
13409         object in the TLS data, so the thread object can be finalized.
13410         This won't be reached if the thread threw an uncaught exception,
13411         so those thread handles will stay referenced :-( (This is due to
13412         missing support for scanning thread-specific data in the Boehm GC
13413         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13414
13415 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13416
13417         * reflection.c: ensure streams and tables are first allocated with
13418         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13419
13420 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13421
13422         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13423
13424 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13425
13426         * reflection.c (mono_reflection_create_runtime_class): Add support for
13427         properties to dynamically created classes.
13428         * reflection.c: Fix a few places where non-MonoObjects were inserted
13429         into the tokens hashtable.
13430
13431 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13432
13433         * object.c: some support to handle out of memory exceptions.
13434
13435 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13436
13437         * marshal.c (mono_marshal_get_native_wrapper): support reference
13438         return types
13439
13440 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13441
13442         * object.h, object.c: more portability stuff from Bernie Solomon.
13443         Unexport mono_object_allocate(). Added mono_object_unbox ().
13444         Set exitcode when an unhandled exception is thrown.
13445
13446 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13447
13448         * marshal.c (mono_marshal_get_native_wrapper): use custom
13449         marshaler for return types.
13450
13451 2003-06-10  Dick Porter  <dick@ximian.com>
13452
13453         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13454         ip_mreq is available
13455
13456 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13457
13458         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13459         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13460         by Bernie Solomon <bernard@ugsolutions.com>.
13461
13462 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13463
13464         * gc.c (mono_gc_init): Avoid error message on shutdown when
13465         GC_DONT_GC=1 is used.
13466
13467         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13468         New icall to return the GUID of a module.
13469
13470 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13471
13472         * class.c: ensure instance size always includes the parent's size
13473         even whem class size is set explicitly (fixes bug#44294).
13474
13475 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13476
13477         * profiler.h, profiler.c: made the simple profiler thread-safe,
13478         get more accurate timing info. Allow the loading of an
13479         externally-developed profiler module.
13480
13481 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13482
13483         * marshal.c (mono_marshal_get_native_wrapper): improved
13484         class/byref arguments.
13485         (mono_marshal_get_native_wrapper): better string marshaling support.
13486
13487 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13488
13489         * class.c: ensure .pack and .size are handled correctly and
13490         simplified layout of static fields.
13491
13492 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13493
13494         * appdomain.c
13495         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13496
13497         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13498         current directory (fix bug 44008)
13499
13500 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13501
13502         * marshal.c (mono_marshal_get_native_wrapper): started support for
13503         custom marshalers.
13504         (mono_delegate_to_ftnptr): consider marshalling specifications
13505
13506 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13507
13508         * reflection.c, reflection.h: emit custom marshal info.
13509
13510 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13511
13512         * object.c: free the GError.
13513         * icall.c: added CloseEvent_internal.
13514         * threads.[ch]:
13515         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13516         call.
13517
13518 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13519
13520         * loader.c (mono_method_get_signature): Add support for dynamic
13521         assemblies.
13522
13523 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13524
13525         * reflection.c: fixed bug #43905.
13526
13527 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13528
13529         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13530         handling TypedReference and ArgIterator.
13531         * loader.c, loader.h: added function to get signature at call site.
13532
13533 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13534
13535         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13536         data readonly. Buglets and warning fixes. Some MethodSpec support.
13537
13538 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13539
13540         * class.h, class.c, object.c: remove relative numbering support.
13541
13542 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13543
13544         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13545         free the string, until we get a chance to fix Gtk#
13546
13547 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13548
13549         * marshal.c: revert last patch.
13550
13551 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13552
13553         * icall.c: updates for new mono_class_vtable() not calling
13554         the type constructor anymore.
13555
13556 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13557
13558         * object.h, object.c: separate vtable creation from type
13559         initialization. Make running the .cctor thread safe.
13560
13561 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13562
13563         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13564
13565 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13566
13567         * loader.c (mono_get_method): consider calling convention
13568
13569 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13570
13571         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13572         to return the invisible global type for a module.
13573
13574         * reflection.c (mono_image_build_metadata): Emit global fields too.
13575
13576 2003-05-20  Peter Williams  <peterw@ximian.com>
13577
13578         * loader.c (mono_lookup_internal_call): Add a few newlines.
13579
13580 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13581
13582         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13583         literal strings.
13584
13585         * appdomain.c (set_domain_search_path): Recalculate search path when
13586         AppDomainSetup.PrivateBinPath changes.
13587
13588         * object.c (mono_class_compute_gc_descriptor): It turns out some
13589         parts of the class libs (like System.Thread) holds pointers to
13590         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13591         to treat native int a pointer type here.
13592         
13593 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13594
13595         * appdomain.h, domain.c: add hashtable for jump target resolution.
13596
13597 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13598
13599         * reflection.h reflection.c icall.c: Added new icalls 
13600         GetManifestResourceInfoInternal, GetModulesInternal and support
13601         infrastructure.
13602
13603 2003-05-16  Dick Porter  <dick@ximian.com>
13604
13605         * icall.c:
13606         * file-io.h:
13607         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13608
13609 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13610
13611         * object.c: mono_store_remote_field: little fix to previous patch.
13612
13613 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13614
13615         * class.c: add constructors to array classes.
13616         * icall.c: special case array construction for InternalInvoke (),
13617
13618 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13619
13620         * class.h class.c reflection.c object.c: Added support for field
13621         defaults in dynamically generated classes.
13622
13623 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13624
13625         * reflection.c: properly encode charset for ddlimport.
13626
13627 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13628
13629         * threads.c: allow compiling without GC.
13630
13631 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13632
13633         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13634         handling of thread static data.
13635
13636 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13637
13638         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13639
13640 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13641
13642         * class.c (mono_array_class_get): always set the serializable flags
13643         (mono_array_class_get): always set the SEALED attribute for array types
13644
13645 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13646
13647         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13648         attributes (fix for bug 42021).
13649
13650 2003-05-12  Dick Porter  <dick@ximian.com>
13651
13652         * gc.c: Don't run finalizers when the finalizer thread is
13653         finishing up, because the default domain has already been
13654         destroyed.
13655
13656 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13657
13658         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13659         value is null, we should throw an exception.   This is slightly
13660         different than the other conventions used for the constructor.
13661
13662 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13663
13664         * socket-io.c: fixed windows build.
13665
13666 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13667
13668         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13669
13670 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13671
13672         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13673         compilers.
13674
13675 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13676
13677         * class.c (mono_class_layout_fields): Add experimental GC aware
13678         auto layout facility. Requires class library changes to work correctly.
13679
13680         (mono_class_setup_vtable): Avoid overriding explicit interface
13681         method implementations. Fixes iface3.exe test.
13682
13683         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
13684         object reference.
13685         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
13686         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
13687
13688         * metadata.h: Add new type classification macro which determines
13689         whenever the type holds an object reference.
13690
13691 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
13692
13693         * marshal.c (mono_marshal_get_native_wrapper): cleanups
13694
13695 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
13696
13697         * gc.c (finalizer_thread): Work around a GC bug.
13698
13699 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
13700
13701         * marshal.c (emit_struct_conv): allow unions
13702
13703         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
13704
13705 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
13706
13707         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
13708
13709 2003-05-06  Martin Baulig  <martin@ximian.com>
13710
13711         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
13712
13713 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13714
13715         * socket-io.c:
13716         (Select_internal): allow NULLs, don't create arrays if not needed.
13717         Coupled with Socket.cs changes.
13718
13719         * threadpool.c:
13720         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
13721         register a finalizer for it that will close the semaphore handle. This
13722         fixes the leak and make Lupus' test run with > 4080 loops.
13723
13724 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
13725
13726         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
13727         Jerome Laban (bug #42287)
13728
13729 2003-05-02  Martin Baulig  <martin@ximian.com>
13730
13731         * debug-mono-symfile.h
13732         (MonoSymbolFile): Moved declaration into mono-debug.h.
13733         (MonoDebugMethodJitInfo): Likewise.
13734         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
13735         argument.
13736         (_mono_debug_address_from_il_offset): Take a
13737         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
13738
13739         * mono-debug.h
13740         (MonoDebugDomainData): New struct.
13741         (mono_debug_get_domain_data): New function.
13742         (mono_debug_add_method): Take an additional `MonoDomain *'
13743         argument.
13744         (mono_debug_source_location_from_address): Likewise.
13745         (mono_debug_il_offset_from_address): Likewise.
13746         (mono_debug_address_from_il_offset): Likewise.
13747
13748 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
13749
13750         * reflection.c: one more check for null type in custom attrs.
13751
13752 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13753
13754         * reflection.c: avoid warning (comparison is always false due to limited
13755         range of data type).
13756
13757 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13758
13759         * icall.c: throw an exception in Type.GetField if the argument 'name'
13760         is NULL.
13761
13762 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
13763
13764         * reflection.c: fixed handling of enums in named arguments to custom
13765         attributes (bug #42123).
13766
13767 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
13768
13769         * reflection.c: use the right array element type and handle
13770         a null for a Type argument, too.
13771
13772 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
13773
13774         * reflection.c: handle arrays as arguments to custom attributes.
13775
13776 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13777
13778         * reflection.c: handle a string value in a custom attr
13779         ctor that takes an object.
13780
13781 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
13782
13783         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
13784         (fix bug #42063)
13785
13786 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
13787
13788         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
13789
13790 2003-04-27  Martin Baulig  <martin@ximian.com>
13791
13792         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
13793         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
13794         MONO_DEBUGGER_EVENT_BREAKPOINT.
13795         (mono_breakpoint_trampoline_code): Removed.
13796         (mono_debugger_event_handler): The last argument is now a
13797         `guint32'.
13798         (mono_debugger_insert_breakpoint_full): Removed the
13799         `use_trampoline' argument.
13800         (mono_debugger_method_has_breakpoint): Likewise.
13801         (mono_debugger_trampoline_breakpoint_callback): Renamed to
13802         mono_debugger_breakpoint_callback(); take the method and
13803         breakpoint number as arguments.
13804
13805 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
13806
13807         * metadata.c: fix off by one when loading parameters attributes.
13808
13809 2003-04-24  Martin Baulig  <martin@ximian.com>
13810
13811         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
13812
13813 2003-04-24  Martin Baulig  <martin@ximian.com>
13814
13815         * mono-debug-debugger.c: Moved all code which interacts with the
13816         Mono Debugger here.
13817
13818         * debug-mono-symfile.c: This code now just deals with the symbol
13819         file itself, the debugger code is now in mono-debug-debugger.c.
13820
13821 2003-04-23  Martin Baulig  <martin@ximian.com>
13822
13823         * mono-debug.c (mono_debug_source_location_from_il_offset):
13824         New method; like mono_debug_source_location_from_address(), but
13825         takes an IL offset instead of a machine address.
13826
13827 2003-04-23  Martin Baulig  <martin@ximian.com>
13828
13829         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
13830         `line' field; this is now computed by the debugger.
13831
13832 2003-04-23  Martin Baulig  <martin@ximian.com>
13833
13834         * mono-debug.[ch]: New files.  This is the new debugging interface.
13835
13836         * mono-debug-debugger.[ch]: New files.  Moved all code which
13837         interacts with the Mono Debugger here.
13838
13839 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
13840
13841         * domain.c (mono_init): initialize mono_defaults.monitor_class
13842
13843 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
13844
13845         * reflection.c (method_encode_code): Add a spicy exception to help
13846         future compiler authors.
13847
13848 2003-04-21  Martin Baulig  <martin@ximian.com>
13849
13850         * icall.c
13851         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13852         Make this work with relative pathnames; g_filename_to_uri() needs
13853         an absolute filename.
13854
13855 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
13856
13857         * icall.c: Track name changes in Object and ValueType.
13858
13859 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
13860
13861         * metadata.c (mono_type_stack_size): size should be a multiple of
13862         sizeof (gpointer)
13863
13864 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13865
13866         * gc.c:
13867         (internal_domain_finalize): moved into mono_domain_finalize. No need
13868         to create another thread because the finalizers will be run in the
13869         finalizer thread.
13870         
13871         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
13872         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
13873         to be run (MS does this too).
13874
13875 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
13876
13877         * object.c (mono_class_compute_gc_descriptor): Update comment.
13878
13879         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
13880
13881         * image.h: Add synchronized wrapper cache.
13882
13883         * image.c (do_mono_image_open): Initialize cache.
13884
13885         * reflection.c (create_dynamic_mono_image): Initialize cache.
13886
13887 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13888
13889         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
13890         ves_icall_System_Buffer_ByteLengthInternal.
13891
13892 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13893
13894         * reflection.c: setup klass->nested_in earlier. Allow
13895         a dash in the assembly name.
13896
13897 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
13898
13899         * metadata.c (mono_type_to_unmanaged): dont access
13900         type->data.klass for MONO_TYPE_OBJECT
13901         (mono_type_to_unmanaged): consider System.Delegate class
13902
13903 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
13904
13905         * class.c: just setup supertypes in the proper place instead of
13906         initializing the full element class for arrays.
13907
13908 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13909
13910         * class.c: ensure the element class of arrays is initialized.
13911         Setup the supertype info for array classes, too.
13912
13913 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
13914
13915         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
13916
13917 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13918
13919         * Makefile.am: re-added -m option when running cygpath. This way,
13920         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
13921         separator.
13922         * mono-config.c: same codepath for locating mono config file for WIN32
13923         and the rest.
13924         * assembly.c: if mono_assembly_setrootdir is called, don't override
13925         the value set.
13926
13927 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13928
13929         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
13930         MONO_ASSEMBLIES variable.
13931
13932 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
13933
13934         * icall.c: added Assembly::GetNamespaces() icall.
13935
13936 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13937
13938         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
13939
13940 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
13941
13942         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
13943         * object.c: fixed bug in the construction of vtable for proxies
13944
13945 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
13946
13947         * object.c (mono_array_new): Mark mono_array_new as an icall.
13948
13949 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13950
13951         * class.c: fixed test for public method when overriding interfaces.
13952         Closes bug #40970.
13953
13954 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13955
13956         * appdomain.h, domain.c: added mono_domain_foreach() to
13957         be able to access the currently loaded appdomains.
13958         * object.c: make string interning work across sppdomains.
13959         Mark some functions for use as icalls.
13960
13961 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
13962
13963         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
13964
13965         * reflection.h reflection.c: Allocate long living data using 
13966         GC_MALLOC_ATOMIC so the collector does not need to scan it.
13967
13968         * reflection.c: Double the allocation size in streams instead of
13969         increasing it, to prevent unneccesary copying on large assemblies.
13970         
13971         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
13972         creation if the assembly does not have the Run flag set.
13973
13974 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
13975
13976         * class.h: avoid the C++ keywords in header files (Jerome Laban
13977         spotted and fixed this).
13978
13979 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13980
13981         * object.c:
13982         (mono_unhandled_exception): fill in the arguments for the
13983         UnhandledException event. Only trigger that event for the default
13984         domain (as MS does).
13985
13986 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
13987
13988         * object.c: Improve typed allocation stuff based on suggestions from
13989         Paolo. Also turn it on if the GC library supports it.
13990
13991 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
13992
13993         * object.c object.h class.h: Added experimental typed allocation
13994         facility using the interfaces in gc_gcj.h.
13995
13996         * os/gc_wrapper.h: Added new include files.
13997         
13998 2003-04-03  Martin Baulig  <martin@ximian.com>
13999
14000         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14001         which is not yet enabled by default.
14002
14003         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14004         functions.
14005         (mono_gc_lock, mono_gc_unlock): New static functions.
14006
14007         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14008         functions; stop/start the world for the garbage collector.  This
14009         is using the windows API; we need to complete the SuspendThread()/
14010         ResumeThread() implementation in the io-layer to make this work on Unix.
14011         (mono_gc_push_all_stacks): New public function; tells the garbage
14012         collector about the stack pointers from all managed threads.
14013
14014 2003-04-03  Martin Baulig  <martin@ximian.com>
14015
14016         * object.h (MonoThread): Added `gpointer stack_ptr'.
14017
14018         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14019
14020 2003-04-03  Martin Baulig  <martin@ximian.com>
14021
14022         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14023
14024 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14025
14026         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14027         field.last.
14028
14029 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14030
14031         * loader.c (mono_lookup_internal_call): Report the corlib that is
14032         out of sync.
14033
14034 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14035
14036         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14037         System.DBNull (it's class not valuetype).
14038
14039 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14040
14041         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14042         if the array method was already assigned a token (fixes bug#40646).
14043
14044 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14045
14046         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14047         if no assembly is given.
14048
14049 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14050
14051         * metadata.h: Added the new tables.
14052
14053         * row-indexes.h: Added definitions for new tables.
14054
14055         * metadata.c: Add schemas for new tables, and add support for
14056         computing the sizes of them.
14057
14058         * class.c: Update for handling the new type cases.
14059
14060 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14061
14062         * metadata.h (MONO_TYPE_IS_VOID): new macro
14063
14064 2003-03-31  Martin Baulig  <martin@ximian.com>
14065
14066         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14067
14068         * threads.c (mono_thread_new_init): Call `thread_created' in the
14069         mono_thread_callbacks.
14070
14071 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14072
14073         * loader.h: added marshalbyrefobject_class to mono_defaults
14074         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14075         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14076           generation of output parameters.
14077           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14078         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14079           contextbound and the target object belongs to the context of the caller.
14080         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14081         * object.c: Implemented support for interfaces and abstract classes
14082           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14083           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14084
14085 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14086
14087         * class.h class.c (mono_class_is_subclass_of): New function.
14088         
14089         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14090         routines for most common case (calls from ArrayList::ToArray).
14091
14092         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14093         routine so programs which call Environment::Exit() can be profiled.
14094
14095         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14096         Added MONO_ARCH_SAVE_REGS.
14097
14098         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14099
14100 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14101
14102         * blob.h: Add a couple of new MonoType types definitions.
14103
14104         * tabledefs.h: Add a couple of new call convs.
14105
14106 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14107
14108         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14109         the layout of the class.
14110
14111         * reflection.c (alloc_table): double the size on overflow to avoid
14112         unnecessary copying.
14113
14114         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14115         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14116         null so it can be garbage collected.
14117         
14118 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14119
14120         * reflection.c (mono_reflection_get_type): Return the resolved type
14121         only if it is in the assembly we searched.
14122
14123         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14124
14125         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14126         method.
14127
14128 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14129
14130         * appdomain.c:
14131         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14132         the right one is 'file:///blah', but MS allows it.
14133         * assembly.c:
14134         (mono_assembly_open): allow 'file://blah'
14135
14136         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14137
14138 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14139
14140         * socket-io.c: fixes bug #40310.
14141
14142 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14143
14144         * reflection.c (mono_reflection_parse_type): handle deeply nested
14145         types correctly.
14146
14147         * reflection.c (mono_image_create_token): Use unique token values
14148         since they will be put into a hash table.
14149
14150         * class.c (mono_class_setup_vtable): If a method occurs in more than
14151         one place in the vtable, and it gets overriden, then change the
14152         other occurances too.
14153
14154         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14155         object as return type.
14156
14157 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14158
14159         * icall.c: Deleted "ToString" implementation for double and float
14160         because they are full implemented in managed code.
14161
14162 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14163
14164         * reflection.c, reflection.h: implemented and exported functions
14165         to retrieve info about custom attributes.
14166
14167 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14168
14169         * appdomain.c: moved Uri handling to assembly.c
14170         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14171         work when using a file Uri in *nix and windows.
14172
14173         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14174         GetReferencedAssemblies.
14175
14176 2003-03-18  Dick Porter  <dick@ximian.com>
14177
14178         * icall.c: Rename a couple of internal calls
14179
14180         * threads.c: Set the thread state to Stopped when a thread exits.
14181         Fixes bug 39377.
14182
14183 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14184
14185         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14186         New icall.
14187
14188         * object.c (mono_class_vtable): fix warning.
14189
14190 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14191
14192         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14193
14194         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14195         memory.
14196         (method_encode_clauses): Create exception info structures in the right
14197         order.
14198         (mono_reflection_setup_internal_class): Initialize supertypes field.
14199
14200         * class.c object.c: Handle interfaces which implement other interfaces 
14201         correctly.
14202
14203         * class.h class.c: Move the supertypes array initialization code into 
14204         a separate function so it can be used for dynamic types too. Also call
14205         it earlier, in mono_class_init(), since it can be used before the
14206         type is initialized.
14207
14208 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14209
14210         * Makefile.am:
14211         * assembly.c:
14212         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14213
14214         * appdomain.c:
14215         * appdomain.h:
14216         * marshal.c:
14217         * object.c: remove warnings.
14218
14219 2003-03-13  Martin Baulig  <martin@ximian.com>
14220
14221         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14222         (MonoDebugLexicalBlockEntry): New types.
14223
14224         * debug-mono-symfile.c
14225         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14226
14227 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14228
14229         * process.c: ret can be any non-zero value accroding to MS doc.
14230
14231 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14232
14233         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14234         fixing a warning for a miss-used prototype, would have cause
14235         random memory corruption.
14236
14237 2003-03-07  Martin Baulig  <martin@ximian.com>
14238
14239         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14240         getting really annoying ....
14241
14242 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14243
14244         * reflection.c (fixup_method): added support for array methods.
14245
14246 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14247
14248         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14249         (pointed out by Michael Adams).
14250
14251 2003-03-04  Dick Porter  <dick@ximian.com>
14252
14253         * icall.c: Temporarily reverted the Double and Single ToString()
14254         change, because it broke nunit.
14255
14256 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14257
14258         * object.h, threads.h: make include files compatible with C++
14259         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14260
14261 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14262
14263         * icall.c: Erased ToString helper functions for Double and Single.
14264         Now, that implementations ar all in managed code (Double and Single
14265         Formatters).
14266
14267 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14268
14269         * appdomain.c: Added method for initializing the default context of
14270         a domain. Added internal call for getting the default context.
14271         * appdomain.h: Added context variable in MonoDomain struct.
14272         * domain.c: mono_domain_set also sets the default context of the domain
14273         * icall.c: Mapped internal method InternalGetDefaultContext.
14274         * object.c: mono_object_get_virtual_method returns always a remoting
14275         wrapper if the object is a transparent proxy.
14276         mono_runtime_invoke_array: when creating an object by calling the
14277         constructor, if the created object is a proxy, then the constructor should
14278         be called using the a remoting wrapper.
14279
14280 2003-03-03  Dick Porter  <dick@ximian.com>
14281
14282         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14283         variable so it compiles on solaris.  Problem spotted by
14284         Christopher Taylor <ct@cs.clemson.edu>
14285
14286 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14287
14288         * appdomain.c:
14289         (get_info_from_assembly_name): don't leak value.
14290
14291         * icall.c:
14292         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14293         result.
14294
14295 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14296
14297         * assembly.c: export mono_image_load_references ().
14298         * class.c: handle function pointers. mono_class_from_name() now
14299         supports nested type names directly.
14300
14301 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14302
14303         * reflection.h reflection.c: Encode already created dynamic methods 
14304         and fields correctly as a DEF instead of a REF.
14305
14306         * reflection.c: Get rid of the force_ref argument to 
14307         mono_image_typedef_or_ref since it was wrong in the first place.
14308
14309         * string-icalls.c: add error checking to string constructors according
14310         to the MSDN docs.
14311
14312         * reflection.c: Emit types in the order their TypeBuilders were 
14313         created. Previously, a new table index was assigned to each type before
14314         the tables were emitted. This was wrong because the signature blob
14315         might already refer to a type by its original table index.
14316
14317 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14318
14319         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14320         change.
14321         
14322 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14323
14324         * Makefile.am: make assemblies dir have \ instead of / on windows.
14325
14326 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14327
14328         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14329         iterate over the NESTEDCLASS table using a linear search since the
14330         table is not guaranteed to be sorted by the secondary key.
14331
14332         * class.c (mono_class_create_from_typedef): fixed up call to
14333         mono_metadata_nesting_typedef.
14334         
14335 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14336
14337         * marshal.c (mono_string_to_byvalstr): clear the memory as
14338         suggested by Jerome Laban <jlaban@wanadoo.fr>
14339
14340 2003-02-26  Dick Porter  <dick@ximian.com>
14341
14342         * process.c: Cope with padding in .rsrc blocks
14343
14344 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14345
14346         * metadata.h: reverted the filter_len change, it breaks reflection
14347         
14348 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14349
14350         * metadata.h: added a new field to store the filter_len
14351         
14352
14353 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14354
14355         * reflection.c: handle custom attributes for types and members
14356         created with Reflection.Emit (bug#38422).
14357
14358 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14359
14360         * reflection.c: define RTSpecialName automatically for constructors for
14361         compatibility with MS.NET.
14362
14363         * reflection.c (mono_reflection_create_runtime_class): initialize
14364         nested_in field of dynamically created classes.
14365
14366 2003-02-22  Martin Baulig  <martin@ximian.com>
14367
14368         * debug-mono-symfile.h: Incremented version number.
14369
14370 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14371
14372         * object.h icall.c process.c: fix warnings.
14373
14374 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14375
14376         * appdomain.h appdomain.c:
14377         (mono_domain_try_type_resolve): split the 
14378         name_or_tb argument into a name and a tb argument.
14379         (mono_domain_has_type_resolve): new function to check whenever the
14380         application has registered a TypeResolve event handler.
14381         
14382         * icall.c reflection.h reflection.c: move the type resolve logic into
14383         mono_reflection_get_type () so it will be invoked when 
14384         Assembly::GetType () is called.
14385
14386         * reflection.c:
14387         (mono_reflection_get_type): renamed to get_type_internal.
14388         (mono_reflection_get_type): fixed type name generation so it works 
14389         for nested types too.
14390         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14391         costly type name generation if there is no resolve event handler.
14392
14393 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14394
14395         * class.c, image.c: load exported types from file references.
14396
14397 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14398
14399         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14400           used to cache the managed methods used to create proxies and make 
14401           remote invocation of methods.
14402         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14403           to be remotely created.
14404         * object.c: Modified the method mono_class_vtable(). It now initializes 
14405           the remote flag of the vtable. Modified mono_object_new_specific(), 
14406           so now it checks the remote flag.
14407         * icall.c: Added a couple of internal methods, one for enabling instance 
14408           creation interception for a type, and one for creating objects bypassing
14409           the remote check.
14410
14411 2003-02-18  Martin Baulig  <martin@ximian.com>
14412
14413         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14414         New interncall to get a method's metadata token.
14415
14416         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14417         New interncall for the debugger.
14418
14419 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14420
14421         * class.c (mono_class_setup_vtable): allocate supertype array
14422
14423 2003-02-18  Martin Baulig  <martin@ximian.com>
14424
14425         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14426
14427 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14428
14429         * reflection.c:
14430         (assembly_name_to_aname): jump over unknown properties (i've found
14431         something like: 'type, assembly, version=xxx, custom=null, public...',
14432         so now will ignore custom=null and still get the rest of the values).
14433
14434 2003-02-17  Dick Porter  <dick@ximian.com>
14435
14436         * threads.c: Have Thread.Start() wait for a semaphore to signal
14437         that the thread has set up all its local data.  This fixes bug
14438         34323, where Abort() raced the new thread's TLS data.
14439
14440         Also removes the handle_store() call from start_wrapper, because
14441         threads are now always created suspended and there is no longer a
14442         race between the parent and child threads to store the info.
14443
14444 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14445
14446         * image.c: explain the #- heap issue in a message, hopefully
14447         avoiding FAQs on mono-list.
14448
14449 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14450
14451         * icall.c:
14452         (GetEntryAssembly): if the domain has not invoked
14453         AppDomain.ExecuteAssembly yet, return the assembly of the default
14454         AppDomain.
14455
14456 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14457
14458         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14459
14460 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14461
14462         * metadata.c, reflection.c: simple speedup to type hash
14463         and equals code.
14464
14465 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14466
14467         * image.c, image.h, class.c, assembly.c: move module loading
14468         to MonoImage. When loading metadata, consider alignemnet from
14469         the start of metadata, not from the metadata address in memory.
14470
14471 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14472
14473         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14474         AssemblyBuilder objects. Factored out custom attribute creation into
14475         a separate function.
14476         (create_custom_attr): new function to create custom attributes.
14477
14478 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14479
14480         * Makefile.am: Got tired of typing the full pathname to pedump.
14481         Until there is another option, am installing this.
14482
14483 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14484
14485         * class.c (class_compute_field_layout): always set field->parent 
14486         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14487
14488 2003-02-11  Dick Porter  <dick@ximian.com>
14489
14490         * threads-types.h:
14491         * monitor.c: Rewrote Monitor, making lock much faster and
14492         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14493         creates them as needed.
14494
14495         * exception.c: Added SynchronizationLockException
14496
14497         * threads.c: Deleted old Monitor implementation.  The new one is
14498         in a new file.
14499
14500 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14501
14502         * class.c: handled TypedReference type code. Set the correct size for
14503         class data. Setup interface_offsets for interface classes, too.
14504
14505 2003-02-09  Martin Baulig  <martin@ximian.com>
14506
14507         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14508
14509 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14510
14511         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14512         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14513         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14514         * verify.c: check for code that runs after the end of the method.
14515
14516 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14517
14518         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14519         "System.Math::Round2".
14520         * sysmath.h: Added Floor, Round and Round2 definitions.
14521         * sysmath.c: Modified certain functions that were not 100% compliant
14522         with MS.NET (math precision) and added the implementation of Floor,
14523         Round and Round2.
14524
14525 2003-02-07  Martin Baulig  <martin@ximian.com>
14526
14527         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14528
14529 2003-02-07  Martin Baulig  <martin@ximian.com>
14530
14531         * debug-mono-symfile.c: Reflected latest symwriter changes.
14532         (mono_debug_create_mono_symbol_file): Removed.
14533         (mono_debug_open_mono_symbol_file): Take an argument which
14534         specifies whether to create a dynamic symbol file.
14535
14536 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14537
14538         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14539
14540 2003-02-05  Martin Baulig  <martin@ximian.com>
14541
14542         * reflection.c (mono_image_build_metadata): Make this public,
14543         protect it against being called multiple times, don't create
14544         resources and don't build the compressed metadata here.
14545         (mono_image_create_pefile): Do this here.
14546
14547         * icall.c
14548         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14549
14550 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14551
14552         * socket-io.c: fixed bug #36322.
14553
14554 2003-02-06  Piers Haken <piersh@friskit.com>
14555
14556         * appdomain.[ch]:
14557         * class.h:
14558         * debug-mono-symfile.c:
14559         * icall.c:
14560         * loader.c:
14561         * mono-config.c:
14562         * monosn.c:
14563         * reflection.c:
14564         * socket-io.c: warning cleanups
14565
14566 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14567
14568         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14569         function. works like remoting invoke, but does a check for the Proxy first.
14570
14571 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14572
14573         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14574
14575 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14576
14577         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14578         array of pointers.
14579         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14580         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14581
14582         * object.c (mono_store_remote_field_new): used by the new jit
14583         instead of mono_store_remote_field
14584         (mono_load_remote_field_new): used by the new jit
14585         instead of mono_load_remote_field
14586
14587 2003-02-05  Patrik Torstensson
14588
14589         * appdomain.c: changed unload to take the domain id instead
14590         of domain
14591         
14592         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14593
14594
14595 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14596
14597         * appdomain.c: don't look for assemblies in ApplicationBase if
14598         PrivateBinPathProbe is set.
14599
14600 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14601
14602         * object.c: make the first argument in main_args contain the absolute
14603         path to the assembly. Fixes bug #37511.
14604
14605 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14606
14607         * icall.c: get correct UTC offset for countries not using daylight
14608         time saving. Fixes bug #30030.
14609
14610 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14611
14612         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14613         and 1 are the family).
14614
14615 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14616
14617         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14618
14619         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14620
14621 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * reflection.c: added support for SignatureHelper tokens, which is
14624         needed by the Calli opcode.
14625
14626         * reflection.h: track changes to SignatureHelper class.
14627
14628         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14629
14630 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14631
14632         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14633
14634 2003-02-03  Patrik Torstensson
14635         * appdomain.[c|h], domain.c : 
14636          - Added support for getting a domain via domain id
14637          - Support for setting and getting domain from System.AppDomain 
14638            (used in cross appdomain channel)
14639          - Added support for get/set for a MonoAppContext on a thread 
14640            (Context class in System.Runtime.Remoting.Contexts),
14641          - Removed hack in Get/SetData and ExecuteAssembly.
14642         
14643         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14644         the managed world to get control when a proxy is created.
14645
14646         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14647         
14648 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14649
14650         * icall.c
14651         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14652         Populate the codebase field as well.
14653
14654 2003-02-02  Martin Baulig  <martin@ximian.com>
14655
14656         * debug-mono-symfile.c
14657         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14658         (mono_debug_symfile_add_method): Allow interncalls.
14659
14660 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14661
14662         * icall.c: throw parse exception if strtod fails or the string is empty.
14663
14664 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14665
14666         * marshal.c: handle object type separately from defined
14667         class types.
14668
14669 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14670
14671         * marshal.c: handle NATIVE_LPSTR for strings when it's
14672         explicitly specified.
14673
14674 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14675
14676         * reflection.c, reflection.h, icall.c: setup the reflection
14677         handle cache for ModuleBuilders and AssemblyBuilders.
14678
14679 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
14680
14681         * reflection.c (reflection_methodbuilder_to_mono_method): set
14682         pinvoke flag
14683
14684 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14685
14686         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
14687
14688 2003-01-29  Dick Porter  <dick@ximian.com>
14689
14690         * threads.c: No need for the fake_thread kludge now that Thread
14691         doesn't run a class constructor
14692         
14693 2003-01-29  Dick Porter  <dick@ximian.com>
14694
14695         * threads.c: Use g_direct_hash instead of the rather bogus
14696         g_int_hash
14697
14698 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
14699
14700         * marshal.c (mono_marshal_get_native_wrapper): add check for null
14701         (fix pinvoke12.exe)
14702         (mono_marshal_get_struct_to_ptr): generate valid IL code
14703         (mono_marshal_get_ptr_to_struct): generate valid IL code
14704         (*): correctly set sig->pinvoke, we need to memdup the signature
14705         to do that
14706
14707 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14708
14709         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
14710         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
14711
14712 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14713
14714         * profiler.c: provide more callers information.
14715
14716 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
14717
14718         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
14719
14720         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
14721
14722         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
14723
14724 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14725
14726         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
14727         exception instead of going into an infinite loop on dates which it 
14728         can't yet handle.
14729
14730         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
14731         out-of-range exception if needed.
14732
14733         * class.c (mono_class_setup_vtable): allow a virtual method to provide
14734         an implementation for an interface method and to override an inherited
14735         method at the same time. 
14736         Imagine a scenario when a virtual method is used to override a
14737         virtual abstract method in a parent class, and this same method 
14738         provides an implementation for an method inherited from an interface. 
14739         In this case, the interface resolution code will set im->slot, which 
14740         means that the virtual method override pass will skip this method 
14741         which means a pointer to the abstract method inherited from the parent
14742         will remain in the vtable of this non-abstract class.
14743
14744         * class.c: (mono_class_setup_vtable): continue search for a real 
14745         method if only an abstract method is found.     
14746
14747 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14748
14749         * reflection.c: add size to encoding for ByValStr and ByValArray
14750         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
14751
14752 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14753
14754         * class.c (mono_class_setup_vtable): pass the override info as an
14755         argument.
14756
14757         * class.c (mono_class_setup_vtable): set the slot of overriding methods
14758         correctly.
14759         
14760         * reflection.c (ensure_runtime_vtable); add support for method 
14761         overrides.
14762         
14763 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14764
14765         * reflection.c (resolution_scope_from_image): Hack to work to work with
14766         dynamic assemblies.
14767
14768         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
14769         added a 'force_ref' argument to force this function to allways return 
14770         a TypeRef. This is needed by mono_image_get_memberref_token ().
14771         
14772 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14773
14774         * reflection.c (mono_image_get_type_info): interfaces really don't have
14775         a parent.
14776
14777         * reflection.c (mono_image_basic_init): fill out missing fields of
14778         image structure.
14779
14780         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
14781         dynamic assemblies. This is required so dynamic assemblies show up in
14782         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
14783         Type::GetType() etc. This is consistent with MS behaviour.
14784
14785         * image.c image.h reflection.c: add newly created classes to the name 
14786         cache so mono_class_get () will find them.      
14787
14788 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14789
14790         First part of changes to get IKVM.NET running under mono.
14791         
14792         * appdomain.h, appdomain.c: added new function 
14793         mono_domain_try_type_resolve() which will emit TypeResolve events. 
14794         This function will call AppDomain::DoTypeResolve to do the actual work.
14795
14796         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
14797         moved existing code dealing with dynamic tokens to a new function 
14798         called mono_reflection_lookup_dynamic_token (). This function will 
14799         raise TypeResolve events when appropriate. Since reflection.c is not 
14800         part of libmetadata, a new hook function called 
14801         mono_lookup_dynamic_token() is added to class.c which will call this.
14802
14803         * assembly.h assembly.c: make the invoke_load_hook function public,
14804         so it can be called for dynamic assemblies.
14805
14806         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
14807
14808         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
14809         type isn't found.
14810
14811         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
14812         MonoGHashTable, since it contains pointers to objects which the GC 
14813         needs to track.
14814
14815         * assembly.c (search_loaded): remove unused variable.
14816         
14817 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
14818
14819         * object.c: fixed issue exposed by gcc-generated IL programs
14820         that use RVA data for pointers.
14821
14822 2003-01-25  Martin Baulig  <martin@ximian.com>
14823
14824         * threads.c (start_wrapper): Moved the initialization of
14825         `start_func' above the mono_new_thread_init() call to which we
14826         pass it as argument.
14827
14828 2003-01-24  Martin Baulig  <martin@ximian.com>
14829
14830         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
14831         the MonoThread pointer.
14832
14833 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
14834
14835         * icall.c: Rename `PowImpl' to Pow.
14836
14837 2003-01-23  Dick Porter  <dick@ximian.com>
14838
14839         * threads.c (start_wrapper): Create a Thread object if needed, so
14840         the Main() thread can do the class initialisation in a subthread
14841         that has been set up to allow managed code execution.
14842
14843         Pass the thread ID instead of the MonoThread pointer to the thread
14844         start and attach callbacks.  This change is required, because the
14845         jit thread start callback must be called _before_ the Thread
14846         object can be created.
14847         
14848         (mono_thread_init): Removed much object creation code that is no
14849         longer needed.  No managed code is called from here now.
14850
14851         * object.c (mono_runtime_exec_managed_code): Create a subthread
14852         for Main, and call back to the runtime to use it.
14853         Set the exit code when Main exits.
14854
14855         * gc.c: Make sure domain finalisation happens in a subthread.
14856         Re-enable threaded GC, fixing bug 31333 (again).
14857
14858         * environment.c: System.Environment internall calls (so far just
14859         ExitCode is here, the others are still in icall.c)
14860
14861         * appdomain.c (mono_runtime_cleanup): All threads running managed
14862         code should have finished before mono_runtime_cleanup() is
14863         reached, so no need to clean up threads.
14864
14865 2003-01-22  Martin Baulig  <martin@ximian.com>
14866
14867         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
14868         `gpointer func' arguments.      
14869         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
14870         but added `MonoThread *thread' argument.
14871         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
14872
14873         * threads.c (mono_new_thread_init): Added `gpointer func' argument
14874         and pass it to the mono_thread_start_cb callback.
14875         (mono_install_thread_callbacks): New public function to install a
14876         set of callbacks which are set by the debugger.
14877         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
14878
14879 2003-01-22  Martin Baulig  <martin@ximian.com>
14880
14881         * Makefile.am: Install debug-mono-symfile.h.
14882
14883 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
14884
14885         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
14886
14887 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
14888
14889         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
14890         * class.c (mono_ptr_class_get): correctly set access levels of pointers
14891         (mono_array_class_get): correctly set access levels of arrays
14892
14893 2003-01-20      Patrik Torstensson
14894         * image.h (MonoAssemblyName): changed major, minor, build, revision
14895         from signed to unsigned.
14896
14897 2003-01-20  sean kasun <skasun@azstarnet.com>
14898
14899         * reflection.c (load_cattr_value): Now this handles
14900         MONO_TYPE_SZARRAY.  Fixes bug #35629
14901
14902 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
14903
14904         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
14905         integer value
14906
14907 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14908
14909         * decimal.c: fixed bug #26056.
14910
14911 2003-01-17  Martin Baulig  <martin@ximian.com>
14912
14913         * gc.c: Raise an ExecutionEngineException instead of using g_error().
14914
14915 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14916
14917         * exception.[ch]:
14918         (mono_get_exception_type_initialization): new function.
14919
14920         * object.c: throw a TypeInitializationException when an exception is
14921         thrown invoking the class constructor.
14922
14923 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14924
14925         * reflection.c: fixed attribute reading.
14926
14927 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14928
14929         * icall.c:
14930         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
14931         provided, look for the type in the calling assembly and then in
14932         mscorlib; if the assembly name is provided, only try that one.
14933
14934 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
14935
14936         * object.c: register the vtable before there is a chance it's
14937         queried again recursively.
14938
14939 2003-01-13  Duncan Mak  <duncan@ximian.com>
14940
14941         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
14942         gc-internal.h. 
14943         
14944 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
14945
14946         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
14947
14948 2003-01-11  Martin Baulig  <martin@ximian.com>
14949
14950         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
14951         this to 20 for the release.
14952
14953 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
14954
14955         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
14956
14957         * loader.c (mono_method_get_marshal_info): bug fix
14958
14959         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
14960         structures with explicit layout
14961
14962 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
14963
14964         * profiler.c: made the output more readable (and sorted). 
14965         Added caller information for the allocation profiler.
14966
14967 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
14968
14969         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
14970
14971 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14972
14973         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
14974         to get value types.
14975         
14976 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
14977
14978         * object.c, profiler.h, profiler.c, profiler-private.h:
14979         Added object allocation profiler.
14980
14981 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
14982
14983         * reflection.h, reflection.c: handle global methods.
14984         Compress blob entries.
14985
14986 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
14987
14988         * marshal.c: fix compilation.
14989
14990 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
14991
14992         * loader.c (mono_method_get_marshal_info): impl.
14993
14994         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
14995
14996 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14997
14998         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
14999         for reference types.
15000
15001 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15002
15003         * loader.c: fixed off by one error in loaded parameter names.
15004
15005 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15006
15007         * marshal.c (mono_marshal_get_icall_wrapper): like
15008         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15009         instead of a MonoMethod.
15010
15011 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15012
15013         * decimal.c: fixed bug #36537.
15014
15015 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15016
15017         * marshal.c: throw a missing method exception if a
15018         P/Invoke method is not found.
15019
15020 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15021
15022         * icall.c: allow a null this for constructors.
15023
15024 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15025
15026         * icall.c: raise the proper exceptions if the arguments to the
15027         internal Invoke are incorrect.
15028
15029 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15030
15031         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15032
15033 2003-01-03  Martin Baulig  <martin@ximian.com>
15034
15035         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15036
15037 2002-12-31  Martin Baulig  <martin@ximian.com>
15038
15039         * debug-mono-symfile.c: Completely rewrote the type section.
15040         Instead of using individual malloc()ed fields, we use one big
15041         continuous memory area and offsets into this area.
15042         See the comments in the source code for details.
15043
15044 2002-12-30  Martin Baulig  <martin@ximian.com>
15045
15046         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15047
15048 2002-12-30  Martin Baulig  <martin@ximian.com>
15049
15050         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15051         line number table in this data blob instead of using an external
15052         pointer.
15053
15054 2002-12-28  Martin Baulig  <martin@ximian.com>
15055
15056         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15057
15058 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15059
15060         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15061         as a boxed return type.
15062
15063 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15064
15065         * appdomain.c
15066         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15067         g_build_filename to properly get separators on the filename created.
15068
15069         * object.h: Small change, introduce MonoMarshalByRefObject to
15070         track the layout of that structure in the C# universe as we make
15071         changes there.
15072
15073 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15074
15075         * object.c: removed assert to allow static fields on interfaces.
15076         * loader.c: a TypeSpec may be used for any type, not just arrays.
15077
15078 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15079
15080         * class.c, class.h: added mono_class_array_element_size ().
15081         Ignore static methods in interfaces.
15082
15083 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15084
15085         * threads.c: fixed the build under cygwin.
15086
15087 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15088
15089         * reflection.c: handle nullref constants. Allocate keys for
15090         reflection handles with the GC.
15091
15092 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15093
15094         * threads.c, threads.h: added mono_thread_get_abort_signal()
15095         to get a suitable signal for thread abort.
15096
15097 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15098
15099         * metadata.c: fix handling of ExportedType table.
15100
15101 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15102
15103         * icall.c: added WriteWindowsDebugString internal call.
15104
15105 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15106
15107         * reflection.h: added fields to match C# implementation.
15108
15109 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15110
15111         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15112
15113 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15114
15115         * gc.h, gc-internal.h: Rename header for GC internal calls to
15116         gc-internal.h from gc.h as to not clash with Boehm GC having its
15117         header installed as <gc.h> in outside include paths.
15118         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15119         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15120
15121 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15122
15123         * icall.c: assign minor, build and revision in FillName.
15124
15125 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15126
15127         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15128         Added support for running code generated by Reflection.Emit.
15129
15130 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15131
15132         * appdomain.c: check for NULL argument in LoadFrom.
15133
15134 2002-12-10  Dick Porter  <dick@ximian.com>
15135
15136         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15137
15138 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15139
15140         * appdomain.c: fix buglet when building exe file name.  Handle full
15141         assembly name (needed after latest changes to AssemblyName).
15142         * image.c:
15143         (mono_image_close): free some hashtables.
15144
15145 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15146
15147         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15148         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15149         on some systems (redhat 7.3) 
15150
15151 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15152
15153         * threads.c: delete the critical section of a sync block,
15154         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15155
15156 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15157
15158         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15159
15160 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15161
15162         * appdomain.[ch]: handle the assembly preload event to try loading the
15163         assemblies using the paths we have in the current domain.
15164
15165         * assembly.[ch]: created an assembly preload hook that is called to try
15166         loading the assembly by other means that the ones provided here.
15167
15168         * domain.c: initialize the domain search path.
15169
15170         From now on, assemblies (TODO: except corlib and System) are loaded
15171         according to these rules when using mono_assembly_load ():
15172
15173                 1. It tries to load the assembly from the ApplicationBase
15174                 of the current domain appending .dll and .exe (TODO: have to
15175                 try loading from name/name.dll and name/name.exe).
15176
15177                 2. It tries the search path specified in PrivateBinPath for the
15178                 current domain (if any).
15179
15180                 3. Previous behavior.
15181
15182 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15183
15184         * icall.c: implemented GetInterfaceMap() related icall.
15185         * domain.c, loader.h: load MethodInfo in mono_defaults.
15186
15187 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15188
15189         * gc.c: disable the finalizer thread for now, untill all the issues
15190         with it are resolved.
15191
15192 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15193
15194         * string-icalls.c: handle embedded nulls in string ctor when the
15195         length is specified.
15196
15197 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15198
15199         * class.c: look for explicit interface implementation in parent
15200         classes, too.
15201
15202 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15203
15204         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15205
15206 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15207
15208         * gc.c: protect handles with a critical section.
15209
15210 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15211
15212         * icall.c:
15213         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15214         parameters. If no assembly specified, try getting the type from all
15215         the assemblies in the current domain, else, load the assembly and get
15216         the type from it.
15217
15218 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15219
15220         * marshal.c: applied patch from Aleksey Demakov that fixes
15221         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15222
15223 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15224
15225         * icall.c: fixed get_location.
15226
15227 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15228
15229         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15230         declarations to make it work with older gcc. 
15231
15232         * loader.c (mono_get_method): set signature->pinvoke for native calls
15233
15234 2002-11-20  Dick Porter  <dick@ximian.com>
15235
15236         * threads.c (mono_thread_init): Set the main thread's handle
15237
15238 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15239
15240         * gc.c: allow compilation without GC support. Changed to match the
15241         mono coding style.
15242
15243 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15244
15245         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15246
15247 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15248
15249         * reflection.c: set a public key token on the core assemblies.
15250
15251 2002-11-18  Dick Porter  <dick@ximian.com>
15252
15253         * threads.c: Split out some thread initialisation so that other
15254         files can set the start callback function.
15255
15256         * gc.c: Run finalisers in a separate thread, to avoid stack
15257         overflow.  Fixes bug 31333.
15258
15259         * appdomain.c: Set up GC finalisation thread.
15260
15261         * reflection.c: 
15262         * object.c: 
15263         * domain.c: Use gc.h macros for GC_malloc
15264         
15265 2002-11-15  Dick Porter  <dick@ximian.com>
15266
15267         * threadpool.c: 
15268         * threads.c:
15269         * appdomain.c: Removed mono_runtime_init_with_attach(),
15270         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15271         merging the extra parameter with the existing function.  Removed
15272         unneeded code in mono_thread_attach().
15273
15274 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15275
15276         * image.c (mono_image_loaded_by_guid): a method to get loaded
15277         images by guid. 
15278         (load_metadata_ptrs): we store the guid as string.
15279
15280 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15281
15282         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15283
15284         * metadata.c (mono_guid_to_string): imported method form Zoltan
15285         Varga (slightly modified)
15286
15287         * assembly.c (mono_assembly_open): load precompiled code
15288
15289         * loader.h (MonoMethod): we store the method token for use in the
15290         aot compiler. 
15291
15292 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15293
15294         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15295         the hook function called when an assembly is loaded.
15296         
15297         * domain.c: Modified file.
15298         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15299
15300         Fixes bug #33196.
15301
15302 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15303
15304         * reflection.c: Map PEFileKind to the value expected by the WinNT
15305         image loader. 
15306
15307 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15308
15309         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15310         Read until the buffer is filled completely.
15311
15312 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15313
15314         * icall.c: implemented MonoType.InternalGetEvent ().
15315
15316 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15317
15318         * appdomain.c: implemented InitAppDomainSetup. Delayed
15319         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15320         the entry_assembly.
15321
15322         * assembly.c: base_dir is now an absolute path ending with
15323         G_DIR_SEPARATOR.
15324
15325         * icall.c: modified get_location according to the above changes.
15326
15327         * object.c: init AppDomain.SetupInformation for the default domain after
15328         we have the entry assembly.
15329
15330         * domain.c: when unloading a domain, setup = NULL.
15331
15332 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15333
15334         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15335
15336 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15337
15338         * object.h, object.c: introduced mono_object_get_virtual_method ()
15339         to lookup the method invoked on an object when a callvirt is done on
15340         a method.
15341         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15342
15343 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15344
15345         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15346         current domain when loaded an assembly and failed to load it.
15347
15348         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15349
15350 2002-10-31  Dick Porter  <dick@ximian.com>
15351
15352         * icall.c: 
15353         * file-io.h: 
15354         * file-io.c: Return the error status in a parameter, as the
15355         GetLastError() value has long since been blown away if we try and
15356         look it up in a subsequent internal call invocation.  Delete the
15357         GetLastError() internal call, because it's useless.
15358
15359 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15360
15361         * class.[ch]: added cast_class to fix bug 29517
15362
15363 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15364
15365         * marshal.c: create valid IL code in the filter clause:
15366         the new JIT is less forgiving:-)
15367
15368 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15369
15370         * icall.c: removed get_property internal call.
15371
15372 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15373
15374         * appdomain.h domain.c: Added an ID to appdomains.
15375         
15376         * threads.c threads.h icall.c: Implement icall
15377         Thread:GetDomainID(), and remove unused icall 
15378         CurrentThreadDomain_internal.
15379
15380 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15381
15382         * icall.c: Don't recurse through the base types in GetConstructor.
15383         Fixes bug #32063. 
15384
15385 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15386
15387         * mempool.h, mempool.c: added mono_mempool_empty() and
15388         mono_mempool_stats().
15389
15390 2002-10-23  Dick Porter  <dick@ximian.com>
15391
15392         * file-io.c: 
15393         * file-io.h: 
15394         * icall.c: Added MonoIO.GetFileType internal call
15395
15396 2002-10-17  Dick Porter  <dick@ximian.com>
15397
15398         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15399         delegate semaphore before waiting for all threads to finish,
15400         because new threads can also call async delegates.  Fixes bug
15401         32004.
15402
15403         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15404         of 3 seconds, in case another async job is queued.  (This part is
15405         needed because the bug fix reintroduced the 3s exit lag.)  This
15406         makes the mono_runtime_shutdown flag superfluous.
15407
15408 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15409
15410         * reflection.c: include ehader size in method section headers.
15411         Really check for suplicated modules entries.
15412
15413 2002-10-17  Martin Baulig  <martin@gnome.org>
15414
15415         * debug-mono-symfile.c: Added back support for locals.
15416
15417 2002-10-14  Martin Baulig  <martin@gnome.org>
15418
15419         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15420         MONO_TYPE_VOID.
15421
15422 2002-10-14  Martin Baulig  <martin@gnome.org>
15423
15424         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15425         mono_class_get() instead of looking in the class cache. 
15426
15427 2002-10-13  Martin Baulig  <martin@gnome.org>
15428
15429         * debug-mono-symfile.c: Set version number to 28, include the
15430         signature in method names.
15431
15432 2002-10-13  Martin Baulig  <martin@gnome.org>
15433
15434         * debug-mono-symfile.h: Set version number to 27.
15435
15436 2002-10-11  Martin Baulig  <martin@gnome.org>
15437
15438         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15439
15440 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15441
15442         * metadata.c, metadata.h: added helper function to allocate signatures.
15443
15444 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15445
15446         * icall.c: added internal call to get the location of machine.config.
15447
15448 2002-10-08  Martin Baulig  <martin@gnome.org>
15449
15450         * debug-mono-symfile.c: Ignore classes with a pending init for the
15451         moment.
15452
15453 2002-10-03  Dick Porter  <dick@ximian.com>
15454
15455         * threads.c: Freebsd pthread_t is a pointer
15456
15457 2002-10-03  Dick Porter  <dick@ximian.com>
15458
15459         * socket-io.c: Implemented GetHostName_internal
15460
15461 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15462
15463         * mono-config.c:
15464         (mono_config_parse_file): don't leak the text.
15465
15466 2002-10-02  Martin Baulig  <martin@gnome.org>
15467
15468         * debug-mono-symfile.c: Added support for methods.
15469
15470 2002-10-01  Martin Baulig  <martin@gnome.org>
15471
15472         * debug-mono-symfile.c: Don't emit methods and line numbers for
15473         the dynamic symbol file, just write the type table.  We can easily
15474         have an external helper program which creates a symbol file for an
15475         IL file.        
15476
15477 2002-10-01  Dick Porter  <dick@ximian.com>
15478
15479         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15480         Only add the handle to the cleanup array when we're about to
15481         launch the thread.  Bug 31425 deadlocked when the test was run on
15482         mono under w32.
15483
15484 2002-10-01  Martin Baulig  <martin@gnome.org>
15485
15486         * debug-mono-symfile.c: Added support for properties.
15487
15488 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15489
15490         * reflection.c: unaligned store fix from Mark Crichton
15491         <crichton@gimp.org>.
15492
15493 2002-09-27  Martin Baulig  <martin@gnome.org>
15494
15495         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15496         New interncall.
15497
15498 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15499
15500         * assembly.h, assembly.c: use a sane API to hook into the assembly
15501         loading process instead of a useless special-purpouse hack
15502         (ngen needs a hook, too, for example).
15503
15504 2002-09-27  Dick Porter  <dick@ximian.com>
15505
15506         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15507         io-layer can set up some process handle info.  Not needed on w32,
15508         but doesn't hurt either.
15509
15510         * process.c: Pass the program name in the second parameter to
15511         CreateProcess, so the path is searched.  Include the working
15512         directory. Implemented process name, process enumeration, and some
15513         process detail internal calls.
15514         
15515         * icall.c: Added internal calls for process lookup, and some
15516         process details
15517
15518 2002-09-26  Martin Baulig  <martin@gnome.org>
15519
15520         * assembly.c (mono_install_open_assembly_hook): New global
15521         function to install a function to be invoked each time a new
15522         assembly is loaded.
15523         (mono_assembly_open): Run this callback function if set.
15524
15525         * debug-mono-symfile.c: Put back line numbers for the dynamic
15526         symbol file and also record the .il file as source file.  This
15527         allows us to install the temporary symbol file as `file.dbg' just
15528         like a compiler-generated one.
15529
15530 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15531
15532         * Corrected typo in gc.c (BOHEM vs BOEHM).
15533
15534 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15535
15536         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15537         GetProperties. Also avoid calling g_slist_length in GetProperties and
15538         GetMethods.
15539
15540 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15541
15542         * reflection.c: avoid unaligned stores (bug spotted by
15543         Mark Crichton  <crichton@gimp.org>).
15544
15545 2002-09-25  Martin Baulig  <martin@gnome.org>
15546
15547         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15548         instead of guint64 for addresses and added prologue/epilogue info.
15549
15550 2002-09-25  Martin Baulig  <martin@gnome.org>
15551
15552         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15553         store line number info.  For the dynamic symbol file, we only need
15554         to provide the JIT generated dynamic line number info for the dynamic
15555         symbol file.
15556
15557 2002-09-25  Martin Baulig  <martin@gnome.org>
15558
15559         * debug-mono-symfile.h: Incremented version number.
15560
15561 2002-09-24  Martin Baulig  <martin@gnome.org>
15562
15563         * class.c (mono_debugger_class_init_func): New global function
15564         pointer variable.
15565         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15566         call it.
15567
15568         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15569         function.  This is called via the mono_debugger_class_init_func
15570         hook to add all types to the dynamic type table.
15571         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15572         from its metadata token.
15573
15574         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15575         New interncall for the debugger.
15576
15577 2002-09-24  Nick Drochak <ndrochak@gol.com>
15578
15579         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15580         before using it in case it is null.
15581         
15582 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15583
15584         * metadata.c: allow custom modifiers in local var signatures
15585         (bug spotted by Zoltan Varga).
15586
15587 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15588
15589         * class.c: deal with the <Module> class that may have a NULL vtable.
15590         Eliminate warnings.
15591
15592 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15593
15594         * image.c, image.h: more strong name helpers.
15595         * monosn.c: more work: convert pem keys to cryptoapi format.
15596
15597 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15598
15599         * string-icalls.c: speedup IndexOf.
15600
15601 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15602
15603         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15604
15605 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15606
15607         * icall.c: cleanup: use mono_object_domain ().
15608
15609 2002-09-23  Martin Baulig  <martin@gnome.org>
15610
15611         * debug-mono-symfile.c: Improved type support.
15612
15613 2002-09-22  Martin Baulig  <martin@gnome.org>
15614
15615         * debug-mono-symfile.c: Added support for reference types and strings.
15616
15617 2002-09-22  Martin Baulig  <martin@gnome.org>
15618
15619         * debug-mono-symfile.c: Started to work on the type table.
15620
15621 2002-09-21  Martin Baulig  <martin@gnome.org>
15622
15623         * debug-mono-symfile.c: Largely reworked the symbol table format.
15624         The symbol table is now incrementally updated each time a new
15625         method is added.  We're now also using our own magic and version
15626         so that you don't need to recompile all your classes if the
15627         dynamic table changes.
15628         (mono_debug_update_mono_symbol_file): Removed.
15629         (mono_debug_symfile_add_method): New function to add a method.
15630
15631 2002-09-21  Martin Baulig  <martin@gnome.org>
15632
15633         * icall.c
15634         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15635         New interncall.
15636
15637         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15638         New interncall to get a method from its metadata token.
15639
15640 2002-09-21  Martin Baulig  <martin@gnome.org>
15641
15642         * debug-mono-symfile.c: Create type table.
15643
15644 2002-09-20  Martin Baulig  <martin@gnome.org>
15645
15646         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15647
15648 2002-09-20  Martin Baulig  <martin@gnome.org>
15649
15650         * debug-mono-symfile.c: Provide information about params and locals.
15651
15652 2002-09-20  Martin Baulig  <martin@gnome.org>
15653
15654         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15655         New interncall.
15656
15657         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15658         interncall to get a method from its metadata token.
15659
15660 2002-09-20  Martin Baulig  <martin@gnome.org>
15661
15662         * debug-mono-symfile.c: Added a few checks for method->header
15663         being non-NULL.  This should never happen, but for the moment
15664         let's use a g_warning() rather than a g_assert().
15665
15666 2002-09-19  Mark Crichton  <crichton@gimp.org>
15667
15668         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15669         even if support for it isn't present.  Added an #ifdef to fix this.
15670
15671         * socket-io.c: Added checks back for Solaris support.
15672
15673 2002-09-19  Martin Baulig  <martin@gnome.org>
15674
15675         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15676         changes in the symbol file format.
15677
15678 2002-09-18  Martin Baulig  <martin@gnome.org>
15679
15680         * debug-mono-symfile.c: Set version number to 21.
15681
15682 2002-09-18  Dick Porter  <dick@ximian.com>
15683
15684         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
15685         on netbsd.  Fixes bug 30051.
15686
15687 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15688
15689         * reflection.c:
15690         (set_version_from_string): little fix.
15691
15692 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15693
15694         * monosn.c, Makefile.am: added strong name utility.
15695         * reflection.h, reflection.c: implemented delayed signing,
15696         locale, version and hash id assembly attributes.
15697
15698 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
15699
15700         * loader.c, metadata.c: load param attributes in signatures.
15701
15702 2002-09-16  Martin Baulig  <martin@gnome.org>
15703
15704         * debug-mono-symfile.c: Added string table with all method names.
15705
15706 2002-09-14  Martin Baulig  <martin@gnome.org>
15707
15708         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
15709         fast method lookup.
15710
15711 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15712
15713         * reflection.c: record the public key token of referenced assemblies.
15714
15715 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
15716
15717         * image.c, image.h: added functions to get the strong name and the
15718         public key of an assembly.
15719         * pedump.c: use them.
15720
15721 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
15722
15723         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
15724
15725 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
15726
15727         * marshal.c (mono_marshal_get_managed_wrapper): Added
15728         MONO_TYPE_BOOLEAN 
15729
15730 2002-09-11  Martin Baulig  <martin@gnome.org>
15731
15732         * gc.c: Call GC_unregister_disappearing_link() on all links when
15733         finalizing them, this is necessary to aviod a crash in boehm's
15734         finalize handler.
15735
15736 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15737
15738         * gc.c: handle GetTarget for finalized objects spotted and fixed by
15739         nick@chemlab.org.
15740
15741 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
15742
15743         * icall.c: implemented MonoType::Module.
15744         * reflection.c, reflection.h: mono_module_get_object () from
15745         Tomi Pakarinen <tomi.pakarinen@welho.com>.
15746
15747 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
15748
15749         * icall.c: ignore overridden methods in GetMethods ().
15750         Fix for FieldInfo::SetValue().
15751         * object.c: handle float/double in runtime invoke.
15752
15753 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
15754
15755         * object.c: allow a constructor to be called again on an object.
15756
15757 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15758
15759         * class.h, class.c: move field layout code to it's own function and
15760         export it. Get an interface id earlier. Move fields in MonoClass
15761         so they are more cache friendly and align the bitfields.
15762         * loader.c: temporary handle get_param_names() for a runtime method.
15763         * reflection.c, reflection.h: more code to handle runtime creation of
15764         types.
15765
15766 2002-09-09  Martin Baulig  <martin@gnome.org>
15767
15768         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
15769         signature with the pinvoke field being set for the actual call.
15770
15771 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
15772
15773         * icall.c: removed some unused icalls. Start of map of glib charsets
15774         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
15775
15776 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15777
15778         * debug-helpers.c: break infinite loop (found and fixed by
15779         Holger Arnold <harnold@gmx.de>).
15780
15781 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15782
15783         * icall.c: target may be null in create_delegate.
15784
15785 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15786
15787         * marshal.c: handle a boolean return type.
15788
15789 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15790
15791         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
15792
15793 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15794
15795         * gc.c: fix weakreferences.
15796
15797 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
15798
15799         * icall.c: added icall to get default codepage.
15800
15801 2002-09-03  Dick Porter  <dick@ximian.com>
15802
15803         * threads.h: 
15804         * threads.c: Use MonoThread instead of MonoObject where
15805         apropriate.
15806
15807         Store running thread objects in a hash table, so that we have all
15808         the info to hand when waiting for them to finish
15809         (means we don't need OpenThread() any more, so mingw builds should
15810         be fully functional again.)
15811
15812         * verify.c:
15813         * object.h: Added thread ID to MonoThread
15814
15815 2002-09-03  Martin Baulig  <martin@gnome.org>
15816
15817         * icall.c (System.Reflection.Assembly::get_location): New interncall.
15818
15819 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15820
15821         * icall.c: fixed leak in get_temp_path. Thanks lupus.
15822
15823 2002-09-03  Martin Baulig  <martin@gnome.org>
15824
15825         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
15826         argument to store the end address of the disassembled instruction.
15827
15828         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
15829         here from debug-symfile.h.
15830         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
15831         JIT into this struct.
15832         (MonoSymbolFile): Added `char *image_file' field.
15833         (MonoDebugGetMethodFunc): Removed.
15834         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
15835         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
15836         (mono_debug_find_method): New method.
15837
15838         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
15839         create a full symbol file.
15840         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
15841         and static symbol files.
15842         (mono_debug_find_method): The symbol file keeps an internal method hash,
15843         call this to get a MonoDebugMethodInfo from a MonoMethod.
15844
15845         * debug-symfile.[ch]: Removed.
15846
15847 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
15848
15849         * image.c (do_mono_image_open): Remove linker version check.
15850
15851 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
15852
15853         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
15854         wrappers for instance methods.
15855         
15856 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15857
15858         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
15859
15860 2002-08-28  Dick Porter  <dick@ximian.com>
15861
15862         * Makefile.am: Export HOST_CC for w32 builds
15863
15864 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15865
15866         * file-io.c process.c: MonoString are null terminated, no
15867         need for mono_string_to_utf16() anymore.
15868
15869 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
15870
15871         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
15872
15873 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
15874
15875         * icall.c, reflection.h: speedup System.MonoType.
15876
15877 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15878
15879         * reflection.c: allow null as the value of a string argument in
15880         custom attributes constructors.
15881
15882 2002-08-27  Martin Baulig  <martin@gnome.org>
15883
15884         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
15885         `trampoline_address' field.
15886
15887 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
15888
15889         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
15890         check (fixes bug #29486) 
15891
15892 2002-08-27  Martin Baulig  <martin@gnome.org>
15893
15894         * debug-mono-symfile.c: Changed the file format in a way that allows us
15895         open it read-only and to use a specially malloced area for all the
15896         dynamic data.  We can now also generate a symbol file on-the-fly if we're
15897         debugging IL code and there is no MCS generated symbol file for it.
15898
15899 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
15900
15901         * object.c: added a define for a good string and array
15902         creation speedup (not enabled by default because we need to deal with
15903         the synch stuff).
15904
15905 2002-08-26  Martin Baulig  <martin@gnome.org>
15906
15907         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
15908         function to create a dynamic symbol file.  This is used by the
15909         debugger to create a symbol file for IL code on-the-fly.
15910
15911 2002-08-26  Martin Baulig  <martin@gnome.org>
15912
15913         * loader.c (mono_lookup_pinvoke_call): Include the error message
15914         from g_module_error() in the error message.
15915
15916 2002-08-24  Martin Baulig  <martin@gnome.org>
15917
15918         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
15919         function to update the symbol file.  The symbol file is mmap()ed
15920         writable, but private.  This allows us to install the symbol file
15921         together with the assembly.
15922
15923 2002-08-24  Martin Baulig  <martin@gnome.org>
15924
15925         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
15926         but they can read the new symbol file format which mcs is now creating.
15927
15928         * debug-symfile.c (mono_debug_find_source_location): Moved to
15929         debug-mono-symfile.c; this is now operating on the new symbol file.
15930
15931 2002-08-23  Martin Baulig  <martin@gnome.org>
15932
15933         * debug-helpers.c (mono_method_desc_from_method): New function to get
15934         a MonoMethodDesc from a MonoMethod.
15935
15936 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15937
15938         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
15939         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
15940
15941 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
15942
15943         * string-icalls.[ch]: make helper methods static.
15944
15945 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15946
15947         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
15948         types to it and to SetValueInternal.
15949
15950         * object.c: Moved handle_enum label to its proper place. This was the
15951         f... bug! ;-)
15952
15953         This time i compiled mcs and gtk-sharp and they both work.
15954
15955 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15956
15957         * icall.c: reverted partially my previous patch until 
15958         object.c:set_value handles enums correcly.
15959
15960 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15961
15962         * icall.c:
15963         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
15964         (ves_icall_System_Environment_get_MachineName): removed warning when
15965         compiling under cygwin.
15966
15967 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
15968
15969         * object.c: fixed field_get_value() for reference types.
15970
15971 2002-08-22  Dick Porter  <dick@ximian.com>
15972
15973         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
15974         Don't free a buffer while it's still needed.  Patch from Jonathan
15975         Liger <Jonathan.liger@wanadoo.fr>
15976
15977 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
15978
15979         * icall.c (ves_icall_System_Environment_get_Platform): Add new
15980         internal call.
15981
15982 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
15983
15984         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
15985         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
15986
15987         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
15988         we call unmanaged code which throws exceptions.
15989
15990 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15991
15992         * appdomain.h: added per-domain entry_assembly.
15993         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
15994         arguments.
15995         * icall.c: Assembly::GetEntryAssembly icall.
15996         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
15997         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
15998
15999 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16000
16001         * appdomain.h, gc.c: added mono_domain_finalize ().
16002
16003 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16004
16005         * object.c:
16006         (mono_print_unhandled_exception): changed g_warning by g_printerr
16007         because g_log has a 1024 characters limit (yeah, i got a big stack
16008         trace). Don't print exception name, that should be in ToString 
16009         returned string.
16010
16011 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16012
16013         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16014         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16015
16016 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16017
16018         * object.c:
16019         (mono_print_unhandled_exception): after previous commit, i realized
16020         that MS calls ToString on the exception. I changed this function to
16021         do that. This way we get stack_trace for free.
16022
16023 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16024
16025         * object.c:
16026         (mono_print_unhandled_exception): invoke Message property instead of
16027         getting 'message' field from Exception. Don't allocate memory for
16028         'trace' and 'message' if not needed.
16029
16030 2002-08-18  Dick Porter  <dick@ximian.com>
16031
16032         * unicode.c: Fix asserts to match Encoder.cs checks
16033
16034 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16035
16036         * marshal.c: fix unaligned store issue and a few wrong
16037         opcode argument types.
16038
16039 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16040
16041         * icall.c: added GetUninitializedObjectInternal internal call.
16042
16043 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16044
16045         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16046         to the right domain.
16047
16048 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16049
16050         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16051
16052         * class.c (class_compute_field_layout): set blittable to false for Strings
16053
16054         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16055
16056 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16057
16058         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16059         first chunk of code to create types at runtime. Code to
16060         handle ReflectedType/DeclaringType. Make reflection handles
16061         domain specific.
16062
16063 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16064
16065         * class.c: set correct name in arrays.
16066
16067 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16068
16069         * appdomain.c (mono_domain_transfer_object): make it work with
16070         valuetypes. bug fixes.
16071
16072 2002-08-12  Dick Porter  <dick@ximian.com>
16073
16074         * object.h: Rename some parameters to avoid c++ keywords (Patch
16075         from Joseph Wenninger <kde@jowenn.at>)
16076
16077 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16078
16079         * icall.c: added icall to implement Assembly.GetFile*.
16080
16081 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16082
16083         * reflection.h, reflection.c: code to embed managed resources.
16084
16085 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16086
16087         * class.c: move all the type size stuff into
16088         class_compute_field_layout().
16089
16090 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16091
16092         * class.c: ensure enums have always the correct instance size.
16093         * unicode.c: remove wrong assert.
16094
16095 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16096
16097         * assembly.c: fix mem corruption issue.
16098         * image.h, image.c: added mono_image_get_resource () to access
16099         managed resources.
16100         * icall.c: implemented Assembly.EntryPoint property and some
16101         Managed Resources related internalcalls.
16102
16103
16104 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16105
16106         * image.c, image.h: impemented mono_image_get_entry_point ().
16107         * appdomain.c: use mono_image_get_entry_point.
16108
16109 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16110
16111         * reflection.c: support the object type argument when loading
16112         custom attributes.
16113
16114 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16115
16116         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16117         String as return type.
16118
16119 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16120
16121         * reflection.c: fix encoding of named args for custom attrs to match
16122         the ms implementation. Read them back when instantiating custom
16123         attributes.
16124
16125 2002-08-02  Radek Doulik  <rodo@ximian.com>
16126
16127         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16128         by Dietmar as quick fix
16129         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16130         16 as stack size, used on more places as quick fix before Dietmar
16131         will fix it properly
16132
16133 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16134
16135         * object.h, object.c: added accessors for fields and properties.
16136
16137 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16138
16139         * class.c, class.h: made mono_class_get_field_from_name ()
16140         loop on parent types.
16141         Added mono_class_get_property_from_name ().
16142
16143 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16144
16145         * class.c, class.h: move the code to setup the type vtable in its own
16146         function so that it can be reused also for types created at runtime.
16147         Eliminate the "class" identifier from the header file.
16148         * reflection.c: setup the vtable for enums so that we can create
16149         objects for use in SetConstant ().
16150
16151 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16152
16153         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16154         instead of the delegate itself as this pointer (bug #28383)
16155
16156 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16157
16158         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16159         conversions.
16160
16161 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16162
16163         * loader.c: don't set the pinvoke bit on icalls.
16164
16165 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16166
16167         * debug-helpers.c (mono_method_full_name): only print a number to
16168         indicate wrapper type (so that the output is more readable in traces).
16169
16170 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16171
16172         * class.c (mono_class_init): include method override patch from Paolo
16173
16174 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16175
16176         * icall.c: fixed GetTypeCode().
16177
16178 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16179
16180         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16181         use real delegate invoke function to make it work with multicast
16182         delegates (fix bug# 28291).
16183
16184 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16185
16186         * object.c: load constant strings.
16187
16188 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16189
16190         * reflection.c: no magic numbers.
16191         * tabledefs.h: security action enum.
16192
16193 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16194
16195         * assembly.c: fix possible memory corruption.
16196
16197 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16198
16199         * reflection.h, reflection.c: added support for linking resources.
16200         * verify.c: check we have an updated corlib.
16201
16202 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16203
16204         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16205         string arrays.
16206         (mono_marshal_string_array): null terminate unmanaged string arrays.
16207         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16208
16209 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16210
16211         * icall.c: Type.GetType () can now return also types from the
16212         calling assembly.
16213
16214 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16215
16216         * loader.h, loader.c: stack walking support.
16217         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16218         GetCallingAssembly.
16219
16220 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16221
16222         * marshal.c: added optimisations for blittable types 
16223
16224         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16225         (mono_class_setup_mono_type): set blittable attribute for single
16226         and double.
16227
16228         * marshal.c (mono_string_utf8_to_builder): impl.
16229         (mono_string_builder_to_utf8): impl.
16230         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16231
16232 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16233
16234         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16235         (mono_marshal_get_managed_wrapper): impl. byref types
16236
16237 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16238
16239         * icall.c:
16240         (search_method): don't display debug message. 
16241
16242 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16243
16244         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16245
16246 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16247
16248         * appdomain.c: set the missing filename when throwing exception.
16249
16250 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16251
16252         * metadata.c (mono_type_size): code cleanup
16253         (mono_type_stack_size): removed some test code
16254
16255 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16256
16257         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16258         mono_get_exception_file_not_found now.
16259
16260         * exception.c (mono_exception_from_name_two_strings): New version
16261         that will call a constructor with two string arguments. 
16262         (mono_get_exception_file_not_found): New helper routine, used to
16263         report file-not-found errors.
16264
16265 2002-07-20  Dick Porter  <dick@ximian.com>
16266
16267         * process.h:
16268         * process.c: Pass file handles to CreateProcess
16269         
16270         * icall.c:
16271         * file-io.h:
16272         * file-io.c: Implemented CreatePipe
16273
16274 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16275
16276         * metadata.c (mono_get_param_info): set alignment for value types
16277
16278 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16279
16280         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16281         Constify mono_domain_assembly_open().
16282         * loader.c: handle null namespace in icalls.
16283
16284 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16285
16286         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16287         (emit_str_to_ptr_conv): marshal object as structs
16288
16289         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16290
16291         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16292
16293 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16294
16295         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16296         (mono_marshal_get_native_wrapper): we an now return value types
16297
16298 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16299
16300         * verify.c: more checks implemented.
16301
16302 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16303
16304         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16305         (fix bug #27695)
16306         (mono_marshal_get_native_wrapper): allow byref arguments
16307         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16308         impl. PtrToStringXXX methods
16309         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16310         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16311         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16312         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16313         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16314
16315 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16316
16317         * reflection.c: fix buglet in parsing an assembly name.
16318
16319 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16320
16321         * marshal.c (emit_ptr_to_str_conv): first impl.
16322
16323 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16324
16325         * object.c, class.h: cache the vtable in the class as suggested by
16326         vargaz@freemail.hu (Zoltan Varga).
16327
16328 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16329
16330         * class.h, loader.c: added mono_field_from_token().
16331         * verify.c: first cut of type checking code.
16332
16333 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16334
16335         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16336
16337 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16338
16339         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16340         (fix bug #27782)
16341         (mono_marshal_get_remoting_invoke): impl.
16342         (mono_delegate_begin_invoke): impl.
16343         (mono_mb_emit_save_args): impl.
16344         (mono_delegate_end_invoke): impl.
16345         (mono_marshal_get_delegate_begin_invoke):
16346         (mono_marshal_get_delegate_end_invoke):
16347         (mono_marshal_get_delegate_invoke): generate a special name for
16348         those methods (including the signature) and associate them whith
16349         the delegate class. 
16350
16351 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16352
16353         * reflection.[ch]: 
16354         (mono_reflection_type_from_name): now it has a MonoImage parameter
16355         which is used as the default image to search the type in. If the image
16356         is NULL or getting the type from it fails, it defaults to corlib.
16357
16358         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16359         new parameter.
16360
16361 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16362
16363         * reflection.c: update the parameter table index.
16364
16365 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16366
16367         * domain.c: don't include the mark byte in the string hash.
16368
16369 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16370
16371         * icall.cs: icall for Type.GetTypeCode ().
16372         * verify: a couple of fixes and disabled local initialization checks.
16373
16374 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16375
16376         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16377
16378         * debug-helpers.c (mono_method_full_name): print the type of the
16379         runtime wrapper
16380
16381         * metadata.c (mono_signature_hash): a hash function for signatures
16382         (mono_signature_hash): better hash algorithm
16383
16384         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16385
16386         * debug-helpers.c (mono_method_full_name): this can now generate
16387         method names with signatures
16388
16389         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16390         method dont have this pointers.
16391
16392 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16393
16394         * reflection.c: fixup typebuilder tokens.
16395         * image.c: fix buglet.
16396         * marshal.h: remove whitespace.
16397         * metadata.h, metadata.c: reinstate code that was removed.
16398         * verify.c: handle catch directives and fix another couple of bugs.
16399
16400 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16401
16402         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16403         (mono_marshal_get_native_wrapper): make it comp. with the old code
16404         (mono_marshal_get_native_wrapper): support boolean
16405         (mono_marshal_get_managed_wrapper): support more types
16406
16407 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16408
16409         * class.c (class_compute_field_layout): compute class->blittable attribute.
16410
16411 2002-07-09  Dick Porter  <dick@ximian.com>
16412
16413         * threads.c: Make the thread cleaning up cope with threads that
16414         call ExitThread()
16415
16416 2002-07-08  Radek Doulik  <rodo@ximian.com>
16417
16418         * reflection.c (method_encode_code): use non-translated values to
16419         compute finally_start, this fixes exception handling on ppc, yay!
16420
16421         * decimal.h (struct signscale): fix endianess
16422
16423 2002-07-07  Radek Doulik  <rodo@ximian.com>
16424
16425         * reflection.c: swap box_val and not val
16426
16427 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16428
16429         * reflection.c, reflection.h: handle full assembly info in type name.
16430         Handle Type arguments when loading custom attributes.
16431         * icall.c: updated to use new mono_reflection_type_from_name () method.
16432
16433 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16434
16435         * loader.c:
16436         (method_from_memberref): also print assembly name when method not found.
16437
16438 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16439
16440         * icall.c:
16441         (ves_icall_TypeGetProperties): fixed bug #27473. 
16442
16443 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16444
16445         * reflection.c: display image name and token when cannot find the
16446         .ctor for an attribute.
16447
16448 2002-07-05  Martin Baulig  <martin@gnome.org>
16449
16450         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16451
16452 2002-07-04  Dick Porter  <dick@ximian.com>
16453
16454         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16455         compile on mingw.  This will cause mingw builds to not wait for
16456         subthreads to terminate after the main thread does.  I've lodged a
16457         bug with the mingw developers for them to wrap OpenThread().
16458
16459 2002-07-03  Dick Porter  <dick@ximian.com>
16460
16461         * threads.c: Store thread IDs instead of handles, because
16462         GetCurrentThread() returns a pseudohandle and therefore stores
16463         useless values.  mono_thread_cleanup() continues checking the
16464         array of threads until it is empty, to cope with subthreads
16465         spawning new threads after the main thread has finished.
16466
16467         * profiler.h:
16468         * profiler.c:
16469         * profiler-private.h: Pass the thread ID to thread profiler
16470         functions, instead of a handle
16471
16472 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16473
16474         * verify.c: fixes to make it more usable.
16475         * pedump.c: added --verify code to verify IL code in an assembly.
16476
16477 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16478
16479         * reflection.c: turn errors into warnings to allow compiling corlib.
16480
16481 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16482
16483         * reflection.c: add special cases to compile corlib.
16484
16485 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16486
16487         * reflection.c: handle properties with only a set method.
16488
16489 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16490
16491         * opcodes.h: add enum with opcodes in opval order.
16492
16493 2002-07-01  Dick Porter  <dick@ximian.com>
16494         
16495         * object.h:
16496         * object.c (mono_runtime_run_main): Removed unneeded argument
16497
16498 2002-06-28  Martin Baulig  <martin@gnome.org>
16499
16500         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16501
16502 2002-06-27  Dick Porter  <dick@ximian.com>
16503
16504         * threads.c: Store the handle in both the parent thread and in the
16505         subthread, to minimise the time between starting a new thread and
16506         storing its ID.
16507
16508 2002-06-26  Dick Porter  <dick@ximian.com>
16509
16510         * appdomain.c (mono_runtime_cleanup): Close the socket library
16511         after all the threads have finished, not before
16512
16513 2002-06-26  Martin Baulig  <martin@gnome.org>
16514
16515         * debug-symfile.c (mono_debug_find_source_location): Added
16516         `guint32 *line_number' argument.  If it's not NULL, store the line number
16517         there and return the file name without the line number.
16518
16519 2002-06-25  Dick Porter  <dick@ximian.com>
16520
16521         * icall.c:
16522         * process.h:
16523         * process.c: Process forking and other support functions
16524
16525 2002-06-25  Dick Porter  <dick@ximian.com>
16526
16527         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16528         things dont happen when the image is closed.
16529         (mono_image_lookup_resource): Walk the resource section looking
16530         for a particular entry
16531
16532         * cil-coff.h: PE resource section decoding
16533
16534 2002-06-25  Dick Porter  <dick@ximian.com>
16535         
16536         * assembly.h:
16537         * assembly.c: 
16538         (mono_assembly_foreach): Accessor functions to walk the list of
16539         loaded assemblies
16540         (mono_assembly_set_main):
16541         (mono_assembly_get_main): Process methods need to know which
16542         assembly is the "main" one
16543
16544         * object.c (mono_runtime_run_main): Record the main assembly
16545
16546         * debug-helpers.c: Fix typo
16547
16548 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16549
16550         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16551         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16552
16553 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16554
16555         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16556
16557 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16558
16559         * image.c (do_mono_image_open): Initialize reference count,
16560         otherwise we leak the MonoImage.
16561
16562 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16563
16564         * reflection.c: small tweak to handle self-hosting.
16565
16566 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16567
16568         * reflection.c: fix type name parse code.
16569
16570 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16571
16572         * reflection.c: break out of the loop.
16573         * image.c: special case corlib.
16574
16575 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16576
16577         * reflection.c: add all the custom attrs at the end to ensure the
16578         ctors have been properly initialized when the attributes are defined
16579         in the current assembly.
16580
16581 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16582
16583         * reflection.c: handle correctly multiple-nested types.
16584
16585 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16586
16587         * row-indexes.h: fix typos.
16588         * reflection.c: adjust for typos and fix method_def_or_ref
16589         encoding in MethodImpl table.
16590
16591 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16592
16593         * reflection.c: fix entry point patching (thanks Serge!).
16594
16595 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16596
16597         * verify.c: add check for System.Exception
16598
16599 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16600
16601         * image.c, class.c: minifix for code just c&p'ed.
16602         * reflection.c: warning fix.
16603         * object.h, loader.h, domain.c: load also StringBuilder.
16604
16605 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16606
16607         * marshal.h, marshal.c: some support code to handle complex marshaling.
16608
16609 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16610
16611         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16612         Better signatures with vtable error dump.
16613
16614 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16615
16616         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16617
16618 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16619
16620         * icall.c (ves_icall_Type_GetField): impl.
16621
16622 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16623
16624         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16625         to retrieve a marshal description blob for a field or param.
16626
16627 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16628
16629         * reflection.h, reflection.c: change order of nested type emission
16630         to avoid table corruption. The NestedTypes table is sorted.
16631         * icall.c: change order of GetConstructor results to workaround mcs bug.
16632
16633 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16634
16635         * reflection.h, reflection.c: handle field and param marshal
16636         information.
16637
16638 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16639
16640         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16641
16642 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16643
16644         * reflection.c: fix call convention.
16645
16646 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16647
16648         * reflection.h, reflection.c: mono_image_get_memberref_token()
16649         takes a type instead of a class, now. Added
16650         mono_image_get_array_token() to create tokens for the special
16651         multi-dim array methods.
16652
16653 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16654
16655         * assembly.c: handle modules (no assembly table). Split
16656         loading references in its own function.
16657         * class.c: handle moduleref resolution scope.
16658         * image.c, image.h: cache module name in image.
16659
16660 2002-06-07  Martin Baulig  <martin@gnome.org>
16661
16662         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16663         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16664
16665 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16666
16667         * icall.c: more signature fixes that used uint instead of int.
16668
16669 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16670
16671         * reflection.c: fixed signature of field refs.
16672
16673 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16674
16675         * class.c, reflection.c: handle typerefs of nested types
16676         (both on read and when writing files).
16677
16678 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16679
16680         * icall.c: fix method signatures that tried to workaround the previous
16681         typo, d'oh!
16682
16683 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16684
16685         * debug-helpers.c: fix typo.
16686
16687 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16688
16689         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
16690         rewrote the PE/COFF writing code (our programs are understood by the
16691         ms runtime, now).
16692
16693 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16694
16695         * gc.c, gc.h, icall.c: weakreference support.
16696
16697 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16698
16699         * Makefile.am, mono-config.c: use $(sysconfdir).
16700
16701 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16702
16703         * icall.c: changed default precision of Double.ToString() to 15.
16704         Fixed memory leak. Unified with Single.ToString.
16705
16706 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16707
16708         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
16709
16710 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16711
16712         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
16713         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
16714         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
16715         and myself.
16716
16717 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16718
16719         * debug-symfile.c, sysmath.c: yet more compilation fixes.
16720
16721 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16722
16723         * reflection.c, socket-io.c: more compilation fixes.
16724
16725 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16726
16727         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
16728         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
16729         unicode.c: warning and compiler compatibility fixes.
16730
16731 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16732
16733         * class.h, metadata.c: fixed warnings/compilation errors.
16734
16735 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16736
16737         * Makefile.am, mono-config.c, mono-config.h: configuration file
16738         support routines.
16739         * loader.c, loader.h: make Dll mapping configurable at runtime in the
16740         config file. Export methods to insert and lookup mappings.
16741
16742 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16743
16744         * reflection.c: handle types and boxed objects in custom attr
16745         constructors.
16746
16747 2002-05-30  Martin Baulig  <martin@gnome.org>
16748
16749         * debug-symfile.c
16750         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
16751
16752 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
16753
16754         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
16755         to lookup the implmap row for a P/Invoke method.
16756         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
16757         P/Invoke method from the runtime on an as needed basis.
16758
16759 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
16760
16761         * metadata.c (mono_metadata_parse_signature): impl.
16762
16763 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16764
16765         * class.c: handle .pack directive.
16766
16767 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16768
16769         * object.c: initialize static fields with RVA data.
16770
16771 2002-05-25  Martin Baulig  <martin@gnome.org>
16772
16773         * debug-symfile.c
16774         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
16775
16776 2002-05-24  Martin Baulig  <martin@gnome.org>
16777
16778         * debug-symfile.c
16779         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
16780         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
16781         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
16782
16783 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16784
16785         * object.c: special case string ctros in invoke.
16786         * gc.c: silly whitespace changes.
16787
16788 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
16789
16790         * threadpool.[ch]: impl. a threadpool that can
16791         be used by mint and mono.
16792
16793 2002-05-22  Martin Baulig  <martin@gnome.org>
16794
16795         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
16796         The first argument is now a `MonoReflectionModuleBuilder *', the return
16797         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
16798         `methods' field to get the method builder.  The `token' argument is the
16799         unfixed token.
16800
16801         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
16802         invalid characters instead of g_assert_not_reached()ing.  This seems
16803         to be the behaviour of mscorlib.
16804
16805 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
16806
16807         * object.c (mono_runtime_invoke_array): applied patch from Rachel
16808         Hestilow to fix bug #25104
16809
16810 2002-05-21  Martin Baulig  <martin@gnome.org>
16811
16812         * debug-symfile.c (mono_debug_find_source_location): New function.
16813         Looks up an IL offset in the line number table and returns the source
16814         location as a string.
16815
16816 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16817
16818         * icall.c:
16819         (mono_double_ToStringImpl): changed %f by %g until we have something
16820         better.
16821
16822 2002-05-21  Nick Drochak  <ndrochak@gol.com>
16823
16824         * icall.c : Use different name for Math.Pow's icall.  Needed to check
16825         parameters first in C#.
16826
16827 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16828
16829         * icall.c, reflection.h: added icall to get info about an event.
16830
16831 2002-05-20  Radek Doulik  <rodo@ximian.com>
16832
16833         * object.c (mono_value_box): don't use memcpy for boxing on BIG
16834         endian
16835         (mono_value_box): don't use memcpy for small sizes on
16836         architectures with unaligned access
16837
16838 2002-05-20  Martin Baulig  <martin@gnome.org>
16839
16840         * reflection.c (mono_reflection_setup_internal_class): Don't crash
16841         if `tb->parent == NULL'.
16842         (mono_reflection_create_internal_class): New function.  This is
16843         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
16844         for enum types.
16845
16846         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
16847         New interncall.
16848
16849 2002-05-19  Martin Baulig  <martin@gnome.org>
16850
16851         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
16852         argument to get the length, don't default to the array length.
16853
16854 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
16855
16856         * assembly.c (mono_assembly_setrootdir): New function used to
16857         override the MONO_ASSEMBLIES directory.
16858
16859 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16860
16861         * icall.c: ValueType_GetHashCode() initialize local var.
16862
16863 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16864
16865         * reflection.c: sort custom attributes table.
16866
16867 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16868
16869         * reflection.c: support named args in custom attributes (write support).
16870
16871 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16872
16873         * reflection.c: fix finally position calculation.
16874
16875 2002-05-15  Radek Doulik  <rodo@ximian.com>
16876
16877         * reflection.c: fixed endianess at many places
16878
16879         * icall.c (ves_icall_InitializeArray): comment out debug msg
16880
16881 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
16882
16883         * object.c (mono_unhandled_exception): new function to handle
16884         unhandled exceptions.
16885         (mono_unhandled_exception): call the UnhandledException event.
16886         (mono_runtime_delegate_invoke): impl.
16887
16888 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
16889
16890         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
16891         returns the RVA, not the direct pointer to the data. Handle the case
16892         when the class size is fixed.
16893
16894 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16895
16896         * reflection.c: fix some endianess issues.
16897
16898 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
16899
16900         * object.c (mono_runtime_invoke): is now able to catch exceptions.
16901
16902         * threads.c (mono_thread_init): added a callback which is invoked
16903         at thread start.
16904
16905 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
16906         
16907         * icall.c: make GetHashCode return non-negative values.
16908
16909 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
16910
16911         * object.c, icall.c, gc.c: revert to address-based hashcode.
16912
16913 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
16914
16915         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
16916
16917 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16918
16919         * icall.c, class.c: special case <Module>.
16920
16921 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
16922
16923         * icall.c: fix bug in GetNow().
16924
16925 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
16926
16927         * object.c (mono_runtime_class_init): make sure that we call all
16928         static class constructors.
16929
16930 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16931
16932         * reflection.c: sort methodsemantics table.
16933
16934 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16935
16936         * reflection.h, reflection.c: honour init locals setting.
16937
16938 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
16939
16940         * icall.c: copied Double ToStringImpl for Single ToStringImpl
16941
16942 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16943
16944         * reflection.c: support ContructorBuilders in attribute blob creation.
16945
16946 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16947
16948         * reflection.c: some changes to build a binary that can be run
16949         directly in windows.
16950
16951 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
16952
16953         * loader.c: print a big message when an icall can't be found.
16954
16955 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16956
16957         * string-icalls.c: fix bug 24248.
16958
16959 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16960
16961         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
16962         icall.c, reflection.h: separate assembly loading by pathname and by
16963         assembly name. Use the MONO_PATH env var to search for assemblies.
16964
16965 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16966
16967         * assembly.c, image.h: add some support for assemblies
16968         with multiple modules.
16969         * class.c, class.h: export mono_class_from_typeref().
16970         * loader.c: remove duplicated code and use mono_class_from_typeref(),
16971         instead.
16972
16973 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16974
16975         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
16976         documentation says (the ECMA one is correct).
16977
16978 2002-05-02  Dick Porter  <dick@ximian.com>
16979
16980         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
16981         Don't name the synchronisation mutex.
16982
16983 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
16984
16985         * rand.c
16986         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
16987         Make the prototypes match.
16988         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
16989         Same.
16990
16991         * icall.c
16992         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
16993         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
16994         all systems have tm.tm_zone, so use strftime() with %Z to print
16995         the timezone abreviation into a temp string.
16996
16997         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
16998         rather than mono_array_addr() on a MonoString on Big Endian
16999         machines.
17000
17001 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17002
17003         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17004         fix bug 24041
17005
17006 2002-04-30  Dick Porter  <dick@ximian.com>
17007
17008         * socket-io.c: Cope with SOCKET being an integer rather than a
17009         pointer now.
17010
17011         * threads.c: Added Thread_free_internal, to deal with thread
17012         handle cleanup.  Moved calls to handle_store() and handle_remove()
17013         to start_wrapper(), so each can only be called once.  Allocate
17014         synchronisation blocks with GC_malloc(), and use GC finalisation
17015         to close the handles.
17016
17017         * icall.c: added System.Threading.Thread::Thread_free_internal
17018
17019 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17020
17021         * icall.c: support Environment.Exit, CommandLineArgs().
17022
17023 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17024
17025         * object.c, object.h: added mono_runtime_run_main () and
17026         mono_runtime_get_main_args () for use in System.Environment.
17027
17028 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17029
17030         * gc.c: fix thinko, enable actual finalization since the jit is now
17031         fixed.
17032
17033 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17034
17035         * gc.c, object.c: take into account that an object may be offset wrt the address
17036         returned by GC_malloc().
17037
17038 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17039
17040         * image.c: handle files without entries in the assembly table (modules).
17041
17042 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17043
17044         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17045         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17046         allowed to be null when it's System.Object class setup.
17047
17048 2002-04-27  Martin Baulig  <martin@gnome.org>
17049
17050         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17051         if `tb->parent == NULL' rather than crashing.
17052
17053 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17054
17055         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17056         calling acos() where asin() should have been called.
17057
17058 2002-04-26  Martin Baulig  <martin@gnome.org>
17059
17060         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17061         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17062         there's a subdirectory called `System', but we don't want to read that
17063         subdirectory as an assembly.
17064
17065 2002-04-25  Martin Baulig  <martin@gnome.org>
17066
17067         * debug-symfile.c: Reflect latest MonoString changes.
17068
17069 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17070
17071         * rand.c, rand.h: instance method icalls need to have an explicit
17072         this pointer as first argument in the C implementation.
17073
17074 2002-04-25  Nick Drochak <ndrochak@gol.com>
17075
17076         * icall.c: Fix typo in map for GetNonZeroBytes
17077
17078 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17079
17080         * string-icalls.c : String does now passes unit tests without any 
17081         errors, the following changes has been made:
17082         
17083         Implemented replace methods.
17084         Renaming of methods to (try) follow the standard.
17085         Fixed compare ordinal
17086         Made all memory allocated directly to function instead of via icall function.
17087         Small performance fix in is_in_array function
17088                         
17089  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17090
17091         c (mono_string_Internal_ctor_charp_int_int):
17092         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17093         sindex < 0, throw ArgumentOutOfRangeException instead of
17094         ArgumentNullException.
17095
17096         Added new check for length == 0, however
17097         I need to make it return String.Empty from the C code.
17098         
17099         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17100         that calculate the length for us here.
17101         
17102         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17103         mono_string_new_utf16 with mono_string_new, since value is utf8.
17104
17105 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17106
17107         * object.c: register the object for finalization if needed.
17108         Allocate one more char in the string for the terminating 0 char.
17109
17110 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17111
17112         * class.c, class.h, image.c: check if a type implemenst a destructor.
17113         Use the proper key for array class lookups.
17114         * icall.c: register the icalls in the System.GC class.
17115         * gc.c, gc.h: GC-related functions and icalls.
17116
17117 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17118
17119         * icall.c:
17120         * socket-io.c:
17121         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17122         changed a couple of free () by g_free ().
17123
17124         * decimal.c: one-liner in the comments for decimal2string ().
17125
17126 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17127
17128         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17129
17130 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17131
17132         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17133         * object.c (mono_runtime_invoke_array) : handle null in params
17134
17135 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17136
17137         * string-icalls.c: fixed bug in split (one off bug)
17138
17139 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17140
17141         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17142         * icalls.c: added String::Equals as internal method
17143
17144 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17145
17146         * threads.c: fixed bug in the double interlocked functions
17147
17148 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17149
17150         * threads.c: implemented all of the new interlocked icalls.
17151         * string-icalls.c: fix a bug in insert.
17152         * icalls.c: added the icalls for interlocked, removed old string functions.
17153         
17154 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17155
17156         * loader.c: fix off-by-one error when reading argument names.
17157
17158 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17159
17160         * profiler.c: win32 counter implementation (untested).
17161         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17162         (the latter needs testing and more complete impl. from win32 folks).
17163
17164 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17165
17166         * object.c: mono_array_new_full workaround mono_array_class_get
17167         problem.
17168
17169 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17170
17171         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17172         * object.h (mono_string_chars): Changed casting type.
17173
17174 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17175
17176         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17177                            method signatures to use gunichar2 instead of gint16.
17178
17179 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17180
17181         * object.h, object.c: domain-specific versions of mono_object_new and
17182         mono_array_new.
17183
17184 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17185
17186         * object.c: changed String layout
17187
17188         * string-icalls.c (mono_string_Internal_ctor_chara): added
17189         internal string constructors.
17190
17191 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17192
17193         * threads.c: pass 'this' to the thread start routine.
17194
17195 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17196
17197         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17198         InternalCompareStr don't call twice mono_string_cmp_char for the last
17199         character. Improved performance in mono_string_cmp_char.
17200
17201 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17202
17203         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17204         code into its own library: libmonoruntime.
17205
17206 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17207
17208         * object.h, object.c: changed array format so that szarrays do not
17209         require a bounds structure.
17210         * icall.c, appdomain.c: support for new szarray format.
17211
17212 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17213
17214         * metadata.c: compare also the retuns type when comparing signatures:
17215         we didn't do this as an optimization since really overloaded methods
17216         must differ also in the arguments, but this doesn't work with
17217         low-level IL code (or when using explicit conversion operators: see
17218         bug#23498 for an example).
17219
17220 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17221
17222         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17223
17224 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17225
17226         * icall.c: make MonoType::GetElementType its own icall.
17227
17228 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17229
17230         * icall.c: remove MonoMethod_get_Name().
17231         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17232         object.
17233
17234 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17235
17236         * string-icalls.c: optimized a few methods.
17237
17238 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17239
17240         * icall.c: added all new string internal calls
17241         * string-icalls.c: added, new string internal call implementation.
17242         * object.c: added mono_string_new_size for allocating a string a size
17243
17244 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17245
17246         * object.c (mono_object_isinst): use the same code as in the
17247         optimized x86 version.
17248
17249 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17250
17251         * profiler.c: TSC-based timer code (faster and more accurate).
17252         Not hooked up in configure, yet (set USE_X86TSC to 1).
17253
17254 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17255
17256         * profiler.c, profiler.h: track time spent compiling methods.
17257         * threads.c: track thread creation/destruction.
17258
17259 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17260
17261         * profiler.c, profiler.h, profiler-private.h: profiling interface
17262         and sample implementation. Moved here so that it can be used also by
17263         the jit.
17264
17265 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17266
17267         * reflection.c, reflection.h: keep types and other handles separate in
17268         the hash tables for referred tokens. Add guid for modules.
17269
17270 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17271
17272         * assembly.c: fix bugs found with valgrind.
17273         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17274
17275 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17276
17277         * threads: added icall support for getting current domain for
17278                    the thread.
17279  
17280 2002-04-13  Martin Baulig  <martin@gnome.org>
17281
17282         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17283         (MonoDebugVarInfo): Added `index' field for register based addresses.
17284         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17285         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17286         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17287         `MonoDebugVarInfo *this_var'.
17288
17289         * debug-symfile.c (relocate_variable): New static function to write
17290         a location description for a local variable or method parameter.
17291
17292 2002-04-12  Martin Baulig  <martin@gnome.org>
17293
17294         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17295         stack offset and begin/end scope address of a local variable.
17296         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17297         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17298         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17299
17300         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17301         Added new relocation types for start/end scope of a local variable.
17302
17303 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17304
17305         * object.h: add mono_object_domain() macro.
17306         * reflection.c: handle typespecs.
17307         * icall.c: MonoMethod::get_Name() implementation.
17308
17309 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17310
17311         * icall.c: String::GetHashCode() icall implementation.
17312
17313 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17314
17315         * icall.c: String::IndexOfAny icall.
17316         * object.c, object.h: make array->max_length more useful.
17317         Intrduced mono_object_class() and mono_string_length() macros.
17318
17319 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17320
17321         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17322         instead of g_unichar_isdigit.
17323
17324 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17325
17326         * icall.c: Implement a simple Double.ToString().
17327
17328 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17329
17330         * appdomain.h: only io-layer.h is supposed to be included.
17331         * icall.c: explicitly import environ. Fix warning.
17332
17333 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17334
17335         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17336                 return true even if it's not Daylight Savings time.
17337                 Only return false for the case where the function isn't
17338                 implemented for a plaform (read Windows).
17339
17340 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17341
17342         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17343         data with a mutex.
17344
17345 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17346
17347         * mempool.c (mono_mempool_alloc): only use g_malloc when
17348         absolutely necessary.
17349
17350 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17351
17352         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17353
17354         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17355         (mono_class_proxy_vtable): use domain mempool
17356
17357 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17358
17359         * appdomain.h, appdomain.c: split initialization that requires the
17360         execution engine support into mono_runtime_init().
17361
17362 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17363
17364         * class.c (mono_class_init): don't include vtable inside MonoClass
17365         to save some memory, gather some statistics.
17366         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17367
17368 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17369
17370         * icall.c: internalcall implementation for ValueType.Equals().
17371
17372 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17373
17374         * object.c (mono_message_init): moved 
17375         (mono_runtime_exec_main): new arch. independent impl.
17376         (mono_runtime_invoke_array): new method - like
17377         mono_runtime_invoke, but you can pass an array of objects.
17378         (mono_remoting_invoke): new arch. independent impl.
17379         (mono_message_invoke): new arch. independent impl.
17380         (mono_runtime_class_init): new arch. independent impl.
17381         (mono_runtime_object_init): new arch. independent impl.
17382
17383 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17384
17385         * metadata.c, object.c, reflection.c: documented the exported
17386         functions.
17387
17388 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17389
17390         * icall.c: simpler code to pass the assembly builder data to corlib.
17391         Implement GetNestedTypes() internalcall.
17392
17393 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17394
17395         * class.c: warn if a type can't be loaded.
17396
17397 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17398
17399         * image.h: typedef MonoImageOpenStatus
17400         * types.h: removed unused file
17401         
17402 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17403
17404         * icall.c: Enum_ToObject accepts enum value arguments.
17405
17406 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17407
17408         * class.c: move initialization of properties, events and nested
17409         classes, so that they happen for interfaces, too.
17410
17411 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17412
17413         * icall.c: cleanup some ugly casts in Array_SetValue*.
17414
17415 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17416
17417         * icall.c: the values array fro enums is of the correct type, now.
17418         Implement (correctly) getFullName instead of assQualifiedName for
17419         MonoType.
17420         * reflection.h, reflection.c: added mono_type_get_name ().
17421
17422 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * assembly.c, image.h: for each MonoImage, record from wich assembly
17425         it was loaded.
17426         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17427         Make Type.Assembly work.
17428
17429 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17430
17431         * debug-symfile.h: use char* instead of gpointer to avoid
17432         unnecessary casts.
17433
17434         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17435
17436         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17437         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17438
17439 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17440
17441         * icall.c (mono_message_init): impl. (code cleanup)
17442         (ves_icall_InternalExecute): impl. FieldGetter
17443
17444         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17445         defined we call all (non-static)methods through the vtable. 
17446
17447 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17448
17449         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17450         finalizer even though the memory is still referenced (and the chunk of
17451         memory is not freed).
17452
17453 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17454
17455         * assembly.c: fix brokeness.
17456
17457 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17458
17459         * class.c: kill some warnings. Check explicit interface method
17460         implementation also without considering the namespace.
17461         Load also literal strings in static class data.
17462
17463 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17464
17465         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17466         (default_assembly_name_resolver): Make the resolver take the
17467         "base" directory where the assembly was originally defined, so we
17468         can load DLLs that are in the same directory as the assembly that
17469         is being referenced.
17470
17471 2002-03-28  Dick Porter  <dick@ximian.com>
17472
17473         * file-io.h: 
17474         * file-io.c:
17475         * socket-io.c: 
17476         * unicode.h: 
17477         * unicode.c: Warning cleanups
17478
17479 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17480
17481         * object.h, reflection.h: use the correct type instead of MonoObject.
17482
17483 2002-03-28  Martin Baulig  <martin@gnome.org>
17484
17485         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17486         (mono_debug_update_symbol_file): Initialize classes if necessary.
17487
17488 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17489
17490         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17491         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17492
17493 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17494
17495         * assembly.h: fix function prototype.
17496         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17497         * mono-endian.h: use const cast.
17498
17499 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17500
17501         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17502
17503 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17504
17505         * loader.c: don't assert when a typeref can't be loaded, give
17506         a chance to the runtime to trow an exception instead.
17507         * loader.h: fix warning.
17508
17509 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17510
17511         * class.c (mono_class_proxy_vtable): added proxy support
17512
17513 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17514
17515         * icall.c: removed last of PAL calls, added System.Environment
17516         * file-io.h, file-io.c: MonoIO implementation
17517         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17518
17519 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17520
17521         * appdomain.c: do not use the byte marker in ldstr table lookup.
17522         * debug-helpers.c: allow two ':' to separate class and method name.
17523         * object.c: allocate arrays bounds with the GC, too.
17524         * verify: add a few more checks.
17525
17526 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17527
17528         * reflection.c: output also literal strings. Allocate parameter data
17529         with GC_malloc() (thanks, Martin, for catching this!).
17530
17531 2002-03-26  Martin Baulig  <martin@gnome.org>
17532
17533         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17534         include the `this' offset in the `param_offsets'.
17535
17536 2002-03-25  Martin Baulig  <martin@gnome.org>
17537
17538         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17539         mono_debug_get_class() function to get the classes. Added new
17540         relocation types for arrays and strings.
17541         (mono_debug_get_class): New static function to search in all
17542         referenced assemblies for a metadata token.
17543
17544         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17545
17546 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17547
17548         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17549         hold gc-allocated objects. Make the string heap a stream like the
17550         others. Removed duplicated code when writing stream info.
17551         Added asserts to catch possible buffer overflows. Set the sorted map
17552         for tables that need sorting. Added some documentation.
17553
17554 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17555
17556         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17557         for interned strings and vtables.
17558
17559 2002-03-24  Martin Baulig  <martin@gnome.org>
17560
17561         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17562         it in the array since it was created with g_slist_prepend().
17563
17564 2002-03-24  Martin Baulig  <martin@gnome.org>
17565
17566         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17567         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17568         (mono_debug_method_from_token): Renamed to
17569         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17570         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17571
17572         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17573         relocation types.
17574
17575         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17576
17577 2002-03-24  Martin Baulig  <martin@gnome.org>
17578
17579         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17580         (mono_debug_method_from_token): New func.
17581
17582         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17583         New interncall, calls mono_debug_local_type_from_signature().
17584         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17585         calls mono_debug_method_from_token().
17586
17587 2002-03-23  Martin Baulig  <martin@gnome.org>
17588
17589         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17590         specifies the number of bytes to be converted, not the array size.
17591         Return the number of chars, not the number of bytes.
17592         (ves_icall_iconv_get_chars): The `byteCount' argument
17593         specifies the number of bytes to be converted, not the array size.
17594
17595 2002-03-23  Martin Baulig  <martin@gnome.org>
17596
17597         * reflection.h (MonoReflectionSigHelper): New type.
17598
17599         * reflection.c (mono_reflection_sighelper_get_signature_local),
17600         (mono_reflection_sighelper_get_signature_local): New functions.
17601
17602         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17603         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17604         interncalls.
17605
17606 2002-03-23  Martin Baulig  <martin@gnome.org>
17607
17608         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17609         is_writeable is set.
17610         (mono_raw_buffer_update): New function to write the modified map
17611         back to disk.
17612
17613         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17614
17615         * debug-symfile.c (mono_debug_update_symbol_file): Call
17616         mono_raw_buffer_update() when done writing.
17617
17618 2002-03-23  Martin Baulig  <martin@gnome.org>
17619
17620         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17621
17622         * debug-symfile.c: Added support for arguments and local variables.
17623
17624 2002-03-23  Dick Porter  <dick@ximian.com>
17625
17626         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17627         protected by ifdefs, hence breaking the w32 build.
17628
17629 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17630
17631         * object.c: implement is_interned() the right way.
17632
17633 2002-03-21  Martin Baulig  <martin@gnome.org>
17634
17635         * debug-symfile.[ch]: New files to handle debugging information
17636         files. There's also support to dynamically update these symbol
17637         files to include machine dependent information.
17638
17639 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17640
17641         * threads.c (mono_thread_create): new function to create thread
17642         from C
17643
17644 2002-03-20  Martin Baulig  <martin@gnome.org>
17645
17646         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17647         method is a constructor.
17648         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17649         points to ves_icall_InternalInvoke().
17650
17651 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17652
17653         * file-io.c: Flush shouldn't throw exceptions.
17654
17655 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17656
17657         * file-io.c: FileStream flush support; FileSetLength now
17658         restores file pointer.
17659
17660 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17661
17662         * class.c: set image for pointer classes.
17663
17664 2002/03/19  Nick Drochak <ndrochak@gol.com>
17665
17666         * sysmath.c: Forgot one.
17667
17668 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17669
17670         * sysmath.c: Avoid redefining existing names.
17671
17672 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17673
17674         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17675         handled by runtime as icall rather than dllimport from libm.so
17676         * file-io.c, file-io.h: fixed handle argument type.
17677
17678 2002-03-18  Dick Porter  <dick@ximian.com>
17679
17680         * reflection.c (mono_image_get_type_info): rename interface to
17681         iface, because of "#define interface struct" on windows.
17682
17683 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
17684
17685         * class.c, class.h: rename and export mono_ptr_class_get().
17686         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
17687         * reflection.c, reflection.h, icall.c: better/saner type name
17688         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
17689         method signatures.
17690
17691 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
17692
17693         * class.c (mono_class_init): removed hardcoded GHC_SLOT
17694
17695         * icall.c (ves_icall_InternalInvoke): impl.
17696
17697 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17698
17699         * reflection.c: output the interface map table, too.
17700
17701 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17702
17703         * class.c (class_compute_field_layout): separate computation of 
17704         static field layout
17705
17706 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
17707
17708         * icall.c: added System.Buffer support.
17709         * file-io.c: moved file icalls from PAL to FileStream.
17710
17711 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17712
17713         * icall.c (ves_icall_System_Object_GetHashCode): impl.
17714
17715 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
17716
17717         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
17718
17719 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17720
17721         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
17722
17723 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17724
17725         * debug-helpers.{c,h}: moved here from monograph some useful functions
17726         to locate a method by name/signature in a class or image. Included
17727         also a small and flexible IL disassembler.
17728
17729 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17730
17731         * reflection.c: fixup tokens in methods with small header size, too.
17732
17733 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
17734
17735         * object.c (mono_string_to_utf8): remove assert(!error), instead
17736         print a warning. 
17737
17738 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
17739
17740         * icall.c: update to the new mono_Array_class_get interface.
17741
17742 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17743
17744         * appdomain.c, object.c: Boehm-GC enable.
17745         * icall.c: make get_data_chunk() support split data requests.
17746         Ensure a class is initialized in more cases. Return only the first
17747         property found in GetProperties() or the compiler gets confused. 
17748         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
17749         * reflection.h, reflection.c: add fixup mechanism for field and method
17750         tokens. Initialize assembly->typeref in a single place. Output
17751         properties after events. Support custom attributes for events, too.
17752         Typo fix for paramter custom attrs.
17753
17754 2002-03-07  Martin Baulig  <martin@gnome.org>
17755
17756         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
17757
17758 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
17759
17760         * class.c (mono_array_class_get): fix. for multi. dim. arrays
17761
17762 2002-03-06  Martin Baulig  <martin@gnome.org>
17763
17764         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
17765         non-zero lower bounds. See testcases #F10-#F13.
17766
17767 2002-03-05  Martin Baulig  <martin@gnome.org>
17768
17769         * exception.c (mono_get_exception_argument_out_of_range): New exception.
17770
17771         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
17772         ves_icall_System_Array_GetValue(), only calculate the absolute array position
17773         here.
17774         (ves_icall_System_Array_SetValue): Likewise.
17775         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
17776         as argument and does the actual work. This function is used when copying a
17777         multi-dimensional array.
17778         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
17779         now do all the widening conversions of value types.
17780         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
17781
17782 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17783
17784         * class.c: remove some magic numbers and use the smbolic names,
17785         instead. Added init_events() to load event info at class init time.
17786         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
17787         and mono_metadata_methods_from_event().
17788         * reflection.h, reflection.c: added support for writing out the evnets
17789         related information.
17790
17791 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17792
17793         * reflection.h, icall.c: use a different method (GetInterfaces)
17794         to gather interface info and add isbyref, isprimitive and
17795         ispointer to the ves_icall_get_type_info() return value.
17796
17797 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17798
17799         * class.h: stared adding support for events.
17800         * icall.c: split find_members implementation. Added debug icall to get
17801         the address of an object.
17802         * reflection.c: handle TypeBuilders in mono_type_get_object().
17803
17804 2002-03-01  Martin Baulig  <martin@gnome.org>
17805
17806         * icall.c (ves_icall_System_Array_GetLength): This must throw an
17807         ArgumentOutOfRangeException(), not an ArgumentException().
17808         (ves_icall_System_Array_GetLowerBound): Likewise.
17809         (ves_icall_System_Array_GetValue): Improved argument checking.
17810         (ves_icall_System_Array_SetValue): Improved argument checking.
17811
17812 2002-03-01  Martin Baulig  <martin@gnome.org>
17813
17814         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
17815         called with invalid arguments rather than just dying with g_assert().
17816         (ves_icall_System_Array_SetValue): Likewise.
17817         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
17818         raise a NotImplementedException instead.
17819         (ves_icall_System_Array_GetLength): Added argument checking.
17820         (ves_icall_System_Array_GetLowerBound): Added argument checking.
17821
17822 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
17823
17824         * object.h (mono_assert): new macros mono_assert and
17825         mono_assert_not_reached
17826
17827 2002-02-28  Martin Baulig  <martin@gnome.org>
17828
17829         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
17830         and "System::String::IsInterned" to "System::String::_IsInterned".
17831
17832 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
17833
17834         * icall.c: remove hacks for typebuilder. Added icall to create a
17835         modified type from a tybebuilder.
17836         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
17837         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
17838         to create a backing MonoClass for a TypeBuilder.
17839
17840 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17841
17842         * class.c, class.h: more refactoring of class init.
17843         Export mono_class_setup_mono_type() and mono_class_setup_parent().
17844
17845 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
17846
17847         * marshal.c, marshal.h: start of marshaling interface.
17848
17849 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
17850
17851         * icall.c: fix order in assembly qualified name icall.
17852
17853 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
17854
17855         * class.c: do not free str, since we store it in the hash table.
17856         * reflection.h: add label field to MonoILExceptionInfo.
17857         * reflection.c: handle references to more than one assembly. Handle
17858         case when there isn't a module created in the assembly.
17859
17860 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17861
17862         * class.c: Fix typo. Start refactoring of class init code.
17863
17864 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17865
17866         * appdomain.c: exit with 1 on error.
17867         * class.c: we already have the name in MonoClassField.
17868         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
17869         MonoStreamHeader instead of an offset of image->raw_metadata.
17870
17871 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
17872
17873         * appdomain.c (mono_init): Be even more descriptive about the error.
17874
17875 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
17876
17877         * appdomain.c: give the user an informative message when corlib can't
17878         be loaded.
17879
17880 2002-02-26  Martin Baulig  <martin@gnome.org>
17881
17882         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17883         New icall to get the time zone data.
17884
17885 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17886
17887         * reflection.c: set virtual and raw size of section correctly.
17888         * threads.c: transfer domain information to newly created threads.
17889
17890 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
17891
17892         * class.c: when instancing a class in a domain, load the default
17893         vaules for static fields from the constant table. Fix System.Enum to
17894         not be an enum.
17895         * icall.c: implement Object::GetType() internalcall. Implemented
17896         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
17897         Fixed checking of binding flags in find_members().
17898         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
17899         * reflection.c: handle enumerations when writing to the constant
17900         table. Use a different object cache for types.
17901
17902
17903 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
17904
17905         * object.c (mono_object_isinst): fix for arrays
17906
17907         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
17908
17909 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
17910
17911         * object.c: don't use mprotect ()  and fix intern pool hash table
17912         lookup for big endian systems.
17913
17914 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17915
17916         * icall.c: change type_is_subtype_of () signature.
17917
17918 2002-02-21  Mark Crichton  <crichton@gimp.org>
17919
17920         * rand.c, rand.h: Added random number generator for
17921         System.Security.Cryptography classes.
17922
17923         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
17924
17925         * icall.c: Added System.Security.Cryptography calls.
17926
17927 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17928
17929         * class.c, icall.c, metadata.c: better support for pointer types.
17930         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
17931         * reflection.c: Add support for getting custom attrs for properties
17932         and simplify some code.
17933
17934 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17935
17936         * icall.c: change getToken () and add custom attribute GetBlob()helper
17937         method.
17938         * reflection.h: add custom attrs array to the reflection builder structures.
17939         * reflection.c: encode and emit custom attributes for all the relevant
17940         reflection objects. Cache fieldref and methodref tokens. Change
17941         mono_image_create_token() interface to take a MonoDynamicAssembly.
17942         More complete custom attributes decoder. Load custom attributes for
17943         Assembly, Field, Method and Constructor objects, too. Make the
17944         returned array an Attribute[] one, not object[]. Added
17945         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
17946         custom attribute constructor.
17947
17948 2002-02-20  Dick Porter  <dick@ximian.com>
17949
17950         * icall.c:
17951         * rawbuffer.c:
17952         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
17953         problem code out for now).
17954
17955 2002-02-19  Radek Doulik  <rodo@ximian.com>
17956
17957         * object.c (mono_ldstr): use hash table to avoid multiple swapping
17958
17959 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
17960
17961         * icall.c: register the GetCustomAttributes method.
17962         * object.c, object.h: add mono_string_new_len ().
17963         * reflection.h, reflection.c: added mono_runtime_invoke(),
17964         mono_install_runtime_invoke(). Added
17965         mono_reflection_get_custom_attrs () to load custom attributes and
17966         create the attribute objects.
17967
17968 2002-02-19  Dick Porter  <dick@ximian.com>
17969         * threads-dummy-types.c:
17970         * threads-dummy-types.h:
17971         * threads-dummy.c:
17972         * threads-dummy.h:
17973         * threads-pthread-types.c:
17974         * threads-pthread-types.h:
17975         * threads-pthread.c:
17976         * threads-pthread.h:  Deleted obsolete files
17977
17978 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
17979
17980         * class.c (mono_class_vtable): runtime init the class when we
17981         allocate static class data.
17982
17983         * icall.c (ves_icall_System_Array_SetValue): check for null values.
17984
17985         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
17986         and String - but we will need generic marshalling support in the
17987         future. 
17988         (mono_init): set the domain name in a ms compatible way
17989
17990         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
17991         String[].
17992
17993 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
17994
17995         * object.c (mono_array_clone): use alloca() instead of g_malloc  
17996         for sizes
17997
17998         * appdomain.c (mono_domain_unload): impl.
17999
18000 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18001
18002         * appdomain.c, object.c: fix intern pool implementation.
18003         * class.c: fix alignment code.
18004
18005 2002-02-16  Radek Doulik  <rodo@ximian.com>
18006
18007         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18008         and s2 > s1, just copy lower bytes to be compatible with little
18009         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18010         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18011
18012         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18013         force big_endian to be 1 for big endian machines 
18014         (ves_icall_iconv_new_decoder): ditto
18015
18016 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18017
18018         * socket-io.c (convert_sockopt_level_and_name): If the system
18019         doesn't define SOL_IP or SOL_TCP, get them by hand using
18020         getprotobyname() and caching the values (because this could be a
18021         slow operation).
18022         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18023         Use the appropriate struct when the system does support it. Ie,
18024         not all systems have struct ip_mreqn so use struct ip_mreq when
18025         appropriate.
18026
18027 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18028
18029         * reflection.c: handle finally clauses.
18030
18031 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18032
18033         * socket-io.c: use g_snprintf() instead of snprintf.
18034
18035 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18036
18037         * reflection.c (mono_param_get_objects): Cast second argument to
18038         mono_method_get_param_names to a const char** to silence the
18039         compiler warning.
18040
18041         * appdomain.c (mono_domain_assembly_open): Put parens around the
18042         truth statement in the for-loop.
18043
18044         * unicode.c (iconv_convert): Got rid of a compiler warning about
18045         int i being unused when the system has a new iconv.
18046         (iconv_get_length): Same.
18047
18048         * image.c (load_class_names): Cast the second argument to
18049         g_hash_table_insert() to char* to hush compiler warnings about the
18050         arg being a const.
18051         (mono_image_open): Same here.
18052
18053         * socket-io.c: Don't conditionally include sys/filio.h or
18054         sys/sockio.h here anymore since we now get them from
18055         io-layer/io-layer.h
18056         (inet_pton): If the system doesn't support inet_aton, implement
18057         using inet_addr and also #define INADDR_NONE if it isn't defined
18058         by the system.
18059
18060 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18061
18062         * metadata.c, metadata.h: added function to get packing and size info
18063         of a typedef.
18064         * reflection.h, reflection.c: handle field RVA data. Save info about
18065         the table layout if needed. Assign typedef indexes to all the types
18066         before dumping the info about them to avoid forward reference problems.
18067
18068 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18069
18070         * socket-io.c (convert_sockopt_level_and_name): ifdef
18071         SO_ACCEPTCONN because it is not defined on my system (old debian)
18072
18073 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18074
18075         * opcode.c: use stddef.h to get NULL.
18076
18077 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18078
18079         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18080         for FIONBIO, FIONREAD and SIOCATMARK.
18081         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18082         define INADDR_NONE and besides, inet_addr() is deprecated and
18083         should not be used. Use inet_pton() instead - it also has the
18084         added bonus that it can easily handle IPv6 addresses as well.
18085         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18086
18087 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18088
18089         * decimal.c: remove _MSC_VER conditional.
18090
18091 2002-02-13  Dick Porter  <dick@ximian.com>
18092
18093         * socket-io.c: 
18094         * icall.c: Internal calls for Blocking, Select, Shutdown,
18095         GetSocketOption and SetSocketOption
18096
18097 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18098
18099         * assembly.cs: better resolver: use it instead of some kludgy
18100         code.
18101
18102 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18103
18104         * reflection.c: the best way to speed-up the compiler is to avoid
18105         infinite loops.
18106
18107 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18108
18109         * class.c (mono_class_vtable): changed the object layout
18110         (obj->vtable->class). 
18111         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18112
18113 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18114
18115         * assembly.c: look for assemblies in the assembly dir, too.
18116
18117 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18118
18119         * class.c: fix thinko in mono_class_from_type().
18120
18121 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18122
18123         * exception.h, exception.c: added TypeLoadException.
18124         * object.h, object.c: added mono_array_clone ().
18125         * icall.c: handle throwOnError in AssemblyGetType().
18126         Added Array.Clone().
18127         * opcode.h, opcode.c: use a single value for the opcode val.
18128         Compile fix for non-gcc compilers.
18129
18130 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18131
18132         * opcodes.c, opcodes.h: export interesting info about opcodes.
18133
18134 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18135
18136         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18137         icalls. 
18138
18139         * class.c (class_compute_field_layout): set element_class for enums
18140         (mono_class_create_from_typedef): set element_class for normal classes
18141
18142         * icall.c (ves_icall_System_Enum_get_value): impl.
18143
18144         * class.c (mono_class_create_from_typedef): do not set valuetype
18145         flag for System.ValueType and System.Enum
18146
18147 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18148
18149         * unicode.c (iconv_convert): fix big endian problem.
18150
18151 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18152
18153         * class.c: add asserts if we are ever going to scribble over memory.
18154         * socket-io.c: not all systems have AF_IRDA defined.
18155
18156 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18157
18158         * class.c (class_compute_field_layout): do not consider static
18159         fields to compute alignment
18160
18161 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18162
18163         * appdomain.c (mono_appdomain_get): impl.
18164         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18165
18166 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18167
18168         * icall.c: ignore "file://" prefix when loading an assembly.
18169
18170 2002-01-23  Dick Porter  <dick@ximian.com>
18171
18172         * socket-io.c:
18173         * icall.c:
18174         * Makefile.am: Added socket support
18175
18176 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18177
18178         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18179         code back.  This should return the assemblies that are loaded by
18180         the runtime on behalf of an application domain. 
18181
18182         The current implementation is still broken, it just returns every
18183         assembly loaded, but until we get real applications domain this
18184         will do.
18185
18186 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18187
18188         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18189         AppDomain object.
18190
18191 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18192
18193         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18194         the mono_class_from_name lookup.
18195         (ves_icall_get_parameter_info): ditto.
18196         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18197         method.
18198         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18199
18200 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18201
18202         * class.c: load also nested classes on class init.
18203         System.ValueType instance methods gets passed boxed
18204         values, unless methods in derived classed that get a pointer to the
18205         data.
18206         * icall.c: use better name parsing code in GetType().
18207         * image.c, image.h: add mono_image_loaded ().
18208         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18209         * reflection.c, reflection.h: added mono_reflection_parse_type().
18210
18211 2002-01-22  Veronica De Santis <veron78@interfree.it>
18212
18213         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18214         * threads.c : Added the implementation of internal calls for events
18215         * threads.h : Added prototypes of internal calls for events
18216         
18217 2002-01-21  Radek Doulik  <rodo@ximian.com>
18218
18219         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18220
18221 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18222
18223         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18224         (mono_class_value_size): use min_align
18225
18226 2002-01-20  Dick Porter  <dick@ximian.com>
18227
18228         * threads.h:
18229         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18230         so it compiles on w32.
18231
18232 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18233
18234         * metadata.c (mono_type_stack_size): impl.
18235
18236         * class.c (mono_class_get_field): impl. memberref token
18237
18238 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18239
18240         * icall.h : Added the internal calls mapping for CreateMutex_internal
18241                     and ReleaseMutex_internal.
18242         * threads.h : Added the prototype of mutexes internal calls.
18243         * threads.c : Added the implementations of mutexes internal calls.
18244
18245 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18246
18247         * metaparse.h: removed unused file.
18248         * reflection.c, reflection.h: added stream_data_align () function 
18249         to align data in streams and keep stream aligned. Add support for
18250         exception support in method headers.
18251
18252 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18253
18254         * unicode.c: make iconv_convert () return the number of bytess written
18255         in the output buffer.
18256
18257 2002-01-15  Dick Porter  <dick@ximian.com>
18258         * threads.c: Make the runtime's idea of infinite timeouts coincide
18259         with the class library's
18260
18261         Fix a particularly egregious bug in mono_thread_cleanup(). That
18262         code was so utterly bogus it must have been written on a Monday.
18263
18264 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18265
18266         * reflection.h: add subtypes field to TypeBuilder.
18267         * reflection.c: encode constants for literal fields.
18268         Handle subtypes. Fix user string token (and add a zero byte)
18269         at the end.
18270         
18271 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18272
18273         * class.c (mono_class_init): bug fix: assign slot numbers for
18274         abstract methods.
18275
18276 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18277
18278         * reflection.c: don't try to output a code RVA for abstract methods.
18279         Small fixes for method header format. Output parameter info to the
18280         ParamDef table. Save method overriding info to MethodImpl table.
18281         Fix property support. Allow typedef.extends to be a type in the
18282         building assembly.
18283         * verify.c: fix off-by-one error.
18284
18285 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18286
18287         * class.c: fix mono_class_from_mono_type () for szarray types.
18288         Remove unused cache check in mono_class_from_type_spec().
18289         * icall.c: *type_from_name () functions handle simple arrays and byref.
18290         * reflection.c: handle byref and szarray types. Handle methods without
18291         body (gets P/Invoke compilation working). Handle types and fields in
18292         get_token ().
18293         * reflection.h: add rank to MonoTypeInfo.
18294
18295 2002-01-10  Dick Porter  <dick@ximian.com>
18296
18297         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18298         internal calls
18299
18300 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18301
18302         * icall.c: initialize class in type_from_handle ().
18303         Loop also in parent classes for get_method ().
18304         * reflection.c: properly encode class and valuetype types.
18305         Start on encoding TypeBuilder types. Handle fieldrefs.
18306         Use correct length when registering a user string.
18307         Handle ConstructorBuilder and MonoMethod in get_token ().
18308         Make mono_type_get_object () aware of cached types.
18309         * object.c: back out change to mono_string_new ().
18310
18311 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18312         * object.c: mono_string_new should return a NULL when the string 
18313         passed in is NULL -- not try to deference it.
18314         
18315 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18316
18317         * icall.c: hack to make IsSubType work for TypeBuilders.
18318         * reflection.c: emit constructors before methods.
18319         Retrieve param names in mono_param_get_objects().
18320
18321 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18322
18323         * Makefile.am: fix list of headers and sources so automake 1.5
18324         doesn't complain. Removed \# at end of list.
18325
18326 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18327
18328         * reflection.c: get token for a method ref. Set return type of
18329         constructor to void.
18330         * loader.c: debug message.
18331         * class.c: typo fix.
18332
18333 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18334
18335         * icall.c: fix array init with rank > 1. FindMembers
18336         loops in parent class as well.
18337         * image.c: do not insert nested types in name cache.
18338         * reflection.c: warning fix.
18339         * reflection.h: add override method (for interface impl).
18340
18341 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18342
18343         * metadata.c: fix customattr decoding.
18344
18345 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18346
18347         * rawbuffer.cs: Added native Win32 implementation, avoids using
18348         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18349
18350 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18351
18352         * class.c: make the low-level routines handle the cache.
18353
18354 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18355
18356         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18357
18358 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18359
18360         * class.c: fix mono_array_element_size() for objects.
18361         * class.h, class.c: add properties to MonoClass and load them
18362         at init time.
18363         * icall.c: check with isinst() when assigning a value to an array
18364         instead of requiring the classes to match exactly.
18365         Implemented icall for System.Type::GetType().
18366         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18367         enums. Handle bindingflags when looking for methods and fields.
18368         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18369         and mono_metadata_methods_from_property().
18370         * reflection.h, reflection.c: added structures for propreties,
18371         parameters and enums. Implemented mono_property_get_object() and
18372         mono_param_get_objects().
18373
18374 2001-12-18  Dick Porter  <dick@ximian.com>
18375
18376         * file-io.c: Use mono_string_to_utf16() instead of
18377         mono_string_chars()
18378
18379         * object.c: Added mono_string_to_utf16(), which copies the non
18380         NULL-terminated MonoString into a new double-null-terminated
18381         buffer.
18382
18383 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18384
18385         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18386
18387 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18388
18389         * file-io.c: raise exceptions if handle is invalid.
18390
18391 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18392
18393         * assembly.c: yet another check for mscorlib.
18394         * class.c, class.h: load nesting info for classes.
18395         * icall.c: many new functions to support the Reflection classes.
18396         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18397         * reflection.h, reflection.c: mono_image_create_token(),
18398         mono_assembly_get_object(), mono_type_get_object(),
18399         mono_method_get_object(), mono_field_get_object(): methods to return
18400         objects that parallel the C representation of assemblies, types,
18401         methods, fields.
18402
18403 2001-12-11  Dick Porter  <dick@ximian.com>
18404
18405         * icall.c:
18406         * file-io.c: Internal calls for file IO.
18407
18408 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18409
18410         * tabledefs.h: missing FileAttributes.
18411         * verify.h, verify.c: use is_valid_string () to simplify and check for
18412         valid strings more correctly. Fix warnings and speeling.
18413         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18414         Check code: branches, maxstack, method calls.
18415
18416 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18417
18418         * object.c (mono_object_allocate): removed static, so that the jit
18419         can allocate value types.
18420
18421         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18422
18423 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18424
18425         * class.c: init enum types right away and register the
18426         token->MonoClass map in mono_class_create_from_typedef ().
18427         * verify.h, verify.c: first cut of the verifier.
18428         * pedump.c: add --verify switch to verify metadata tables.
18429         * tabledefs.h: add some missing enums.
18430
18431 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18432
18433         * class.c (mono_install_runtime_class_init): impl.
18434         (mono_class_init): renamed mono_class_metadata_init to
18435         mono_class_init, also removed the metadata_inited flag
18436
18437         * object.c (mono_object_isinst): use faster algorithm
18438
18439 2001-11-30  Radek Doulik  <rodo@ximian.com>
18440
18441         * mono-endian.h: reverted last change
18442         added function prototypes
18443
18444         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18445         add mono-endian.c back
18446
18447         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18448         for unaligned access, I've mistaked it with endianess. I am
18449         sorry.
18450         (mono_read16): fix reverted endianess
18451         (mono_read64): ditto
18452         (mono_read32): ditto
18453
18454 2001-11-30  Dick Porter  <dick@ximian.com>
18455
18456         * exception.c: Implement mono_exception_from_name()
18457
18458 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18459
18460         * metadata.h, metadata.c: remove params_size and locals_size and their
18461         calculation from the metadata code: they are only usefult to the
18462         interp.
18463
18464 2001-11-29  Radek Doulik  <rodo@ximian.com>
18465
18466         * object.c (mono_ldstr): swap bytes here, it's probably not the
18467         best place, but works for me now, I'll redo it once I know mono
18468         better, also note that I add PROT_WRITE and don't reset back, also
18469         note that it's only affects big endians, so x86 should be OK
18470
18471         * mono-endian.h (read16): use just glib macros for both endians
18472
18473         * mono-endian.c: removed as glib macros are used in in
18474         mono-endian.h so we don't need to care about endianess for read
18475         macros as glib does that for us already
18476
18477 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18478
18479         * class.h, class.h: take minimum alignment into consideration so
18480         that the fields of a class remain aligned also when in an array.
18481
18482 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18483
18484         * loader.h, loader.c: add mono_method_get_param_names().
18485         * class.c: 0-init class fields.
18486
18487 2001-11-26  Dick Porter  <dick@ximian.com>
18488
18489         * icall.c:
18490         * threads-types.h:
18491         * threads.c: New file that handles System.Threading on all platforms
18492
18493         * object.c: 
18494         * object.h: Remove the synchronisation struct from MonoObject,
18495         replace it with a pointer that gets initialised on demand
18496
18497         * Makefile.am: Replace all the system-specific threading code with
18498         a single file that uses the new wrapper library
18499
18500 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18501
18502         * class.c, class.h: add mono_install_trampoline() so that the runtime
18503         can register a function to create a trampoline: removes the ugly
18504         requirement that a runtime needed to export arch_create_jit_trampoline.
18505         * object.h, object.c: added mono_install_handler() so that the runtime
18506         can install an handler for exceptions generated in C code (with
18507         mono_raise_exception()). Added C struct for System.Delegate.
18508         * pedump.c: removed arch_create_jit_trampoline.
18509         * reflection.c: some cleanups to allow registering user strings and
18510         later getting a token for methodrefs and fieldrefs before the assembly
18511         is built.
18512         * row-indexes.h: updates and fixes from the new ECMA specs.
18513
18514 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18515
18516         * class.h, class.c: add enum_basetype field to MonoClass.
18517         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18518         to get index in the constant table reated to a field, param or
18519         property.
18520         * reflection.h, reflection.c: handle constructors. Set public-key and
18521         version number of the built assembly to 0.
18522         * row-indexes.h: update from new ECMA spec.
18523
18524 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18525
18526         * class.h, class.c: add a max_interface_id to MonoClass.
18527         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18528         since it's used to do that. Added mono_type_type_from_obj().
18529         Make GetType() return NULL instead of segfaulting if the type was not
18530         found. Handle simple arrays in assQualifiedName.
18531         * object.h: add a struct to represent an Exception.
18532         * reflection.c: output call convention in method signature.
18533         Add code to support P/Invoke methods and fixed offsets for fields.
18534
18535 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18536
18537         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18538         the value.
18539         * icall.c: use mono_array_addr instead of array->vector: fixes the
18540         reflection image writing.
18541         * reflection.c: init call convention byte to 0 in method signature.
18542         Encode the property signature. Don't output property-related methods
18543         twice. Really process the properties for a type (don't cast a field to
18544         a property, my mom always told me that).
18545         Fix 64 bit issues in pointer alignment in a different and more
18546         readable way.
18547
18548 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18549
18550         * loader.h: Removed type class from MonoDefaults, added monotype
18551
18552         * loader.c: Loaded MonoType, removed loading of Type
18553
18554         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18555         and fills in System.Type._impl with a RuntimeTypeHandle rather
18556         than the actual MonoClass *
18557
18558         (ves_icall_type_from_handle): change from type_class to
18559         monotype_class
18560
18561         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18562         implemented
18563
18564         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18565         implemented
18566
18567         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18568
18569         (ves_icall_System_Reflection_Assembly_GetType): implemented
18570
18571         (ves_icall_System_MonoType_assQualifiedName): implemented
18572
18573         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18574
18575 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18576
18577         * assembly.c (mono_assembly_open): Implement a cache for the
18578         assemblies. 
18579
18580         (mono_assembly_close): only destroy the assembly when the last
18581         reference is gone.
18582         
18583 2001-11-09  Dick Porter  <dick@ximian.com>
18584
18585         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18586
18587 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18588
18589         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18590
18591 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18592
18593         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18594         from Martin Weindel.
18595         * object.h: add mono_string_chars ().
18596
18597 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18598
18599         * reflection.c (build_compressed_metadata): Eliminates warnings
18600         and uses 64-bit clean code.
18601
18602         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18603         (mono_type_equal): Change signature to eliminate warnings.
18604
18605 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18606
18607         * icall.c, loader.c: remove the internalcall array constructors.
18608         Changes to match the new MonoArray structure.
18609         * object.h, object.c: an array object doesn't allocate an extra
18610         vector. Add mono_array_new_full () to create jagged arrays easily.
18611
18612 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18613
18614         * metadata.h, metadata.c: add mono_metadata_field_info () to
18615         retreive all the info about a field from vairous tables.
18616         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18617         * class.h, class.c: augment MonoClassField with more info.
18618         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18619         policy and load a field's RVA if needed.
18620
18621 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18622
18623         * class.c (mono_class_metadata_init): create a trampoline for all
18624         virtual functions instead of actually compiling them.
18625
18626 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18627
18628         * class.h, class.c: include name in MonoClassField.
18629         * class.c: fix fundamental type of System.Object and System.String.
18630         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18631         tokens in ldtoken.
18632         * icall.c: remove internalcalls for the Reflection stuff that is now
18633         done in C# code.
18634         * loader.c: mono_field_from_memberref () implementation.
18635         * mono-endian.c: thinko (s/struct/union/g).
18636         * object.c, object.h: make the mono_string_* prototypes actually use
18637         MonoString instead of MonoObject.
18638         * reflection.c, reflection.h: updates for changes in the reflection
18639         code in corlib: we use C structures that map to the actual C# classes.
18640         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18641         fat method header if needed and use the info from the ILGenerator for
18642         methods. Handle fields in types. Misc fixes.
18643
18644 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18645
18646         * class.c (mono_class_metadata_init): bug fix: always allocate
18647         space for static class data
18648
18649 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18650
18651         * class.c (mono_compute_relative_numbering): use relative
18652         numbering to support fast runtime type checks.
18653
18654 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18655
18656         * class.c (mono_class_create_from_typeref): added debugging output
18657         to print class name when MonoDummy is returned instead of real class
18658
18659 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18660
18661         * class.c (mono_class_metadata_init): interface offset table now
18662         contains pointers into the vtable - this is more efficient for the jit
18663
18664 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18665
18666         * class.c (mono_class_metadata_init): use a temporary vtable (the
18667         old algorithm only worked for the interpreter, but not for the jit)
18668
18669 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18670
18671         * loader.c (method_from_memberref): use mono_class_get to get the
18672         class of an array instead of using System.Array directly.
18673         (mono_get_method): also add MEMBERREF methods to the method cache
18674         which usefull for arrays.
18675
18676 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18677
18678         * pedump.c (arch_compile_method): added to compute vtable entry
18679
18680         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
18681         number of interfaces.
18682         
18683         * class.h: merged MonoArrayClass into MonoClass
18684
18685         * class.c (mono_class_create_from_typedef): compute the vtable size and
18686         allocate space to include the vtable inside MonoClass
18687         (mono_class_metadata_init): initialize the vtable
18688
18689 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
18690
18691         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
18692         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
18693         * image.c: endian fixes by Laurent Rioux.
18694         * object.h, object.c: rename MonoStringObject to MonoString and
18695         MonoArrayObject to MonoArray. Change some function names to conform to
18696         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
18697         guint16* as first argument, so don't use char*.
18698         Provide macros to do the interesting things on arrays in a portable way.
18699         * threads-pthread.c: updates for the API changes and #include <sched.h>
18700         (required for sched_yield()).
18701         * icall.c: updates for the API changes above.
18702         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
18703         platforms that need them.
18704
18705 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18706
18707         * class.c: set the correct type for all the fundamental
18708         type when loading the class.
18709
18710 2001-10-05  Dick Porter  <dick@ximian.com>
18711
18712         * threads-pthread.c (pthread_mutex_timedlock): Simple
18713         compatibility version for C libraries that lack this call.
18714
18715 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18716
18717         * class.c: MonoTypes stored in MonoClass are stored as
18718         fundamental MonoTypes when the class represents a
18719         fundamental type (System.Int32, ...).
18720         The TypeHandle return by ldtoken is a MonoType*.
18721         * icall.c: ves_icall_get_data_chunk () write out all the
18722         PE/COFF stuff. Implement ves_icall_define_method (),
18723         ves_icall_set_method_body (), ves_icall_type_from_handle ().
18724         * image.c: properly skip unknown streams.
18725         * loader.h, loader.c: add type_class to mono_defaults.
18726         * metadata.c, metadata.h: export compute_size () as
18727         mono_metadata_compute_size () with a better interface.
18728         Typo and C&P fixes.
18729         * pedump.c: don't try to print the entry point RVA if there is no entry point.
18730         * reflection.c, reflection.h: many cleanups, fixes, output method
18731         signatures and headers, typedef and typeref info, compress the metadata
18732         tables, output all the heap streams, cli header etc.
18733         * row-indexes.h: typo fixes.
18734
18735 2001-10-04  Dick Porter  <dick@ximian.com>
18736
18737         * object.h: Add a synchronisation mutex struct to MonoObject
18738
18739         * object.c (mono_new_object): Initialise the object
18740         synchronisation mutexes
18741
18742         * icall.c: System.Threading.Monitor internal calls
18743         
18744         * threads-pthread.h:
18745         * threads-pthread.c: System.Threading.Monitor internal calls
18746
18747         * threads-types.h: New file, includes the system-specific thread
18748         structures
18749         
18750         * threads-pthread-types.h:
18751         * threads-pthread-types.c: New files, handle pthread-specific
18752         synchronisation types
18753
18754         * threads-dummy-types.h: 
18755         * threads-dummy-types.c: New files of dummy support for
18756         thread-specific types
18757
18758         * metadata.c:
18759         * image.c:
18760         * pedump.c: include mono-endian.h not endian.h
18761         
18762         * Makefile.am: More threads files.
18763         Name mono-endian.h not endian.h
18764
18765 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
18766
18767         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
18768         stuff and implement a few more bits.
18769         * icall.c: a field needs to be dereferenced twice. Do not use the same
18770         name for two variables in the same scope.
18771         * image.c, image.h: cleanups.
18772
18773 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
18774
18775         * class.c (mono_class_metadata_init): bug fix: compute the right size
18776
18777 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
18778
18779         * icall.c: implemented some of the Reflection internalcalls.
18780         * image.c, image.h: start writing out the PE/COFF image.
18781         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
18782         that does the reverse than decode_blob_size ().
18783         * object.c: use mono_metadata_encode_value (). Move here
18784         temporary implementation of mono_string_to_utf8 ().
18785         * rawbuffer.c: make malloc_map static.
18786
18787 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18788
18789         * metadata.c: fix type comparison for arrays.
18790         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
18791         Added a couple of new classes to monodefaults.
18792         * icall.c: added a couple of Reflection-related internalcalls.
18793         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
18794         Added a byval_arg MonoType to MonoClass.
18795
18796 2001-09-28  Dick Porter  <dick@ximian.com>
18797
18798         * icall.c:
18799         * threads-pthread.h: 
18800         * threads-pthread.c: Implemented internal calls for
18801         LocalDataStoreSlot operations.  Applied mutexes around all shared
18802         data.  Reworked the thread creation and Start() operations to
18803         avoid a race condition.
18804         
18805         * threads-dummy.h:
18806         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
18807
18808 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
18809
18810         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
18811
18812 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
18813
18814         * class.c, loader.c: warn and return NULL instead of erroring out.
18815         * icall.c: added System.AppDomain::getCurDomain().
18816         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
18817
18818 2001-09-25  Dick Porter  <dick@ximian.com>
18819
18820         * threads-pthread.h:
18821         * threads-pthread.c: Implemented timed thread joining and added
18822         System.Threading.Thread::Join_internal internal call
18823
18824         * icall.c: Added System.Threading.Thread::Join_internal internal call
18825
18826         * threads-dummy.h:
18827         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
18828
18829 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
18830
18831         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
18832         mono_string_intern () to implement the semantics of the ldstr opcode
18833         and the interning of System.Strings.
18834         * icall.c: provide hooks to make String::IsIntern and String::Intern
18835         internalcalls.
18836
18837 2001-09-23  Dick Porter  <dick@ximian.com>
18838
18839         * threads-dummy.c: 
18840         * threads-dummy.h: New files of dummy threading routines
18841
18842         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
18843         support code based on system specifics
18844
18845         Rename PTHREAD_LIBS to THREAD_LIBS
18846         
18847 2001-09-23  Dick Porter  <dick@ximian.com>
18848
18849         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
18850         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
18851         internal calls.
18852         (mono_thread_init): Set up a Thread object instance to return when
18853         the main thread calls Thread.CurrentThread
18854         (mono_thread_cleanup): Wait for all subthreads to exit
18855
18856         * icall.c: New internal calls for System.Threading.Thread::Sleep
18857         (including Schedule) and CurrentThread
18858
18859         * threads.h: New file, to insulate thread-specific stuff from the
18860         rest of the code
18861
18862 2001-09-21  Dick Porter  <dick@ximian.com>
18863
18864         * threads-pthread.h: 
18865         * threads-pthread.c: New file, for handling pthreads-style
18866         threading support.  Start() now starts a new thread and executes
18867         the ThreadStart delegate instance.
18868
18869         * icall.c: Added the internalcall for
18870         System.Threading.Thread::Start_internal
18871
18872         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
18873
18874 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
18875
18876         * loader.c: work around the different signatures for delegates
18877         constructors csc generates in compiled code vs the ones compiled in mscorlib.
18878
18879 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
18880
18881         * class.h, class.c: add mono_class_get_field_from_name ().
18882         * *: Fix C comments and other ANSI C issues.
18883
18884 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
18885
18886         * endian.h, assembly.c: fix some endianness issues.
18887
18888 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
18889
18890         * loader.h, load.c: add delegate_class to mono_defaults.
18891         Handle runtime provided methods in mono_get_method ().
18892
18893 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
18894
18895         * loader.c (mono_get_method): use pinvoke for internal call
18896
18897         * icall.c: use pinvoke for internal call
18898
18899         * loader.c (method_from_memberref): set the method name
18900
18901 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
18902
18903         * metadata.c: help the compiler generate better code for
18904         mono_class_from_mono_type ().
18905
18906 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
18907
18908         * class.c (mono_class_metadata_init): delayed computing of the
18909         class size to mono_class_metadata_init ()
18910
18911 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
18912
18913         * class.c, class.h: add an interfaces member to MonoClass.
18914         * image.c, image.h: add assembly_name field to MonoImage
18915         from the assembly table.
18916         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
18917
18918 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
18919
18920         * class.c: Handle Array in mono_class_from_mono_type ().
18921         * metadata.c, pedump.c: some endian fixes.
18922
18923 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18924
18925         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
18926         * metadata.c: fix small problem introduced with the latest commit.
18927
18928 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
18929
18930         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
18931         We don't need a MonoMetadata pointer anymore to compare signatures in
18932         mono_metadata_signature_equal (), update callers.
18933         Reduced memory usage an number of allocations for MonoMethodHeader and
18934         MonoMethodSignature.
18935
18936 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
18937
18938         * metadata.c: added compare for szarray.
18939
18940 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
18941
18942         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
18943         and add a couple more types to it and mono_defaults. Give an hint on
18944         classes that need implementing in our corlib and are referenced
18945         in mscorlib.
18946
18947 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
18948
18949         * class.h, class.c: keep track if a class is also an Enum.
18950         * loader.c: Implement a couple more types for use in libffi
18951         marshalling. Gives better diagnostics when failing to dlopen
18952         a library. Set method->klass for P/Invoke methods, too.
18953
18954 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
18955
18956         * class.c, class.h: add a MonoType this_arg to MonoClass that
18957         represents a pointer to an object of the class' type that
18958         can be used by the interpreter and later the type cache.
18959         Add best guess alignment info for valuetype objects.
18960
18961 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
18962
18963         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
18964         into MonoType: one less level of indirection and allocation and
18965         simplifies quite a bit of code. Added cache for MonoTypes that are
18966         used frequently, so that we don't need to allocate them all the time.
18967
18968 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
18969
18970         * class.c (mono_class_create_from_typedef): System.Enum is also a
18971         value type, although it does not derive from System.ValueType
18972         (maybe a bug in the ms compiler?)
18973
18974         * metadata.c (mono_type_size): return the right size for value types
18975
18976         * loader.c (mono_get_method): only initialize method header if not abstract
18977
18978         * class.c (mono_class_from_mono_type): use mono_default values. 
18979
18980 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
18981
18982         * *: use MonoClass pointers instead of <type_tokens>
18983         
18984         * class.h: new flag: metadata_inited.
18985
18986         * class.c (mono_class_metadata_init): impl.
18987         (mono_class_instance_size): impl.
18988         (mono_class_data_size): impl.
18989
18990 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18991
18992         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
18993         MonoClass now has the name and name_space fields. 
18994         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
18995         mono_get_method () takes and optional MonoClass as argument.
18996         Removed mono_typedef_from_name() and added mono_class_token_from_name()
18997         instead that takes advantage of a map from class names to typedef
18998         tokens in MonoImage.
18999
19000 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19001
19002         * metadata.c: zero is not a valid alignment boundary.
19003         Merge MONO_TYPE_VOID in default decoding code.
19004
19005 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19006
19007         * image.h: merged MonoMetadata into MonoImage
19008
19009         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19010         identify the type of elements.
19011
19012 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19013
19014         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19015         * cil-coff.h: split MonoMSDOSHeader and add size info.
19016         * image.c: add some consistency checks.
19017         * metadata.c: fix row size computation: one programmer
19018         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19019         add explanation for the locator routine.
19020         Fix decoding of size in method header.
19021         
19022 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19023
19024         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19025         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19026         function from gnome-libs.  This uses the right path separator
19027         based on the OS, and also works around a bug in some systems where
19028         a double slash is not allowed. 
19029         (default_assembly_name_resolver): Use g_concat_dir_and_file
19030         (mono_assembly_open): ditto.
19031
19032 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19033
19034         * metadata.c (mono_metadata_signature_equal): impl.
19035
19036         * *: void is now a realy MonoType (instead of using NULL)
19037         
19038         * metadata.c (do_mono_metadata_parse_type): use
19039         mono_metadata_parse_type to parse void value.
19040
19041 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19042
19043         * metadata.c, metadata.h: in the signature and method header store
19044         only the space required for holding the loca vars and incoming arguments.
19045
19046 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19047
19048         * metadata.c (do_mono_metadata_parse_type): treat void like any
19049         other type (instead of assigning NULL);
19050
19051 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19052
19053         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19054
19055 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19056
19057         * image.c (do_mono_image_open): added a cache for arrays.
19058
19059 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19060
19061         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19062         decode a single column from a row in a metadata table and changes
19063         to take advantage of it in the typedef locator (gives a nice speed up).
19064         Store offset info for function params.
19065
19066 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19067
19068         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19069
19070 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19071
19072         * assembly.c: how could mono_assembly_close () had ever worked?
19073         * metadata.c, metadata.h: provide offset info for local vars.
19074         Implement mono_type_size () to take care of alignment as well
19075         as size (it was mono_field_type_size in cli/class.c before).
19076
19077 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19078
19079         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19080
19081         * assembly.h (CORLIB_NAME): set to corlib.dll
19082
19083         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19084
19085 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19086
19087         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19088         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19089         tokentype.h: massive namespace cleanup.
19090
19091 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19092
19093         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19094
19095 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19096
19097         * metadata.c (mono_metadata_free_type): added check for type !=
19098         NULL (void) before calling mono_metadata_free_type()
19099
19100 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19101
19102         * metadata.h, row_indexes.h: added header with enumerations to use
19103         to index in the columns from tables in metadata and to decode coded
19104         tokens: we should start using this instead of embedding magic numbers
19105         all over the code.
19106
19107 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19108
19109         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19110         Move metadata_t info from cli_image_info_t to MonoImage, where
19111         it's easily accessible. Changed all the uses accordingly.
19112         Added the method and class caches to MonoImage.
19113         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19114         and mono_metadata_decode_value () signature to be more consistent
19115         with the other parse functions (and simplify code). Taken advantage
19116         of zero-length array allocation with GCC. Removed reduntant (and
19117         wrong) MonoFieldType struct and use MonoParam instead. Changed
19118         mono_metadata_parse_field_type () to use common code for parsing.
19119         Added mono_metadata_typedef_from_field () and
19120         mono_metadata_typedef_from_method () to lookup a typedef index from a
19121         field or method token.
19122         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19123
19124 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19125
19126         * metadata.c (mono_metadata_parse_field_type): Implement. 
19127         (do_mono_metadata_parse_type): Split engine from
19128         mono_metadata_parse_type, so that we can create smaller structures
19129         for things that just have one pointer to the MonoType (look at
19130         the MonoFieldType)
19131
19132 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19133
19134         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19135         as Jan Gray found out, it is incorrect. 
19136
19137 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19138
19139         * assembly.c: Implement asssembly loading.  This loads an image
19140         and loads all the referenced assemblies.  Come to think of it, we
19141         could always do lazy loading of the assemblies. 
19142
19143         * image.c (mono_image_open): Keep loaded images in a hashtable.
19144
19145         * image.h (MonoImage): Add reference count.
19146
19147 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19148
19149         * assembly.c (mono_assembly_open): Keep track of the file name in
19150         case the assembly has no ASSEMBLY table.
19151
19152         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19153         from get.c here.
19154
19155 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19156
19157         * metadata.c, metadata.h: decode local vars in method header
19158         parse function. Change callers accordingly.
19159
19160 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19161
19162         * metadata.h, cil-coff.h: protect against multiple inclusion.
19163         Added some new structures to hold information decoded from metadata:
19164         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19165         and relevant decoding/free functions.
19166         * metadata.c: implement decoding functions. Add warning for out of bounds
19167         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19168         all the info about a method signature and invocation. Remove check on
19169         uninitialized local var in parse_mh() and fix memory leak.
19170
19171 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19172
19173         * metadata.h: More macros.
19174
19175         * tokentype.h: New file.
19176
19177 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19178
19179         * assembly.c: added a consistency check and initialize
19180         some structures with g_new0().
19181         * metadata.c: fixed a couple more bugs in table size computation
19182         and add other checks for out-of bound access to metadata.
19183
19184 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19185
19186         * metatada.c: fix bugs computing table sizes. Spew a
19187         warning when index in string heap is out of bounds.
19188
19189 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19190
19191         * metadata.h: Add a couple of macros to manipulate tokens. 
19192
19193 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19194
19195         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19196         cli_section_tables).
19197
19198 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19199
19200         * metadata.c (mono_metadata_user_string): New function, provides
19201         access to the UserString heap. 
19202
19203 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19204
19205         * metadata.c: Add inline documentation.
19206
19207 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19208
19209         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19210         files. 
19211
19212 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19213
19214         * typeattr.h: New file, TypeAttribute flags. 
19215
19216 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19217
19218         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19219         mono_assembly_ensure_section): Section loading code.
19220         (load_section_tables): Load the sections.
19221
19222         * mono/metadata/metadata.c (mono_metadata_locate_token,
19223         mono_metadata_locate): Functions to locate the information
19224         definition given a token or a table and an index.
19225         (mono_metadata_compute_table_bases): New.
19226         (compute_size): New function to compute the sizes of the various
19227         tables.
19228
19229         * mono/metadata/metadata.h: Finish listing the different index
19230         types. 
19231
19232         * mono/metadata/pedump.c: Improve to dump new information.
19233
19234 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19235
19236         * mono/metadata/metadata.c: Entered all the tables matching
19237         Beta2. 
19238
19239         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19240
19241
19242