2382297f85bc8c7bfb960c4ac4927cbef195a84f
[mono.git] / mono / metadata / ChangeLog
1
2 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
3
4         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
5         for the least possible amount of time (extending the fix in r113458).
6
7 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
8
9         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
10
11 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
12
13         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
14         as possible simd intrinsic types.
15         Optimized the test to check for the common prefix first.
16
17 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
18
19         * class.c: back out part of a broken optimization committed on
20         May 23th (bug #433908).
21
22 2008-10-09  Mark Probst  <mark.probst@gmail.com>
23
24         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
25         Win32.  Should fix #432388 for most cases until we have the new
26         profiler on Win32.
27
28 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
29
30         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
31         instead of using inst->id so the hash is stable for AOT.
32
33         * Makefile.am (assembliesdir): Use $(libdir) instead of 
34         $(exec_prefix)/lib.
35
36 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
37
38         * appdomain.c:
39         * icall.c: create a .ini file for shadow-copied assemblies that
40         contains the location of the original assembly. Use this to return the
41         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
42         Also fix the number of '/' for windows when returning the CodeBase.
43         Fixes bug #430920.
44
45 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
46
47         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
48
49         Code is contributed under MIT/X11 license.
50
51 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
52
53         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
54           if if the class vtable needs initialized.
55
56         Code is contributed under MIT/X11 license.
57
58 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
59
60         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
61           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
62           STRING->BSTR, and CLASS->INTERFACE.
63
64         Code is contributed under MIT/X11 license.
65
66 2008-10-07  Marek Habersack  <mhabersack@novell.com>
67
68         * sysmath.h: changed the declaration of the
69         ves_icall_System_Math_Round2 icall by adding an extra
70         away_from_zero parameter.
71
72         * sysmath.c (ves_icall_System_Math_Round2): added support for
73         away from zero rounding. The icall now takes an extra boolean
74         parameter to signal that away from zero operation is requested.
75
76 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
77
78         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
79         the delegate klass so it can work with full-aot.
80         (mono_marshal_get_delegate_end_invoke): Ditto.
81         (mono_marshal_get_delegate_invoke): Ditto.
82
83 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
84
85         * gc.c, attach.h, attach.c: remove a bad pattern:
86         add_finalizer_callback () is not implemented correctly, it can't
87         without adding more overhead to the finalizer loop and it's not
88         even needed, since we know exactly what we need to call, so there is
89         no need to do so through an expensive function pointer.
90
91 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
92
93         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
94         for the no-gc case.
95         * attach.c (mono_attach_init): Remove the #ifdef.
96
97 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
98
99         * attach.c (mono_attach_init): Don't use
100         mono_gc_add_finalizer_thread_callback when compiling without GC.
101         Fixes #432306.
102         
103         Code is contributed under MIT/X11 license.
104
105 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
106
107         * class.c (mono_class_create_from_typedef): Remove the 
108         #ifndef DISABLE_SIMD stuff.
109
110 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
111
112         * class-internals.h (MonoClass): Added simd_type bit field.
113
114         * class.c (mono_class_create_from_typedef): Check if type is a simd
115         intrinsic.
116
117 2008-10-03  Mark Probst  <mark.probst@gmail.com>
118
119         * object.c (mono_method_add_generic_virtual_invocation): Only add
120         instantiations to the thunk whose count is at least as large as
121         the threshold.
122
123 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
124
125         * icall.c: changed the Type of the exception thrown when trying to
126         invoke a constructor on an abstract class. Part of the fix for bug
127         #324185.
128
129 2008-10-02  Mark Probst  <mark.probst@gmail.com>
130
131         * class.c, class-internals.h (mono_method_get_vtable_index): New
132         function which returns the index into the vtable and properly
133         handles inflated virtual generic methods.
134
135 2008-10-01  Mark Probst  <mark.probst@gmail.com>
136
137         * object.c, domain.c, object-internals.h, domain-internals.h:
138         Generalize IMT thunk machinery to also handle thunks for virtual
139         generic method invokes.  When a virtual generic method is invoked
140         more than a number of times we insert it into the thunk so that it
141         can be called without lookup in unmanaged code.
142
143         * generic-sharing.c, class-internals.h: Fetching a
144         MonoGenericInst* for a method from an (M)RGCTX.
145
146 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
147
148         * marshal.c (emit_marshal_string): Applied a variant of a patch by
149         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
150         marshalling. Fixes #431304.
151
152 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
153
154         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
155           handle when ref is specified without In or Out.
156
157         Code is contributed under MIT/X11 license.
158
159 2008-09-30  Mark Probst  <mark.probst@gmail.com>
160
161         * loader.c (mono_get_method_constrained): Don't expand method with
162         the class's context, because it's already a method of that class.
163
164 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
165
166         * attach.c : should be correct build fix.
167
168 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
169
170         * attach.c: Fix the previous change.
171
172 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
173
174         * attach.c : quick w32 build fix.
175
176 2008-09-27  Miguel de Icaza  <miguel@novell.com>
177
178         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
179         crashes MonoDevelop: #430455.
180
181 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
182
183         * domain-internals.h (struct _MonoDomain): Move most fields used only by
184         the JIT do MonoJitDomainInfo in ../mini/mini.h.
185
186         * domain.c: Remove initialization/cleanup of the removed fields.
187
188 2008-09-27  Mark Probst  <mark.probst@gmail.com>
189
190         * class.c (mono_class_generic_sharing_enabled): Enable generic
191         code sharing for PPC.
192
193 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
194
195         * attach.c : Fixing the Windows builds.
196
197         Code is contributed under MIT/X11 license.
198
199 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
200
201         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
202         the default generic sharing mode to 'all'.
203
204 2008-09-25  Mark Probst  <mark.probst@gmail.com>
205
206         * generic-sharing.c, class-internals.h: New function for checking
207         whether a method needs a static RGCTX invoke wrapper.  A few
208         funtions moved from mini/generic-sharing.c.
209
210         * icall.c: New function used.
211
212 2008-09-25  Mark Probst  <mark.probst@gmail.com>
213
214         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
215         Static RGCTX invoke wrapping applies to value type methods, too.
216
217         * class.c (mono_class_setup_vtable_general): In generic-shared
218         value types, wrap methods with a static RGCTX invoke wrapper.
219
220 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
221
222         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
223         osx build.
224
225 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
226
227         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
228         register a callback which is called when the finalizer thread is woken
229         up.
230         (finalizer_thread): Call the callback if it exists.
231
232         * attach.h attach.c: New files, implementing the attach mechanism.
233
234         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
235         
236         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
237         by the previous change.
238
239 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
240
241         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
242         loader.c, marshal.c, metadata-internals.h, metadata.c,
243         method-builder.c, object.c, reflection.c: introduced specific functions
244         to allocate from the domain and image mempools and cleaned up most of
245         the code to use them (still missing a few in reflection.c).
246         Keep the loader bytes counter updated.
247
248 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
249
250         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
251         loader-related counters.
252
253 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
254
255         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
256         added more MS-compatible counters.
257
258 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
259
260         * class.c (mono_class_setup_fields): Call setup_fields before accessing
261         class->blittable. Fixes #428217.
262
263 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
264
265         * reflection.c (mono_image_get_field_on_inst_token): Call 
266         field_encode_signature () since that handles custom modifiers too.
267         Fixes #424663.
268
269 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
270
271         * reflection.c (add_custom_modifiers): New helper function to merge custom
272         modifiers stored in objects to a MonoType.
273         (fieldref_encode_signature): Encode custom modifiers.
274         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
275         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
276
277 2008-09-19  KornĂ©l Pál  <kornelpal@gmail.com>
278
279         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
280         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
281         64-bit IL only images because imports are not resolved for IL only images.
282         Special thanks to Bill Holmes for finding this bug and testing the patch.
283         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
284
285         Contributed under MIT/X11 license.
286
287 2008-09-19  Miguel de Icaza  <miguel@novell.com>
288
289         * mono-config.c (dllmap_start): Add support for the bits keyword
290         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
291
292 2008-09-19  Mark Probst  <mark.probst@gmail.com>
293
294         * reflection.c (inflate_mono_method): When the class the method is
295         to be inflated for is itself not inflated, just return the method.
296
297 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
298
299         * mono-perfcounters.c: use more user friendly process instance names.
300
301 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
302
303         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
304           handle "[in] ref" and "[in][out] ref" cases.
305
306         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
307           to mono_mb_create_method.  This was causing problems calling native to
308           managed passing Variants by value.
309
310         Code is contributed under MIT/X11 license.
311
312 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
313
314         * class.c (can_access_internals): Call mono_assembly_load_friends ()
315         before accessing the friend_assembly_names field.
316
317         * assembly.c (mono_assembly_load_friends): Make this callable multiple
318         times.
319         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
320         called lazily when it is needed.
321
322         * metadata-internals.h (struct _MonoAssembly): Add 
323         'friend_assembly_names_inited' flag.
324
325 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
326
327         * mono-perfcounters-def.h: fix the types of a few counters.
328         * mono-perfcounters.c: implemented the instance names getter
329         and a few bugfixes.
330
331 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
332
333         * culture-info-table.h : regenerated.
334
335 2008-09-17  Robert Jordan  <robertj@gmx.net>
336
337         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
338         context bound objects. Fixes #415577.
339
340         Code is contributed under MIT/X11 license.
341
342 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
343
344         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
345         implementation (bug #423582).
346
347 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
348
349         * object.c (mono_object_get_virtual_method): Handle the case method->slot
350         is not set. Fixes #426309.
351
352 2008-09-16  Jb Evain  <jbevain@novell.com>
353
354         * class.c (mono_class_from_name): fix the exported type look up
355         when the type is defined in a referenced assembly.
356
357 2008-09-16  Jb Evain  <jbevain@novell.com>
358
359         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
360         increment the next index counter on each iteration to make that work
361         for more than one type forwarder. Unmanaged part to fix #422929.
362
363 2008-09-15  Mark Probst  <mark.probst@gmail.com>
364
365         * object-internals.h: enum ComInterfaceType in
366         MonoInterfaceTypeAttribute is guint32, not guint16.
367
368 2008-09-12  Mark Probst  <mark.probst@gmail.com>
369
370         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
371         writing code.
372
373 2008-09-11  Mark Probst  <mark.probst@gmail.com>
374
375         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
376         not gboolean.
377
378 2008-09-11  Mark Probst  <mark.probst@gmail.com>
379
380         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
381         Endianness fixes for MonoSymbolFileOffsetTable.
382
383 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
384
385         * process.c (complete_path) : Removing quotes from the 
386           input path.  The glib file routines do not handle file paths
387           that have quotes around them.
388
389         Code is contributed under MIT/X11 license.
390
391 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
392
393         * socket-io.h : Adding a comment to provide locations where 
394           changes to MonoSocketAsyncResult need to be synced.
395
396         Code is contributed under MIT/X11 license.
397
398 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
399
400         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
401         parameters as well. Fixes #425001.
402
403 2008-09-08  Miguel de Icaza  <miguel@novell.com>
404
405         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
406         windows build.
407
408 2008-09-07  Miguel de Icaza  <miguel@novell.com>
409
410         * console-io.c: Add support for tracking the window size if it
411         changes.
412
413         The setup is very simple: the TtySetup function will now return a
414         pointer to a location in memory that tracks the current console
415         size.  The managed code checks its current value every time its
416         queried against the last value set, and updates accordingly.
417
418         With this setup we can work with multiple consoles, and we do not
419         require to poke into managed code from a signal handler.
420
421         Additionally, the environment for COLUMNS and LINES is now handled
422         in unmanaged code.
423
424         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
425
426 2008-09-07  Mark Probst  <mark.probst@gmail.com>
427
428         * marshal.c (mono_type_native_stack_size): Treat
429         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
430
431 2008-09-04  Jb Evain  <jbevain@novell.com>
432
433         * class.c (mono_class_is_assignable_from): fix assignability of nullables
434         to nullables.
435
436 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
437
438         * verify.c (verify_type_compatibility_full): Revert change
439         to allow converting a native int to unmanaged pointer be verifiable
440         under non-strict mode.
441         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
442
443         * verify.c: Added some TODOs.
444
445 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
446
447         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
448           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
449           Changed to use GlobalAlloc for the memory returned on Windows platforms.
450
451         Code is contributed under MIT/X11 license.
452
453 2008-09-02  Jb Evain  <jbevain@novell.com>
454
455         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
456
457 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
458
459         reflection.c (typebuilder_setup_fields): Handle classes with
460         explicit size.
461
462 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
463
464         class.c (mono_class_setup_events): Add memory barrier due to
465         double checked locking.
466         
467         class.c (mono_class_setup_properties): Same.
468
469 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
470
471         * class.c (mono_class_is_assignable_from): Fix the build.
472         
473         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
474         before accessing klass->interface_bitmap. Fixes #421744.
475
476 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
477
478         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
479         the runtime into no-exec mode, useful when running the AOT compiler.
480
481         * appdomain.c gc.c object.c: Avoid executing managed code when running
482         in no-exec mode.
483         
484         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
485
486         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
487         special case when the mono_assembly_loaded () returns NULL because the 
488         search hook is not installed.
489
490 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
491
492         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
493         crashes in bstr marshalling on linux.
494
495 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
496
497         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
498         with more than one parameter.
499
500 2008-08-24  Miguel de Icaza  <miguel@novell.com>
501
502         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
503         start/stop flow control as well when turning off ICANON (allows
504         C-s and C-q to be read by Console.ReadKey).
505
506 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
507
508         * class.c (mono_class_init): Move the initialization of nested classes
509         into mono_class_get_nested_types (). Fixes #418433.
510
511         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
512         flag.
513
514         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
515         iterating tough the nested classes of a class.
516
517 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
518
519         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
520         on arm.
521
522 2008-08-22  Miguel de Icaza  <miguel@novell.com>
523
524         * console-io.c (sigcont_handler): Support signal chaining for
525         SIGCONT.
526
527         (console_set_signal_handlers): Use best practices with sigaction,
528         clear the structure before using it. 
529
530 2008-08-22  Robert Jordan  <robertj@gmx.net>
531
532         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
533         Fix the Windows build.
534
535 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
536
537         * class.c (mono_class_generic_sharing_enabled): Make the default
538         sharing mode 'corlib'.
539
540 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
541
542         * console-io.c (console_set_signal_handlers): Fix a warning.
543
544         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
545         method normally, the JIT will take care of avoiding recursion.
546
547 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
548
549         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
550
551         Code is contributed under MIT/X11 license.
552
553 2008-08-20  Miguel de Icaza  <miguel@novell.com>
554
555         * console-io.c (sigcont_handler): We need to restore the entire
556         termios state, not only the original settings, as things like echo
557         can be controlled after this (Booish exposes this issue with its
558         own ReadLine implementation).
559
560         Additionally, we need to set the terminal back into keypad_xmit
561         mode.
562         
563         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
564         string as a paramter as well.   Otherwise we get different
565         keyboard sequences.
566
567 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
568
569         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
570         delegates with byref out parameter passing. Fixes #351520.
571
572         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
573         a generic context.
574         (mono_type_get_desc): Add the type arguments for GENERICINST.
575         (mono_method_full_name): Stringify the class name using mono_type_full_name
576         so it picks up generic arguments.
577
578 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
579
580         * console-io.c: Removed debug output.
581
582 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
583
584         reflection.c (mono_reflection_create_runtime_class): Alloc
585         the nested classes linked list using the dynamic image mempool.
586         Fixes leak in corlib compilation.
587
588 2008-08-19  Miguel de Icaza  <miguel@novell.com>
589
590         * console-io.c: Fix incredibly annoying behavior on the console
591         after resuming execution after control-z.   This affected every
592         console application.
593
594 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
595
596         * mempool-internals.h: Header for mono private mempool functions. The first
597         two function are for allocating glib linked lists using pools.
598
599         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
600
601         * Makefile.am: Added mempool-internals.h.
602
603 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
604
605         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
606         (mono_domain_free): Ditto.
607
608         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
609         be used by the JIT to store its domain-specific information, instead of putting
610         it directly into MonoDomain.
611
612         * domain.c (mono_install_create_domain_hook): New helper function to install
613         a hook which initializes domain->runtime_info.
614
615         * domain.c (mono_install_free_domain_hook): Ditto.
616         
617 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
618
619         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
620         asserting if the ares parameter is null.
621
622         * mono-perfcounters.c: Fix warnings.
623
624         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
625         is not needed, don't check for interruptions either.
626         (mono_marshal_get_delegate_end_invoke): Ditto.
627
628 2008-08-15  Marek Habersack  <mhabersack@novell.com>
629
630         * mono-perfcounters.c (predef_readonly_counter): added support for
631         reading the ASP.NET Requests Queued counter from another process.
632
633 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
634
635         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
636         MonoImage to simplify the AOT code.
637
638 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
639
640         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
641         marshalling. Fixes #416078.
642
643 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
644         
645         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
646         it is set, looking up the icall address is deferred to the JIT, since 
647         in embedded scenarios, the icall might not be registered in the runtime
648         doing the AOT compilation. Backported from the 2.0 branch.
649
650 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
651
652         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
653         Fixes #415621.
654
655 2008-08-05  Marek Habersack  <mhabersack@novell.com>
656
657         * Makefile.am: added support for cross-compilation.
658
659 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
660
661         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
662
663 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
664
665         * mono-perfcounters.c: jitted methods and jitted bytes counters.
666
667 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
668
669         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
670         mono-perfcounters.c: performance counters implementation.
671
672 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
673
674         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
675         to gpointer, letting the AOT code decide what to store in it.
676
677 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
678
679         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
680           mono_class_setup_methods if the methods are not initialized.
681
682         Code is contributed under MIT/X11 license.
683
684 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
685
686         * verify.c: Remove some debug code I commited by accident.
687
688         * verify.c (mono_method_is_valid_in_context): Change the return value
689         to make possible to distinguish between invalid and unverifiable.
690
691         * verify.c (verifier_load_method): Don't return NULL for unverifiable
692         methods.
693
694 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
695
696         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
697         constraints. Fixes regression in gtest-253.
698
699 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
700
701         * verify.c (mono_verifier_verify_class): Don't allow generic types
702         with explicit layout.
703
704         * verify.c (mono_method_verify): Check locals and argument types.
705
706 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
707
708         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
709         wait if the thread is in StopRequested state.
710
711         * class.c (mono_class_from_name): Refactor the module searching code into
712         a separate function so it can be reused in the AOT case too.
713
714 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
715
716         * verify.c (mono_type_is_valid_in_context): Improve the error message.
717         Check both the type and it's generic type definition for loader errors.
718         
719         * verify.c (mono_method_is_valid_in_context): Don't generate another
720         error when a type errors occur, this leads to the wrong exception been
721         thrown.
722
723 2008-07-28  Dick Porter  <dick@ximian.com>
724
725         * icall-def.h
726         * process.c
727         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
728         New internal calls to duplicate and close a process handle.
729
730 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
731
732         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
733
734 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
735
736         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
737
738 2008-07-27  Robert Jordan  <robertj@gmx.net>
739
740         * class.c (mono_class_init): Don't compute class.has_finalize for
741         valuetypes. Fixes #412477.
742
743 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
744
745         * verify.c: Implement constraint equivalence checking.
746         This is required when a generic parameter is used as
747         argument to a constrained one.
748
749         Fixes #410637.
750
751 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
752
753         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
754
755         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
756
757         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
758         synch with managed object layout.
759
760 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
761
762         * verify.c (do_branch_op): Handle valuetypes and generic
763         arguments properly.
764
765         * verify.c (do_cmp_op): Same.
766
767         Fixes #410383.
768
769 2008-07-24  Mark Probst  <mark.probst@gmail.com>
770
771         * generic-sharing.c: Fix memory leaks.
772
773         * class.c, class-internals.h: Make
774         mono_class_inflate_generic_type_with_mempool() non-static.
775
776 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
777
778         * pedump.c (dump_verify_info): Dump full class name.
779
780 2008-07-24  Mark Probst  <mark.probst@gmail.com>
781
782         * generic-sharing.c: Removed some old code that didn't do anything.
783
784 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
785         * profiler.c: Added runtime_initialized_event,
786         mono_profiler_install_runtime_initialized and
787         mono_profiler_runtime_initialized. This new hook tells the profiler
788         when the runtime is sufficiently initialized to be able to call
789         mono_thread_attach on the root appdomain.
790         * profiler.h, profiler-private.h: Likewise.
791
792 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
793
794         * verify.c (do_cast): Do boxing for generic arguments as well.
795
796         * class.c (is_nesting_type): Drop generic instantiations before
797         checking for nesting.
798
799         * class.c (can_access_instantiation): Allow access to generic
800         arguments.
801
802 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
803
804         * verify.c (verify_class_for_overlapping_reference_fields):
805         On some cases, the field size might be zero, guard against that.
806         Fix the explicit layout check to work as expected.
807
808 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
809
810         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
811         mono_thread_resume () during shutdown, since the thread we want to abort
812         might be suspended.
813
814 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
815
816         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
817         warning.
818
819         * debug-mono-symfile.c: Fix a warning.
820
821         * mono-perfcounters.c (get_cpu_times): Fix a warning.
822
823         * object.c (mono_class_vtable): Check if exception_type is set, and return
824         NULL as defined by the function comments.
825
826 2008-07-22  Mark Probst  <mark.probst@gmail.com>
827
828         * mempool.c: Use malloc for every single mempool allocation if the
829         configure option is set.  This makes it easier to track mempool
830         allocations with tools like Valgrind.
831
832 2008-07-22  Jb Evain  <jbevain@novell.com>
833
834         * reflection.c (create_dynamic_mono_image): emit the same
835         metadata version that SL2 does when creating a SL2 image.
836
837 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
838
839         * icall-def.h:
840         * icall.c: New icall System.Enum:get_hashcode. This function
841         avoids the overhead of boxing the enum to the underlying type.
842
843 2008-07-21  Mark Probst  <mark.probst@gmail.com>
844
845         * reflection.c (mono_method_get_object): Don't let static RGCTX
846         invoke wrappers get into MonoReflectionMethods.
847
848 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
849
850         * object-internals.h:
851         * object.c: New mono_runtime_class_init_full function
852         that makes throwing the exception optinal.
853
854         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
855         for the case where the exception object is supplied.
856
857 2008-07-16  KornĂ©l Pál  <kornelpal@gmail.com>
858
859         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
860         old ld versions.
861
862         Contributed under MIT/X11 license.
863
864 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
865
866         * string-icalls.c (ves_icall_System_String_InternalSplit):
867         Optimize array allocation by caching the MonoClass of the
868         array type.
869
870         * icall.c (ves_icall_Type_GetMethodsByName): Same.
871
872         * reflection.c (mono_param_get_objects): Same.
873
874 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
875
876         * icall-def.h:
877         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
878         It inflates the given type using the class context.
879
880 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
881
882         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
883         the vtable if it already exists.
884
885         * object-internals.h: Add mono_class_try_get_vtable as part of the
886         internal API.
887
888         * reflection.c (mono_type_get_object): Use the MonoObject from the
889         vtable when possible. Reduces locking contention on reflection heavy
890         code.
891
892 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
893
894         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
895         g_bit_nth_msf () since that macro is not implemented in eglib.
896
897 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
898
899         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
900         on platforms which do not support it.
901
902 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
903
904         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
905
906 2008-07-11  Martin Baulig  <martin@ximian.com>
907
908         * mono-debug-debugger.h
909         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
910
911         * mono-debug-debugger.c
912         (_mono_debugger_interruption_request): New global volatile variable.
913         (mono_debugger_check_interruption): New public function.
914
915         * threads.c
916         (mono_thread_current_check_pending_interrupt): Call
917         mono_debugger_check_interruption().
918         (mono_thread_interruption_checkpoint_request): Likewise.
919
920 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
921
922         * verify.c: Add more type checks for loaded types. Verify the result
923         handle from ldtoken.
924
925 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
926
927         * loader.c (field_from_memberref): Don't crash if the field
928         wasn't found.
929
930 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
931
932         * verify.c: Verify if type and method instantiations
933         don't have invalid VAR or MVAR arguments.
934
935 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
936
937         * verify.c: Fix double free of function pointer list.
938
939 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
940
941         * object.c (mono_string_to_utf8): Comment the new code as it
942         breaks under eglib.
943
944 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
945
946         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
947
948 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
949
950         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
951           is not throw too many times.
952
953         Code is contributed under MIT/X11 license.
954
955 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
956
957         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
958         debugging is turned off.
959
960 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
961
962         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
963
964 2008-07-04  Mark Probst  <mark.probst@gmail.com>
965
966         * class-internals.h, class.c: Added new generic sharing option:
967         Share only stuff in System.Collections.Generic, which is now the
968         default.
969
970 2008-07-04  Mark Probst  <mark.probst@gmail.com>
971
972         * generic-sharing.c, class-internals.h: New function for getting a
973         generic method in a generic class given the corresponding method
974         for a different instantiation of the class.  Partly refactored
975         from mini-trampolines.c.
976
977         * class.c: Make sure generic methods have a class_inst if they are
978         part of a generic class.
979
980         * metadata.c (mono_type_stack_size_internal): Handle type
981         variables.
982
983 2008-07-04  Mark Probst  <mark.probst@gmail.com>
984
985         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
986         Signifies whether information on the this/vtable/mrgctx variable
987         is available.
988
989 2008-07-04  Mark Probst  <mark.probst@gmail.com>
990
991         * object.c, object-internals.h, icall.c: New function
992         mono_delegate_ctor_with_method(), which does the same as
993         mono_delegate_ctor(), but takes an explicit method argument
994         instead of taking the method from the jit info.
995
996         * marshal.c: When creating a delegate with an inflated method take
997         the "this" argument as the target class for the castclass.
998
999 2008-07-03  Mark Probst  <mark.probst@gmail.com>
1000
1001         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
1002         mono_jit_info_table_find() to perform very badly in some cases.
1003
1004 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
1005
1006         * icall.c (type_from_typename): Handle 'string'.
1007
1008         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
1009         wrappers into the wrapper_hash, since the key is not a MonoMethod.
1010
1011 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
1012
1013         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
1014
1015         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
1016         number of available managed allocator types.
1017
1018         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
1019         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
1020
1021 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
1022
1023         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
1024         which is a low level lock protecting just the 'jit_code_hash' hash table.
1025
1026         * domain.c: Initialize+cleanup jit_code_hash_lock.
1027         
1028 2008-06-30  KornĂ©l Pál  <kornelpal@gmail.com>
1029
1030         * coree.c (mono_load_coree): Set coree_module_handle global variable only
1031         after initialization.
1032
1033         * coree.h: Make MonoFixupExe internal.
1034
1035         Contributed under MIT/X11 license.
1036
1037 2008-06-30  KornĂ©l Pál  <kornelpal@gmail.com>
1038
1039         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
1040         because that is platform independent. Check NumberOfRvaAndSizes in PE32
1041         as well.
1042         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
1043         image being loaded is a CLI image and _CorValidateImage gets called.
1044
1045         * coree.h: Add MonoLoadImage.
1046
1047         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
1048         instead of LoadLibrary.
1049
1050         Contributed under MIT/X11 license.
1051
1052 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
1053
1054         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
1055         for any primitive type.
1056
1057 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
1058
1059         * object.c (mono_array_new_specific): Optimize this and the other allocation
1060         functions a bit.
1061         
1062         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
1063         domains too if mono_dont_free_domains is set.
1064
1065         * domain-internals.h (mono_dont_free_domains): New internal option controlling
1066         whenever to free appdomain data after it has been unloaded.
1067
1068         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
1069         
1070 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
1071
1072         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
1073         (mono_method_get_equivalent_method): Fix a warning.
1074
1075         * object.c (mono_message_init): Avoid looking up array types for each call.
1076
1077 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
1078
1079         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
1080         call.
1081
1082         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
1083         even more.
1084
1085         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
1086         each iteration.
1087
1088         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
1089         fields of an enum.
1090
1091 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
1092
1093         * object.c (mono_value_box): Fix boxing of nullables.
1094
1095 2008-06-26  KornĂ©l Pál  <kornelpal@gmail.com>
1096
1097         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
1098         mono_module_handle that is defined by the linker; no initialization required.
1099         * coree.h: Remove mono_module_handle, add __ImageBase, update
1100         mono_image_open_from_module_handle.
1101         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
1102         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
1103         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
1104         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
1105         to 4 GB away from image base address. IA64 version is not tested but was very
1106         easy to implement and should work if we ever need it.
1107         * domain.c (mono_init_internal): Avoid system error message boxes.
1108         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
1109         with has_entry_point. Handle do_mono_image_load fauilre correctly.
1110         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
1111         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
1112         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
1113
1114         Contributed under MIT/X11 license.
1115
1116 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1117
1118         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
1119         as part of the private mono API.
1120         
1121         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
1122         Do proper argument checking for methods that belong to generic classes.
1123         Do proper type resolution for GMFH/2.
1124         Fixes #377324.
1125         
1126 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1127
1128         * verify.c (do_switch): Fix a memory corruption bug with
1129         the jump index is out of bound.
1130
1131 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1132
1133         * verify.c: Disable debug code.
1134
1135 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1136
1137         * reflection.c (mono_image_get_methodbuilder_token): Use
1138         mono_image_get_methodspec_token_for_generic_method_definition
1139         instead of mono_image_get_memberref_token. We cache more memberef
1140         entries now.
1141
1142 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1143
1144         * verify.c: Inflate exception clause types.
1145         Fixes #402606.
1146         
1147 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1148
1149         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
1150         name.
1151
1152         * reflection.c (mono_image_get_ctorbuilder_token): Same.
1153
1154         * reflection.c (mono_image_create_method_token): Same.
1155
1156 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1157
1158         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
1159         It does the same as mono_image_get_methodref_token but works on
1160         MethodBuilder.
1161
1162         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
1163         and always generate a methodspec. This follows the old behavior and fixes
1164         the regressions in System.Core. 
1165
1166 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
1167
1168         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
1169         don't event mono_class_get () succeeds. Fixes #402182.
1170
1171 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1172
1173         * metadata-internals.h: Added MonoDynamicImage::methodspec
1174         hashtable to store methodspec tokens created for MethodBuilders.
1175
1176         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
1177         MethodBuilders as open instantiations if a methodspec was requested.
1178
1179         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
1180
1181         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
1182
1183         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
1184
1185         Fixes bug #349190.
1186
1187 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1188
1189         * loader.c (method_from_methodspec): Avoid crashing if the
1190         method lookup fails.
1191
1192 2008-06-20  Dick Porter  <dick@ximian.com>
1193
1194         * socket-io.c (get_socket_assembly): Cope with Moonlight network
1195         classes being in a different assembly.  Fixes bug 399184.
1196
1197 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
1198
1199         * loader.c (mono_loader_init): Make this callable multiple times.
1200         (mono_dllmap_insert): Call mono_loader_init () so this works even before
1201         the runtime is initialized. Fixes #401755.
1202
1203 2008-06-19  Dick Porter  <dick@ximian.com>
1204
1205         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
1206         Fixes bug 349688.
1207
1208 2008-06-19  Dick Porter  <dick@ximian.com>
1209
1210         * socket-io.c:
1211         * icall-def.h: Implement Socket generic Send() and Receive()
1212         methods.  Fixes bug 395168.
1213
1214 2008-06-19  KornĂ©l Pál  <kornelpal@gmail.com>
1215
1216         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
1217
1218         Contributed under MIT/X11 license.
1219
1220 2008-06-18  Martin Baulig  <martin@ximian.com>
1221
1222         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
1223         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
1224         set to 80.0.  The debugger <-> runtime interface is now frozen as
1225         well.   
1226
1227         * mono-debug.c
1228         (mono_debug_debugger_version): Bump to 4.
1229
1230 2008-06-18  Martin Baulig  <martin@ximian.com>
1231
1232         * debug-mono-symfile.c
1233         (load_symfile): Don't check the minor version.
1234
1235         * debug-mono-symfile.h: Bump the version number to 50.0.
1236
1237 2008-06-18  Martin Baulig  <martin@ximian.com>
1238
1239         * debug-mono-symfile.c
1240         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
1241         minimum required version.
1242
1243 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1244
1245         * reflection.c (mono_custom_attrs_from_property): Fix support for
1246         retriveving cattrs of dynamic inflated generic types.
1247
1248         * reflection.c (mono_custom_attrs_from_event): Same.
1249
1250         * reflection.c (mono_custom_attrs_from_field): Same;
1251
1252         * reflection.c (typebuilder_setup_events): Same cattrs of events.
1253
1254         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
1255         Moved to metadata.c.
1256
1257         * metadata.c: New functions to retrive the equivalent field, event
1258         of property from the generic type definition.
1259
1260         * metadata-internals.h: Added new functions from metadata.c.
1261
1262 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1263
1264         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
1265         to cached in a mempool is used.
1266
1267         * metadata.c (free_generic_class): In some situations field generic_info type
1268         is not properly dup'ed and leads to double free'ing.
1269
1270         Fixes #400643.
1271
1272 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1273
1274         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
1275         this arguments (will be needed later for generic methods).
1276         Collect stats.
1277
1278 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1279
1280         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
1281         Create a static RGCTX invoke wrapper for methods which require it.
1282
1283 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1284
1285         * object.c, class-internals.h: New function for checking whether
1286         an individual field is special static.
1287
1288 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
1289
1290         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
1291         linear search since the table is sorted.
1292
1293         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
1294         Fixes #324180.
1295
1296 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
1297
1298         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
1299         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
1300
1301         * gc.c (mono_domain_finalize): Allow an infinite timeout.
1302
1303         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
1304         
1305         * threads.c (mono_thread_request_interruption): Get rid of locking, use
1306         InterlockedCompareExchange to query and modify 
1307         thread->interruption_requested.
1308
1309         * object-internals.h (struct _MonoThread): Change interruption_requested
1310         to a gint32 so it can be modified by atomic operations. Add 
1311         'critical_region_level' from the managed side, change small_id to a guint32,
1312         add new set of 'unused' fields.
1313
1314         * appdomain.c: Bump corlib version.
1315
1316 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
1317
1318         * class.c (mono_class_from_name): Search modules as well. Fixes
1319         #322332.
1320
1321 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1322
1323         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
1324         templates.  Templates are generalized with an additional type_argc
1325         argument.  RGCTX templates have type_argc==0, MRGCTX templates
1326         have type_argc>0.
1327
1328         * domain-internals.h, domain.c: New hash table for looking up
1329         MRGCTXs.
1330
1331         * metadata.c, metadata-internals.h: Rename hash and equal
1332         functions for MonoGenericInst's and make them public.
1333
1334         * class-internals.h: New data structures for the MRGCTX.  Macros
1335         for distinguishing slots in the RGCTX and the MRGCTX.
1336
1337 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1338
1339         * object.c (mono_method_get_imt_slot): Put the same methods of
1340         different instantiations of the same generic interface in the same
1341         IMT slots, to make generic sharing simpler.
1342
1343 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1344
1345         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
1346
1347         * metadata.c (mono_metadata_field_info_with_mempool): Added.
1348         This function works just like mono_metadata_field_info, but
1349         accept a mempool as argument to be used allocating memory.
1350
1351         * marshal.c (mono_marshal_load_type_info): Use new function
1352         to load marshal data into image mempool.
1353
1354 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1355
1356         * class.c (mono_class_inflate_generic_type_with_mempool):
1357         This function allows to inflate a generic type using
1358         a mempool.
1359
1360         * class.c (inflate_generic_type): Take a mempool as argument
1361         and use it to do type dup'ing.
1362
1363         * class.c (mono_class_setup_fields): Field type for generic
1364         generic classes are allocated from the image mempool.
1365
1366         * metadata.c (free_generic_class): Inflated field type is
1367         now allocated in the image mempool.
1368
1369 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1370
1371         * threads.c (thread_cleanup): Free MonoThread::name.
1372
1373 2008-06-12  Marek Habersack  <mhabersack@novell.com>
1374
1375         * appdomain.c (ensure_directory_exists): avoid unnecessary
1376         mkdir(2) calls when the shadow directory already exists.
1377         (mono_make_shadow_copy): copy also satellite assemblies from the
1378         private bin directories.
1379
1380 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1381
1382         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
1383         
1384         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
1385         a page boundary. Fixes #396219.
1386
1387 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1388
1389         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
1390         due to double-checked locking.
1391
1392 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1393
1394         * assembly.c (build_assembly_name): Release memory on failure.
1395
1396         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
1397
1398 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1399
1400         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
1401         memory on failure.
1402
1403 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1404
1405         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
1406         memory on failure.
1407
1408 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1409
1410         * loader.c (field_from_memberref): Check if field signature type is equal
1411         to the non-inflated type of the field. Fixes #398980.
1412
1413 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1414
1415         * assembly.c (mono_assembly_load_from_full): Call 
1416         mono_assembly_load_friends () outside the assemblies lock, since it can
1417         acquire the loader lock. Fixes #323696.
1418
1419         * reflection.c (resolve_object): Inflate the inst with the context for
1420         FieldOnTypeBuilderInst. Fixes #399010.
1421
1422 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1423
1424         * reflection.c (mono_image_get_field_on_inst_token): Don't
1425         inflate the field to encode it's signature. If it's a
1426         VAR or MVAR it should stay that way in the signature.
1427         Fixes #399047.
1428
1429 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1430
1431         * reflection.c (resolve_object): Release memory of inflated types.
1432
1433 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1434
1435         * loader.c (mono_method_get_signature_full): Remove assert about
1436         loading a methodspec to a generic method. We have such methods, such as
1437         System.Threading.Interlocked::CompareExchange<T>.
1438         This assert was removed since it crashes the verifier when it checks
1439         methods calling CompareExchange<T>.
1440
1441 2008-06-10  Marek Safar  <marek.safar@gmail.com>
1442
1443         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
1444         of Type array and not MonoType.
1445
1446 2008-06-10  Marek Habersack  <mhabersack@novell.com>
1447
1448         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
1449         <lupus@ximian.com>
1450
1451 2008-06-10  Martin Baulig  <martin@ximian.com>
1452
1453         * debug-mono-symfile.h
1454         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
1455         changes to the file format, but we were generating incorrect
1456         source file indices in the line number table due to a bug, which
1457         made backtraces report an incorrect source file.
1458
1459 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1460
1461         * mono-debug.c: Moved mono_debug_free_method_jit_info from
1462         mini/debug-mini.c to here.
1463
1464         * mono-debug.c (il_offset_from_address): Free memory from find_method.
1465
1466         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
1467         use it to release structs returned by mono_debug_find_method.
1468
1469 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
1470
1471         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
1472         since it needs to set method->slot for all interface methods.
1473
1474 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1475
1476         * class-internals.h: Forgot to add.
1477
1478 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1479
1480         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
1481
1482         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
1483         Lookup the custom attributes from property_hash.
1484
1485         * reflection.c (mono_save_custom_attrs): Save the custom attributes
1486         in property_hash. Allocate all data using the image mempool.
1487
1488         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
1489         for dynamic_custom_attrs to checks if the image is dynamic.
1490
1491 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
1492
1493         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
1494         assemblies array.
1495         
1496         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
1497         runtime functions while holding the domain assemblies lock.
1498
1499 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1500
1501         * verify.c: Reapplied the last bit of the reverted changes.
1502
1503 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1504
1505         * verify.c: Reapplied more of the reverted changes.
1506
1507 2008-06-09  Martin Baulig  <martin@ximian.com>
1508
1509         * debug-mono-symfile.c (load_symfile): Check the major version
1510         first; if it's wrong, don't print the minor version in the error message.
1511
1512 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
1513
1514         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
1515         lock instead of the domain lock to avoid deadlocks, since the thread might
1516         already hold the loader lock.
1517
1518         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
1519         (mono_thread_attach): Ditto.
1520
1521         * monitor.c: Use a TLS variable for holding the current thread id instead
1522         of calling pthread_self ().
1523         (mono_monitor_init_tls): New internal function to initialize the TLS
1524         variable.
1525         (mono_monitor_try_enter_internal): Put the owner == id check after the
1526         owner == 0 check.
1527
1528         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
1529         missed optimizations when using gcc-4.3.
1530
1531 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
1532
1533         * reflection.c (mono_dynamic_image_free): Free the memory
1534         used by MonoGenericParam in MonoDynamicImage::gen_param.
1535
1536         * reflection.c (mono_reflection_setup_generic_class): Allocate
1537         container from mempool.
1538
1539         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
1540         container from mempool.
1541
1542 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
1543
1544         * threads.c (mono_set_pending_exception): New internal function to set the
1545         pending exception of the current thread.
1546         (mono_thread_get_and_clear_pending_exception): Check for 
1547         thread->pending_exception as well.
1548
1549         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
1550
1551         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
1552         it can trigger a collection.
1553
1554 2008-06-06  Martin Baulig  <martin@ximian.com>
1555
1556         Merged the `debugger-kahalo' branch.
1557
1558         * mono-debug.h
1559         (MONO_DEBUGGER_VERSION): Bumped to 72.
1560
1561         * debug-mono-symfile.h
1562         (MonoSymbolFileMethodIndexEntry): Removed.
1563         (MonoSymbolFileMethodEntry): New public typedef.
1564         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
1565         (MonoSymbolFileSourceEntry): Remove everything except `index' and
1566         `data_offset'.
1567         (MonoSymbolFileMethodEntry): Removed.
1568         (MonoSymbolFileLexicalBlockEntry): Removed.
1569         (MonoSymbolFileLineNumberEntry): Removed.
1570         (MonoDebugLexicalBlockEntry): Removed.
1571         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
1572         removed `num_il_offsets' and `il_offsets'.
1573         (MonoSymbolFile): Replace `version' with `major_version' and
1574         `minor_version'.
1575         (MONO_SYMBOL_FILE_VERSION): Replace with
1576         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
1577         `MONO_SYMBOL_FILE_MINOR_VERSION'.
1578
1579         * debug-mono-symfile.c
1580         (mono_debug_symfile_lookup_location): Add support for the new line
1581         number table format.
1582
1583 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1584
1585         * metadata.c (free_generic_class): Release the inflated
1586         MonoClass of dynamic generic classes if it's not a generic
1587         type definition.
1588
1589 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1590
1591         * verify.c: Reapplied more of the reverted changes.
1592
1593 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1594
1595         * reflection.c (lookup_custom_attr): Clean the cached flag or
1596         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
1597         for SRE types.
1598
1599 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1600
1601         * verify.c: Reapplied a small part of the reverted changes.
1602
1603 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
1604
1605         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1606
1607         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
1608         previously in managed code.
1609         (mono_monitor_exit): Ditto.
1610         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
1611
1612         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
1613         the managed definition.
1614
1615 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
1616
1617         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
1618
1619 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
1620
1621         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
1622         
1623         * monitor.c: Add some micro optimizations.
1624
1625         * icall.c (type_from_typename): Handle 'bool'.
1626
1627 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
1628
1629         * verify.c: Implement constructor verification per P III 1.8.1.4.
1630         Fixes #396716.
1631
1632 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
1633
1634         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
1635         holding the assemblies lock here too.
1636
1637 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1638
1639         * verify.c: Kill stack_top function.
1640
1641 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1642
1643         * verify.c: Kill stack_get function.
1644
1645 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1646
1647         * verify.c (mono_method_verify): Last change broke the build. Fixed.
1648
1649 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1650
1651         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
1652         more reliable.
1653
1654         * verify.c (mono_method_verify): Inflate params and locals to avoid
1655         mismatch when checking for compatibility.
1656
1657 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
1658
1659         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
1660         Length prefix should be size in bytes. Fix bug #339530.
1661         
1662         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
1663         Length prefix should be size in bytes. Fix bug #339530.
1664
1665         Code is contributed under MIT/X11 license.
1666
1667 2008-06-05  Bill Holmes <billholmes54@gmail.com>
1668
1669         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
1670
1671         Contributed under MIT/X11 license.
1672
1673 2008-06-05  Martin Baulig  <martin@ximian.com>
1674
1675         * mono-debug-debugger.c
1676         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
1677
1678 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
1679
1680         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
1681         while holding the assemblies lock to prevent deadlocks. Handle the case
1682         where the search hook returns NULL but the assembly was still loaded.
1683         Fixes #323696.
1684
1685         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
1686         modify domain state.
1687
1688 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
1689
1690         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
1691         * Makefile.am (pedump_LDADD): Post-process object files and
1692         add dtrace-generated object file, if necessary.
1693
1694         Code is contributed under MIT/X11 license.
1695
1696 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1697
1698         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
1699
1700 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1701
1702         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
1703
1704 2008-06-04  Mark Probst  <mark.probst@gmail.com>
1705
1706         * threads.c: Try to free everything from the delayed free table
1707         when shutting down threads, and set the variable to NULL after the
1708         table is freed so that calling
1709         mono_thread_hazardous_try_free_all() when shutting down the root
1710         domain doesn't crash.
1711
1712 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1713
1714         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
1715         the caller if resulting type was inflated.
1716
1717         * class.c (mono_class_create_from_typespec): Free the MonoType if it
1718         was inflated.
1719
1720         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
1721
1722
1723 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
1724
1725         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
1726         class library tests.
1727
1728         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
1729         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
1730         #396989.
1731
1732 2008-06-04  Mark Probst  <mark.probst@gmail.com>
1733
1734         * domain.c, domain-internals.h: The JIT infos are now freed by the
1735         JIT info table code.  They are freed immediately if there only a
1736         single JIT info table in circulation.  If there is more, the free
1737         is delayed via a queue.
1738
1739         * threads.c, threads-types.h: New hazard pointer function for
1740         freeing all freeable delayed items in one sitting.
1741
1742 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1743
1744         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
1745
1746         * reflection.c (typebuilder_setup_properties): Same.
1747
1748         * reflection.c (typebuilder_setup_events): Same.
1749
1750 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1751
1752         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
1753         and use it for allocating memory.
1754
1755         * reflection.c (mono_marshal_spec_from_builder): Same.
1756
1757         * reflection.c: Change code to use new signatures.
1758
1759         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
1760
1761 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1762
1763         * decimal.c (rescale128): Put back one line which was accidently commented
1764         out.
1765         
1766         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
1767         to cause crashes.
1768
1769 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1770
1771         * reflection.c (mono_reflection_generic_class_initialize): Name must
1772         be always malloc'ed so we can free it later on. Do this for field, property
1773         and event.
1774
1775         * metadata.c (free_generic_class): Free field, property and event names.
1776
1777 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1778
1779         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
1780         instead of g_memdup.
1781
1782         * reflection.c (typebuilder_setup_fields): Same.
1783
1784 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1785
1786         * decimal.c (rescale128): Optimize this function a bit more.
1787
1788 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1789
1790         * metadata.c (free_generic_class): Release some memory from
1791         SRE generic classes.
1792
1793 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1794
1795         * reflection.c (mono_image_get_generic_field_token): No reference
1796         to name is kept, free it.
1797
1798         * reflection.c (mono_reflection_generic_class_initialize): Free
1799         more memory of the inflated field.
1800
1801 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1802
1803         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
1804         code.
1805
1806 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
1807
1808         * reflection.c (mono_dynamic_image_free): Release memory used by
1809         MonoDynamicImage::array_methods elements.
1810
1811         * reflection.c (assembly_add_win32_resources): Release memory after
1812         encoding.
1813
1814 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
1815
1816         * decimal.c (log2_32): Use an optimized version for this function too.
1817         
1818         * decimal.c (log2_64): Fix this on 32 bit machines.
1819
1820 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
1821
1822         * class.c (mono_dup_array_type): Implement allocation using a mempool.
1823
1824         * class.c (mono_metadata_signature_deep_dup): Same.
1825
1826         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
1827         a mempool.
1828
1829         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
1830
1831         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
1832
1833         * metadata-internals.h: Added mono_metadata_signature_dup_full.
1834
1835         * class-internals.h: Update signatures to take a MonoMemPool.
1836
1837 2008-06-02  Dick Porter  <dick@ximian.com>
1838
1839         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
1840         * icall-def.h: Add
1841         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
1842         FormatMessage API to get the error text.  Fixes bug 321827.
1843
1844 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
1845
1846         * decimal.c: Add some micro optimizations to make decimal operations faster.
1847
1848 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
1849
1850         * reflection.c (method_encode_clauses): Take a mempool
1851         as parameter and use it to allocate the clause array.
1852
1853         * reflection.c (mono_image_get_field_on_inst_token): Free
1854         the inflated type after encoding it.
1855
1856         * reflection.c (mono_dynamic_image_free): Free each element
1857         of MonoDynamicImage::gen_params.
1858
1859         * reflection.c (reflection_methodbuilder_to_mono_method):
1860         Allocate the generic param array from the mempool.
1861         Allocate signature params from the mempool.
1862
1863         * reflection.c (mono_reflection_generic_class_initialize):
1864         Free inflated fields after been used.
1865
1866 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
1867
1868         * icall.c: Reapply the memory leak fixes as they no
1869         longer make mono crash.
1870
1871 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
1872
1873         * reflection.c (mono_type_get_object): Don't store the suplied
1874         MonoType with type_hash. A caller which pass a type that
1875         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
1876         might end with a pointer to freed memory.
1877         The solution is to use byval_arg or this_arg from the associated
1878         MonoClass of the supplied type.
1879
1880 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
1881
1882         * icall.c: Revert the rest of the last change as it breaks the build too.
1883
1884 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1885
1886         * icall.c: Revert a leak fix as it's breaking the build.
1887
1888 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1889
1890         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
1891
1892 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1893
1894         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
1895
1896 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1897
1898         * icall.c: Fix some memory leaks.
1899
1900 2008-05-29  Dick Porter  <dick@ximian.com>
1901
1902         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
1903         async socket operations from the pending list when a socket
1904         closes.  Leaving it until the threadpool services the event
1905         exposes a race condition when a socket descriptor is reused.
1906         Fixes bug 377589.
1907
1908 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1909
1910         * object.c: Fix negative index check for array alocation.
1911
1912 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1913
1914         * icall.c, marshal.c: Delegate wrappers should skip visibility.
1915         This check is performed by the verifier for IL created delegates
1916         and by Delegate::CreateDelegate for programatically created ones.
1917         Fixes #372406.
1918
1919 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1920
1921         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
1922         Fix code to use mono_array_size_t instead of int.
1923
1924         Based on patch by Luis F. Ortiz.
1925         Contributed under X11 license.
1926         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1927
1928 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1929
1930         * icall.c: Added ves_icall_System_Array_GetLongLength and
1931         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
1932         arrays.
1933
1934         * icall.h: Export both new functions.
1935
1936         Based on patch by Luis F. Ortiz.
1937         Contributed under X11 license.
1938         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1939
1940 2008-05-28  Martin Baulig  <martin@ximian.com>
1941
1942         The debugger now requires exactly r103463.
1943
1944         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
1945         This version is not supported by the debugger, wait for 72.
1946
1947 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1948
1949         * object.h: Changed array related functions to use
1950         mono_array_size_t instead of guint32. Forgot to commit this file.
1951
1952         Patch by Luis F. Ortiz.
1953         Contributed under X11 license.
1954         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1955
1956
1957 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1958
1959         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
1960         don't define it. Use the number literal instead.
1961
1962 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1963
1964         * icall.c: Changed array related functions to use
1965         mono_array_size_t instead of guint32.
1966
1967         * icall.c (ves_icall_System_Array_GetLength): Check for length
1968         overflow under MONO_BIG_ARRAYS.
1969
1970         Based on patch by Luis F. Ortiz.
1971         Contributed under X11 license.
1972         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1973
1974 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1975
1976         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
1977
1978         Based on patch by Luis F. Ortiz.
1979         Contributed under X11 license.
1980         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1981
1982 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1983
1984         * object.c, object.h: Changed array related functions to use
1985         mono_array_size_t instead of guint32.
1986
1987         Patch by Luis F. Ortiz.
1988         Contributed under X11 license.
1989         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1990
1991 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1992
1993         * object.h: Introduced mono_array_size_t typedef. This must be used
1994         in all places an array length is expected. This is 64bits wide if
1995         MONO_BIG_ARRAYS is enabled.
1996
1997         Patch by Luis F. Ortiz.
1998         Contributed under X11 license.
1999         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2000
2001 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
2002
2003         * security-manager.c class.c: Set the class exception info by calling
2004         mono_class_set_failure ().
2005
2006         * class.c (mono_class_get_exception_data): New accessor function.
2007         (mono_class_set_failure): Store exception_data in the property hash.
2008
2009         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
2010         the struct as a property.
2011
2012         * loader.c (mono_get_method_full): Store the lookup result for method
2013         tokens in method_cache, the others in methodref_cache to decrease the memory
2014         usage of hash tables.
2015
2016         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
2017         (mono_image_init): method_cache is lazy inited now.
2018
2019         * metadata-internals.h (struct _MonoImage): Change method_cache to
2020         a MonoValueHashTable, add a separate methodref_cache.
2021
2022 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
2023
2024         * number-formatter.h: Fix tables to avoid arithemtic overflow in
2025           Double.ToString as exposed by Bug #383531.
2026
2027 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
2028
2029         * number-formatter.h: Make some tables static.
2030
2031         * class.c (mono_method_set_generic_container): New accessor function.
2032         (mono_method_get_generic_container): Ditto.
2033
2034         * class-internals.h (struct _MonoMethod): Remove rarely used 
2035         'generic_container' field, store it in the property hash instead. Add 
2036         'is_generic' boolean field instead.
2037
2038         * image.c (mono_image_init): Initialize property_hash.
2039         (mono_image_close): Destroy property_hash.
2040
2041         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
2042         hold rarely used fields of runtime structures belonging to this image.
2043
2044         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
2045         to get/set method->generic_container.
2046
2047         * loader.c (mono_get_method_from_token): Avoid loading the method header for
2048         generic methods.
2049
2050 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
2051
2052         * class.c (mono_class_inflate_generic_method_full): Don't increase
2053         mono_stats.inflated_method_count for methods found in the cache.
2054
2055         * threads.c (mono_thread_request_interruption): Add a comment about 
2056         QueueUserAPC ().
2057
2058 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
2059
2060         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
2061         interface_offsets_packed table.
2062         
2063         * class.c (mono_class_init): Remove some dead code.
2064
2065         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
2066         mono_class_setup_vtable () when CAS is active to detect security problems.
2067
2068 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
2069
2070         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
2071
2072         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
2073         parameters as it's irrelevant for delegate checking.
2074
2075 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
2076
2077         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
2078
2079         * class.c (mono_class_init): Control the creation of a generic vtable using
2080         a global which is true by default, but set to false by the runtime startup code.
2081         
2082         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
2083         Disabled for now since it breaks the embedding API.
2084         Move the setup of class->methods for arrays to mono_class_setup_methods ().
2085         (mono_class_setup_methods): Add a memory barrier.
2086
2087         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
2088         when mono_class_init () doesn't compute the generic vtable.
2089         
2090 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
2091         * profiler.c: Added mono_profiler_install_statistical_call_chain,
2092         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
2093         to support call chains (backtrace) in the stat profiler.
2094         * profiler.c, profiler-private.h: Likewise.
2095
2096 2008-05-22  Mark Probst  <mark.probst@gmail.com>
2097
2098         * generic-sharing.c: Init generic class when a method of it is
2099         requested via a runtime generic context.
2100
2101 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
2102
2103         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
2104
2105         * reflection.c (mono_type_get_object): Add a FIXME.
2106
2107         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
2108
2109         * class.c (mono_class_get_method_by_index): New helper function, returning an
2110         entry in the class->methods array.
2111
2112 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2113
2114         * class.c (mono_class_init): Only do the array optimization for szarrays. 
2115         Avoid creating a generic vtable for generic instances as well.
2116         (mono_class_get_method_from_name_flags): Don't search in the metadata for
2117         generic instances.
2118
2119 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
2120
2121         * loader.c (mono_get_method_constrained): Inflate the signature
2122         with class context. Fix #325283.
2123
2124 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2125
2126         * object.c (mono_class_create_runtime_vtable): Add a comment.
2127
2128         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
2129         where needed.
2130         (setup_interface_offsets): Handle the case when this is called twice for arrays.
2131         (mono_class_setup_vtable_general): Add an assert.
2132         (mono_class_init): Avoid creating a generic vtable for arrays.
2133
2134         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
2135         here, let mono_class_init () do that.
2136
2137         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
2138         interfaces in mscorlib.
2139
2140         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
2141         interfaces. Add some comments.
2142         (mono_class_init): Call mono_class_setup_methods () here since it is no
2143         longer called by mono_class_setup_vtable ().
2144
2145         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
2146         not set in class->vtable.
2147         (mono_class_create_runtime_vtable): Reenable the disabled code.
2148
2149         * object.c (mono_class_create_runtime_vtable): Disable the last change for
2150         now as it causes some test failures.
2151
2152         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
2153         if using the vtable trampoline. Also remove some strange code which put the
2154         generic methods themselves into the vtable slots. Remove the AOT init_vtable
2155         stuff as it is no longer needed.
2156
2157 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
2158
2159         * pedump.c: Give make --verify all option check code as well.
2160         Using --verify code won't check for metadata now.
2161
2162 2008-05-19  Martin Baulig  <martin@ximian.com>
2163
2164         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
2165
2166         * mono-debug.c
2167         (_mono_debug_using_mono_debugger): New global variable; it's set
2168         directly by the debugger, so mono_debug_using_mono_debugger() also
2169         works after attaching.
2170
2171 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
2172
2173         * object.c (mono_class_create_runtime_vtable): Use memory barriers
2174         as we do double checked locking on MonoClass::runtime_info and
2175         MonoClassRuntimeInfo::domain_vtables.
2176
2177 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
2178
2179         * debug-helpers.c (print_field_value): Fix a warning.
2180
2181 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
2182
2183         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
2184         set in the AOT case.
2185
2186 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2187
2188         * class.c (mono_class_setup_vtable_general): Use memory barriers
2189         as we do double checked locking on MonoClass::vtable.
2190
2191 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2192
2193         * reflection.c (resolve_object): Inflate only if the generic context
2194         is not null. Fixes #389886.
2195
2196 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
2197
2198         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
2199         instead of g_free.
2200
2201         Code is contributed under MIT/X11 license.
2202
2203 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2204
2205         * class.c: Revert unrelated change.
2206
2207 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2208
2209         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
2210         a generic instantiation, use mono_class_from_mono_type instead of playing
2211         with MonoType directly.
2212
2213 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2214
2215         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
2216         checks must ignore generic instantiations, so mono_class_has_parent is not
2217         suitable. Fixes #390128.
2218
2219 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
2220
2221         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
2222         it to avoid registering tokens during metadata generation. Fixes #390023.
2223
2224 2008-05-14  KornĂ©l Pál  <kornelpal@gmail.com>
2225
2226         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
2227         consistent.
2228
2229         Contributed under MIT/X11 license.
2230
2231 2008-05-14  KornĂ©l Pál  <kornelpal@gmail.com>
2232
2233         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
2234         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
2235         to fixup the EXE image.
2236         (mono_cleanup): Use mono_close_exe_image.
2237         (mono_close_exe_image): New function.
2238         * image.c: Include "marshal.h".
2239         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
2240         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
2241         counting when the image is loaded outside of mono_image_open_full. Set status
2242         based on GetLastError.
2243         * coree.c: Include required headers. Add init_from_coree.
2244         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
2245         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
2246         (_CorExeMain): Set init_from_coree.
2247         (CorExitProcess): Only call ExitProcess for now.
2248         (CorBindToRuntimeEx): New stub implementation.
2249         (CorBindToRuntime): New function.
2250         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
2251         (MonoFixupExe): ILONLY executables require no fixups.
2252         (mono_set_act_ctx): New function to set activation context.
2253         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
2254         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
2255         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
2256         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
2257         as MONO_INTERNAL.
2258         * domain-internals.h: Add mono_close_exe_image.
2259
2260         Contributed under MIT/X11 license.
2261
2262 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
2263
2264         * metadata.c (mono_metadata_compute_size): Correctly calculate field
2265         size for generic param and event tables. Fixes #388977.
2266
2267 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
2268
2269         * loader.c (mono_method_signature): Use memory barriers because of the double
2270         checked locking pattern.
2271
2272         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
2273         aborting or aborted as well. Fixes #376391.
2274         
2275         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
2276         existing runtime state in the Suspend handler during shutdown.
2277
2278 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
2279
2280         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
2281
2282         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
2283         which are starting up or shutting down.
2284
2285         * threads.c (mono_threads_set_shutting_down): Don't return a value since
2286         this function never returns if the runtime is already shutting down.
2287
2288         * icall.c (ves_icall_System_Environment_Exit): Update after 
2289         mono_threads_set_shutting_down () signature change.
2290         
2291 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
2292
2293         * class.c: Added can_access_instantiation to verify if the instantiation
2294         is visible. Fix access check for nested types as they returned TRUE
2295         before doing type and generic instantiation visibility checks.
2296
2297 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2298
2299         * reflection.c (mono_reflection_create_generic_class): The created type
2300         must have a different container from its TypeBuilder. Otherwise they
2301         will end sharing generic arguments, which is wrong.
2302
2303         Due to the sharing, making a generic instance of the created type using
2304         the TypeBuider generic arguments resulted in the generic type definition
2305         been returned, which is wrong as well.
2306
2307         As a bonus the code was leaking the type_params array. This memory should
2308         be allocated from the image mempool.
2309
2310         This fixes bug #354047.
2311
2312 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2313
2314         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
2315         to here         as they are now used in assembly.c new code.
2316         Added a skipverification flag to MonoAssembly.
2317         New internal function mono_assembly_has_skip_verification.
2318
2319         * assembly.c: New function mono_assembly_has_skip_verification. It checks
2320         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
2321         part of #387274.
2322
2323 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2324
2325         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
2326         needed. Fixes #387034.
2327
2328         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
2329
2330 2008-05-06  Miguel de Icaza  <miguel@novell.com>
2331
2332         * assembly.c (mono_assembly_load_reference): Prevent crash while
2333         disassembling Silverlight 2.0 executables while we still do not
2334         have GACed libraries.
2335
2336 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2337
2338         * reflection.c: Special case generic type definitions as well. Fixes #383444.
2339
2340 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
2341
2342         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
2343         of the dynamic case. Fixes #387404.
2344
2345 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2346
2347         *verify.c (mono_verifier_is_class_full_trust): If under
2348         verify_all and the verifier mode was not set, only
2349         gac and corlib types are fulltrust. This makes --verify-all
2350         usable to detect unverifiable code, which is the expected
2351         use case.
2352
2353 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2354
2355         * verify.h: Ops, commited the header with debug
2356         enabled.
2357
2358 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2359
2360         * verify.c (merge_stack): Use the new value on unverifiable
2361         stack merges.
2362
2363         * verify.c (verify_type_compatibility_full): Comparison
2364         of nullable types can't use mono_class_is_assignable_from.
2365
2366         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
2367         that makes all verification errors be reported.
2368
2369         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
2370         mono_method_verify.
2371
2372 2008-05-05  Robert Jordan  <robertj@gmx.net>
2373
2374         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
2375         support for value types. See #386415.
2376
2377         * object.c: comments.
2378
2379         Code is contributed under MIT/X11 license.
2380
2381 2008-05-05  Martin Baulig  <martin@ximian.com>
2382
2383         * debug-mono-symfile.h
2384         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
2385         for old pre-terrania symbol files.
2386
2387 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2388
2389         * mono-config.c: Add ppc64 architecture.
2390
2391         Code is contributed under MIT/X11 license.
2392
2393 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2394
2395         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
2396           PPC64 uses function descriptors as well.
2397
2398         Code is contributed under MIT/X11 license.
2399
2400 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
2401
2402         * object.c (compute_class_bitmap): Ignore literal static fields.
2403
2404         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
2405         var has an invalid format.
2406         (describe_ptr): Add some sanity checks for the vtable.
2407         (add_nursery_frag): Clear unused nursery fragments.
2408         (major_collection): Clear all remaining nursery fragments.
2409
2410 2008-05-03  Robert Jordan  <robertj@gmx.net>
2411
2412         * image.c, metadata-internals.h: add thunk_invoke_cache.
2413
2414         * marshal.c, marshal.h: implement
2415         mono_marshal_get_thunk_invoke_wrapper ().
2416
2417         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
2418
2419         Code is contributed under MIT/X11 license.
2420
2421 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2422
2423         * verify.c (do_leave): Empty the stack.
2424
2425 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2426
2427         * class.c (mono_class_is_assignable_from): Variance
2428         doesn't work between reference and value types. For example,
2429         given type C<T+>, C<int32> is not assignable to C<object>.
2430         Break the argument checking loop on first error. 
2431
2432 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
2433
2434         * icall.c : base64_to_byte_array() needs some more strict
2435           check for sequence of '=' characters. Patch by Santa
2436           Marta (http://deee.g.hatena.ne.jp/santamarta).
2437
2438           Contributed under MIT/X11 license.
2439           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
2440
2441 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
2442
2443         * domain.c: Disable LoadLibrary support to fix Win32 build.
2444
2445         Code is contributed under MIT/X11 license.
2446
2447 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
2448
2449         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
2450         to help with cache behaviour.
2451
2452 2008-05-01  Miguel de Icaza  <miguel@novell.com>
2453
2454         * appdomain.c (mono_domain_from_appdomain): Add new accessor
2455         method. 
2456
2457 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
2458
2459         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
2460
2461 2008-05-01  Dick Porter  <dick@ximian.com>
2462
2463         * process.c (process_get_fileversion): Only pass 16 bits of
2464         language ID to VerLanguageName.  Fixes bug 381204.
2465
2466 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2467
2468         * verify.c (mono_method_verify): Fix the comparison
2469         operator for code bounds check.
2470
2471 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2472
2473         * verify.c (mono_method_verify): Check the bounds of
2474         all access of the code array.
2475
2476 2008-04-29  KornĂ©l Pál  <kornelpal@gmail.com>
2477
2478         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
2479
2480 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
2481
2482         * image.c (mono_image_strong_name_position): Fix return value when the rva is
2483         not valid.
2484
2485 2008-04-28  KornĂ©l Pál  <kornelpal@gmail.com>
2486
2487         * loader.c (mono_get_method_from_token, mono_method_signature): Add
2488         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
2489         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
2490         fixup main EXE images when using mono.exe for mixed-mode assembly support.
2491         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
2492         mono_runtime_load.
2493         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
2494         runtime initialization from metadata.
2495         * assembly.c: Remove obsolete ceGetModuleFileNameA.
2496         (mono_set_rootdir): Use mono_get_module_file_name.
2497         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
2498         handles.
2499         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
2500         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
2501         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
2502         MonoCLIImageInfo. Add support for module handles.
2503         (load_cli_header): Update mono_cli_rva_image_map signature.
2504         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
2505         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
2506         (mono_image_rva_map): Add support for module handles.
2507         (mono_image_ensure_section_idx): Add support for module handles.
2508         (mono_image_close): Add support for module handles.
2509         (do_load_header): Add support for module handles.
2510         (mono_image_open_from_module_handle): New function for internal use.
2511         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
2512         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
2513         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
2514         handles.
2515         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
2516         * image.h: Add mono_image_fixup_vtable.
2517         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
2518         support.
2519         * coree.h: New file.
2520         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
2521         unsupported native code.
2522         (mono_marshal_set_callconv_from_modopt): New function splitted from
2523         mono_marshal_get_managed_wrapper.
2524         (mono_marshal_get_managed_wrapper): Use
2525         mono_marshal_set_callconv_from_modopt.
2526         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
2527         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
2528         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
2529         that results in a deadlock when the runtime is loaded in _CorDllMain.
2530         * Makefile.am: Add coree.c and coree.h.
2531
2532         Contributed under MIT/X11 license.
2533
2534 2008-04-28  Mark Probst  <mark.probst@gmail.com>
2535
2536         * generic-sharing.c: Search for type arguments in array element
2537         types as well.
2538
2539 2008-04-28  Mark Probst  <mark.probst@gmail.com>
2540
2541         * class-internals.h, generic-sharing.c: New, small runtime generic context.
2542
2543         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
2544
2545         * object.c: Don't setup the RGCTX when the vtable is created,
2546         because we're setting it up lazily now.
2547
2548 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
2549
2550         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
2551         64 bit support.
2552
2553 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
2554
2555         * verify.c (verify_class_for_overlapping_reference_fields): 
2556         If class is under fulltrust allow reference types to overllap
2557         if they have the same RVA.
2558
2559 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
2560
2561         * pedump.c: Added new flag valid-only, that makes the verifier
2562         behaves just like --security=validil. It won't fail type load
2563         due to unverifiable restrictions.
2564
2565 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
2566
2567         * class-internals.h (struct MonoMethod): Added a verification_success
2568         field to cache verifier executions. Reduced MonoMethod:slot size by
2569         one bit.
2570
2571 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
2572
2573         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
2574         instead of a 'vt' argument to save an indirection and to allow these to be used
2575         for valuetypes.
2576         (scan_vtype): New helper function to scan an area using a gc descriptor.
2577         (mono_gc_wbarrier_value_copy): Implement this.
2578         (handle_remset): Add support for REMSET_VTYPE.
2579         (find_in_remset_loc): Ditto.
2580         (mono_gc_base_init): Allow some debugging options to be controlled through the
2581         use of the MONO_GC_DEBUG env variable.
2582         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
2583         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
2584
2585 2008-04-23  Martin Baulig  <martin@ximian.com>
2586
2587         * domain.c (mono_domain_create): Move the call to
2588         mono_debug_domain_create() down, after allocating the domain id.
2589
2590 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
2591
2592         verify.c (verify_class_for_overlapping_reference_fields): Skip
2593         static fields while verifying for overlapping fields as they
2594         don't matter at all.
2595
2596 2008-04-23  Marek Habersack  <mhabersack@novell.com>
2597
2598         * domain-internals.h: added a declaration of
2599         mono_make_shadow_copy.
2600
2601         * assembly.c (mono_assembly_open_full): shadow copying of
2602         assemblies moved to here, so that all the assemblies within the
2603         application domain's private binary directories can be
2604         processed. Fixes bug #380546
2605
2606         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
2607         mono_make_shadow_copy and made non-static. The decision whether
2608         to shadow-copy an assembly is made based on its location - it's
2609         copied if it's in one of the private application domain binary
2610         directories and its different to the target file in the shadow
2611         directory. Fixes bug #380546
2612
2613 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
2614
2615         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
2616
2617         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
2618         types.
2619
2620         * reflection.c (mono_image_create_token): Handle 
2621         Method/ConstructorOnTypeBuilderInst.
2622         (resolve_object): Ditto.
2623         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
2624         so it can be called from resolve_object. Also handle the case when the inflated
2625         class already has its methods setup.
2626
2627 2008-04-21  Martin Baulig  <martin@ximian.com>
2628
2629         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
2630
2631 2008-04-20  Geoff Norton  <gnorton@novell.com>
2632
2633         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
2634         pointer dereference.
2635
2636 2008-04-15  Marek Habersack  <mhabersack@novell.com>
2637
2638         * appdomain.c (try_load_from): if IOMAP is in effect, call the
2639         portability API to look up the assembly file. Fixes behavior in
2640         situations when the application has a bin/ directory, but the
2641         assembly search patch refers to Bin/ (and thus the requested file
2642         name is Bin/SomeLibrary.dll). Fixes bug #379888
2643
2644 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
2645
2646         verify.c (mono_type_is_generic_argument): Extracted this check
2647         from a dozen places to here.
2648
2649         verify.c: Fixed all issues related to boxing generic arguments
2650         and their constraints.
2651
2652 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
2653
2654         verify.c (mono_class_interface_implements_interface): Fix win32 build.
2655
2656 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
2657
2658         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
2659         isn't finished yet. Fixes #363447.
2660
2661 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
2662
2663         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
2664         Fixes #346419.
2665
2666 2008-04-13  Jb Evain  <jbevain@novell.com>
2667
2668         * domain.c: update the 2.1 profile versions.
2669         Merged from the Moonlight 2 branch.
2670
2671 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
2672
2673         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
2674         mscorlibs for the non-refonly case as well.
2675
2676         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
2677         in mono_assembly_load_from_full (). Fixes #378924.
2678
2679 2008-04-11  Geoff Norton  <gnorton@novell.com>
2680
2681         * icall.c: The global extern environ doesn't exist on Mac.  We
2682         need to call NSGetEnviron instead.
2683
2684 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2685
2686         verify.c: Add generic method constraint verification.
2687
2688 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2689
2690         class.c (mono_class_inflate_generic_method_full): Add a long
2691         explanation to the is_mb_open hack. Remove the FIXME.
2692
2693 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2694
2695         * verify.c (mono_method_verify): Mark all unknown opcodes
2696         as invalid. Mark jmp as unverifiable.
2697
2698 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2699
2700         * verify.c: Add code to do type constraint verification on class instances.
2701
2702         * verify.c (mono_verifier_verify_class): Use the type constraint 
2703         verification code.
2704
2705 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2706
2707         * class.c (mono_class_get_field_default_value): Don't pass cindex
2708         as hint to mono_metadata_get_constant_index. The local is not initialized
2709         and should contain garbage most of the time. This could only work
2710         with a lot of luck.
2711
2712 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
2713
2714         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
2715
2716 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
2717
2718         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
2719
2720         * class.c (mono_class_from_generic_parameter): Save the token of the
2721         generic param in MonoClass::sizes.generic_param_token.
2722
2723         * reflection.c (mono_custom_attrs_from_class): If the class type is
2724         VAR or MVAR retrieve the attributes of the generic param.
2725
2726 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2727
2728         * class.c (mono_class_init): Do class verification if the verifier
2729         is enabled.
2730
2731 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2732
2733         * verify-internal.h: Added mono_verifier_verify_class.
2734
2735         * verify.c: Added mono_verifier_verify_class. It checks for
2736         classes with explicit layout that have overlapping reference fields.
2737
2738         * pedump.c: Init the verifier state prior to verification. Fixed
2739         command line arguments.
2740
2741 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2742
2743         * Makefile.am: Added verify-internals.h, hopefully fix the build.
2744
2745 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
2746
2747         * verify-internals.h: Fix a warning.
2748
2749 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
2750
2751         * verify-internals.h: New header with the verifier configuration
2752         extracted from mini.c.
2753
2754         * verify.c: Implemented the new functions exported by verify-internals.h.
2755
2756 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
2757
2758         * verify.c: Add proper verification of ckfinite.
2759
2760 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2761
2762         * verify.c (do_conversion): Improved error message to something
2763         more meanfull.
2764
2765         * verify.c (check_is_valid_type_for_field_ops): Fix to work
2766         with primitive types.
2767
2768 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2769
2770         * verify.c: Added tail prefix checking. Marked icall
2771         as unverifible.
2772
2773 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2774
2775         * verify.c: Fix the detection of branches to the middle
2776         of an instruction.
2777
2778 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
2779
2780         * verify.c: Implemented verification of volatile. and
2781         unaligned. prefix. Check if a type is valid after retrieving it.
2782
2783 2008-04-01  Dick Porter  <dick@ximian.com>
2784
2785         * process.c (process_get_fileversion): If there's no string block,
2786         set the file language to en_US.  Fixes the other new part of bug
2787         374600.
2788
2789 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
2790
2791         * class.c: New functions mono_method_can_access_field_full and
2792         mono_method_can_access_method_full. They perform type visibility
2793         and type site check.
2794
2795         * class-internal.h: Added exported functions.
2796
2797         * verify.c: Use new functions to implement proper visibility checks.
2798
2799 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
2800
2801         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
2802
2803 2008-03-28  Dick Porter  <dick@ximian.com>
2804
2805         * process.c (process_get_fileversion): Use the first language ID
2806         we see, rather than insisting on an invariant language.  Fixes bug
2807         374600.
2808
2809 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
2810
2811         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
2812         the streams to fix reading of invalid memory later.
2813
2814         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
2815         to ease debugging.
2816
2817 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
2818
2819         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
2820         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
2821
2822 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
2823         * threads.h: Added MonoThreadManageCallback type and
2824         mono_thread_set_manage_callback prototype
2825         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
2826         (used to store the mono_thread_manage callback).
2827         * threads.c: Added mono_thread_set_manage_callback, and handle
2828         "MonoThread->manage_callback" in build_wait_tids.
2829
2830 2008-03-26  Dick Porter  <dick@ximian.com>
2831
2832         * process.c (process_get_fileversion): Set FileVersionInfo strings
2833         to Empty when the resource doesn't have the particular info.
2834         Fixes bug 355717.
2835
2836 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
2837
2838         * verify.c (mono_method_verify): Proper prefix validation.
2839
2840 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
2841
2842         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
2843         itself in a separate argument instead of throwing them. Fixes #373448.
2844
2845         * appdomain.c: Bump corlib version.
2846
2847 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
2848
2849         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
2850
2851 2008-03-20  KornĂ©l Pál  <kornelpal@gmail.com>
2852
2853         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
2854         version macros.
2855
2856 2008-03-20  Mark Probst  <mark.probst@gmail.com>
2857
2858         * generic-sharing.c, class-internals.h: Code for putting
2859         reflection types into the runtime generic context.
2860
2861 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
2862
2863         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
2864         Fixes #340662. 
2865
2866
2867 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
2868
2869         * verify.c (VerifyContext): Added instruction prefix data to the struct.
2870
2871         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
2872
2873         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
2874
2875         * verify.c (do_cast): Let the result value keep the boxed status.
2876
2877         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
2878
2879 2008-03-17  Jb Evain  <jbevain@novell.com>
2880
2881         * reflection.c: when running on a 2.0 runtime, emit
2882         unconditionally the #~ header version as 2.0, and the
2883         CLI header version as 2.5, for symmetry's sake with csc.
2884
2885 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
2886
2887         * class.c: Remove the unused cache_interface_offsets stuff.
2888
2889         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
2890         profiler.c: Fix warnings.
2891
2892 2008-03-16  Mark Probst  <mark.probst@gmail.com>
2893
2894         * generic-sharing.c, class-internals.h: Support for putting
2895         methods into the runtime generic context.
2896
2897 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
2898
2899         * class.c (mono_class_setup_fields): Ignore calls made to this function for
2900         classes which are generic instances of not-yet finished typebuilders. Fixes
2901         #351172.
2902
2903         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
2904
2905 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
2906
2907         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
2908
2909         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
2910         field, replace it with a hash table in MonoDynamicImage.
2911
2912         * reflection.c (inflate_mono_method): Access the generic definition object from
2913         image->generic_def_objects instead of imethod->reflection_info.
2914
2915         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
2916
2917         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
2918         
2919         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
2920         function in reflection.c so it is easier to keep in sync with the dynamic image
2921         creation code.
2922
2923         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
2924         mono_image_close ().
2925
2926 2008-03-15  Mark Probst  <mark.probst@gmail.com>
2927
2928         * class.c (mono_class_generic_sharing_enabled): Disable generic
2929         sharing for all architectures except AMD64 and x86 to fix build.
2930
2931 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
2932
2933         * verify.c: Use the generic definition MonoGenericContext when available.
2934         Remove code for checking generics instance compatibility in favor of
2935         mono_class_is_assignable_from.
2936
2937 2008-03-14  Mark Probst  <mark.probst@gmail.com>
2938
2939         * marshal.c, marshal.h, metadata-internals.h, image.c,
2940         wrapper-types.h: New wrapper for invoking a shared static method
2941         without having to pass the runtime generic context argument.
2942
2943 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
2944
2945         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
2946
2947 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
2948
2949         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
2950         
2951         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
2952         create a token from a FieldOnTypeBuilderInst.
2953         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
2954         (resolve_object): Ditto.
2955
2956         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
2957         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
2958
2959 2008-03-14  Martin Baulig  <martin@ximian.com>
2960
2961         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
2962
2963         * debug-mono-symfile.h
2964         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
2965         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
2966
2967 2008-03-10  Martin Baulig  <martin@ximian.com>
2968
2969         * debug-mono-symfile.h
2970         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
2971         `lexical_block_table_offset'.
2972         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
2973         `lexical_blocks'.
2974         (MonoSymbolFile): Added `version'.
2975
2976         * mono-debug.h
2977         (MonoDebugLexicalBlockEntry): Removed.
2978         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
2979         `lexical_blocks'.
2980
2981         * mono-debug.c (mono_debug_add_method): Don't compute lexical
2982         blocks here; the debugger now does this internally.
2983
2984 2008-02-27  Martin Baulig  <martin@ximian.com>
2985
2986         * object.c (mono_runtime_exec_main): Call
2987         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
2988         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
2989
2990 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
2991
2992         * verify.c (verify_type_compatibility_full): Allow native int to be converted
2993         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
2994
2995 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
2996
2997         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
2998         ldftn with a virtual method.
2999
3000 2008-03-13  Geoff Norton  <gnorton@novell.com>
3001
3002         * decimal.c:  Only include memory.h if the platform has it.
3003
3004 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
3005
3006         * assembly.c, class.c, metadata-internals.h: make sure public key
3007         tokesns are compared in a case-insensitive way. Also, all
3008         the lookups in the GAC use a lowercase public key token
3009         (gaacutil already does the lowercasing on install). Fixes
3010         bug #369541.
3011
3012 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
3013
3014         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
3015         and return value.
3016
3017 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
3018
3019         * image.c: when someone loads a mscorlib from a file, return the
3020         currently loaded mscorlib (fixes bug #369253).
3021
3022 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3023
3024         * class.c: handle types with no parents by forcing them to have
3025         System.Object as a parent and marking them as broken (this currently
3026         allows the first part of bug #369173 to work as well, likely because
3027         we don't check for typeload exceptions everywhere yet).
3028
3029 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
3030
3031         * class.c: more complete check that types belong to corlib
3032         (fixes second part of bug #369173).
3033
3034 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
3035
3036         * generic-sharing.c:  Including glib.h for the MSVC builds to define
3037           "inline" to "__inline" before including mono-membar.h.
3038           
3039         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
3040           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
3041           MSVC builds.
3042
3043         Contributed under MIT/X11 license.
3044
3045 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3046
3047         * verify.c (do_invoke_method): Remove return type validation.
3048
3049         * verify.c (do_ret): Do return type validation at return site instead of
3050         call site.
3051
3052 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3053
3054         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
3055
3056         * verify.c: Some todos cleaned and improved a few error messages.
3057
3058 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
3059
3060         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
3061
3062 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
3063
3064         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
3065         system types correctly.
3066
3067         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
3068         function.
3069
3070 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3071
3072         * assembly.c (build_assembly_name): Fix a warning.
3073
3074 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3075
3076         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
3077         the called function takes an object type argument. Fixes storing or
3078         valuetypes across remoting as well as reducing memory usage.
3079         * image.c, metadata-internals.h: remove now unused ldfld_remote and
3080         stfld_remote wrapper caches.
3081
3082 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3083
3084         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
3085         is not found.
3086
3087         * reflection.c (mono_image_register_token): New helper function to save
3088         a token->object mapping.        
3089
3090         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
3091         managed code.
3092
3093         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
3094         one dimension arrays. Fixes #367670.
3095         (mono_reflection_get_type_internal): Ditto.
3096
3097 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
3098
3099         * marshal.c: mono_load_remote_field_new() always returns object.
3100         so use the proper signature (fixes bug #366445).
3101
3102 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3103         
3104         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
3105         add an 'inline_failure' flag instead.
3106
3107 2008-03-04  Mark Probst  <mark.probst@gmail.com>
3108
3109         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
3110         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
3111         contains the location of "this", used for exception handling.
3112
3113 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3114
3115         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
3116         their size on all platforms for perf reasons.
3117
3118 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3119
3120         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
3121         object-internal.h
3122
3123         * object-internal.h: Same.
3124
3125 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3126
3127         * reflection.h: Fix the build I just broke.
3128
3129 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3130
3131         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
3132         Test if a token is valid, this remove explicit usage of 
3133         MonoDynamicImage::tokens from the verifier code.
3134
3135         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
3136
3137         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
3138         instead of direct access to MonoDynamicImage::tokens.
3139
3140 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3141
3142         * verify.c (token_bounds_check): Fix the build I just broke.
3143
3144 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3145
3146         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
3147
3148         * verify.c (verifier_load_method): Fixed the errors message.
3149
3150         * verify.c (mono_method_verify): Fixed a debug message.
3151
3152 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
3153
3154         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
3155         mono-perfcounters.h, class-internals.h: support for predefined
3156         writable counters, query of categories and counters, bugfixes.
3157
3158 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3159
3160         * verify.c (do_refanytype): Verify the refanytype opcode.
3161
3162         * verify.c (mono_method_verify): Use do_refanytype.
3163
3164 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3165
3166         * verify.c (do_mkrefany): Verify the mkrefany opcode.
3167
3168         * verify.c (mono_method_verify): Use do_mkrefany.
3169
3170 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
3171
3172         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
3173         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
3174         implementation.
3175
3176 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3177
3178         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
3179         the type load exception.
3180
3181 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
3182
3183         * verify.c: Added a few FIXME for method signatures
3184
3185         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
3186         of mono_method_get_signature and get vararg call working. Removed unused
3187         checks for return value.
3188
3189         * verify.c (do_refanyval): Verify the refanyval opcode.
3190
3191         * verify.c (mono_method_verify): Implemented verification of arglist and
3192         use do_refanyval.
3193
3194 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3195
3196         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
3197         vtypes to marshal.c.
3198
3199         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
3200         it works for AOT as well.
3201
3202 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3203
3204         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
3205         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
3206         the system time is adjusted.
3207
3208 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
3209
3210         * icall.c, icall-def.h: use the new time functions (fixes the
3211         non-monotonic behaviour of TickCount).
3212
3213 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
3214
3215         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
3216         it breaks the build.
3217         
3218         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
3219         cattr is not finished yet.
3220
3221 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3222
3223         * verify.c: Proper token validation for field, method and type.
3224
3225 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3226
3227         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
3228
3229         * loader.c (method_from_memberref): Generate type load error instead of method missing
3230         if the type is not found.
3231
3232 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
3233
3234         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
3235         some of the conversions caused the generation of a marshal directive exception.
3236
3237 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3238
3239         verify.c: Report which exception should be thrown by the JIT.
3240         Added a lot of FIXME notes.
3241
3242 2008-02-22  Mark Probst  <mark.probst@gmail.com>
3243
3244         * generic-sharing.c: Runtime generic context slots are not
3245         instantiated on init anymore.  Instead, provide function to do the
3246         instantiating on demand.
3247
3248         * class-internals.h: Added vtable to runtime generic context.
3249         Macros for encoding direct and indirect slot offsets in one
3250         guint32.
3251
3252 2008-02-21  Mark Probst  <mark.probst@gmail.com>
3253
3254         * object.c, generic-sharing.c: Moved some generic sharing code
3255         from object.c to generic-sharing.c.
3256
3257         * generic-sharing.c: Added support for extensible runtime generic
3258         context.
3259
3260         * metadata-internals.h: Two new hash tables in MonoImage for
3261         extensible runtime generic context support.
3262
3263         * domain.c: Unregister generic vtables upon domain unloading.
3264
3265         * image.c: Destroy new hash tables upon image unloading.
3266
3267         * metadata.c: Unregister generic subclasses upon image unloading.
3268
3269         * class-internals.h: New data structure for runtime generic
3270         context template.  New fields in the runtime generic context for
3271         extensible part.
3272
3273         * Makefile.am: Added generic-sharing.c.
3274
3275 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3276
3277         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
3278         there is a pending loader exception, raise it.
3279
3280         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3281         same.
3282
3283         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
3284         same.
3285
3286         Fixes #363450.
3287
3288 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
3289
3290         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
3291
3292         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
3293         
3294         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
3295         ref-only requests for compatibility with MS.
3296
3297 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3298
3299         * reflection.c (mono_custom_attrs_from_method): Don't silently
3300         return an empty list for generic method instances.
3301         (mono_custom_attrs_from_param): Likewise.
3302
3303 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
3304             Raja R Harinath  <harinath@hurrynot.org>
3305
3306         Fix #354757
3307         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
3308         * class.c (mono_class_inflate_generic_method_full): Initialize it
3309         when a fully-open method is instantiated.
3310         * metadata.c (inflated_method_equal, inflated_method_hash): Update
3311         to new field.
3312         * reflection.c (inflate_mono_method): Don't create a temporary context.
3313
3314 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3315
3316         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3317         Compute correct value, to prepare for imethod->reflection_info going away.
3318
3319 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
3320
3321         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
3322
3323 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3324
3325         * verify.c: Implement skip visibility flag.
3326
3327 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3328
3329         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
3330         which contains an extra field to tell the kind of exception that should be thrown.
3331
3332         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
3333
3334 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
3335
3336         * loader.c (mono_method_get_param_names): Initialize 'klass' after
3337         'method' is updated.
3338
3339 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
3340
3341         * class.c (mono_class_layout_fields): Set class->min_align for classes using
3342         explicit layout as well. Fixes #360375.
3343
3344 2008-02-11  Geoff Norton  <gnorton@novell.com>
3345
3346         * loader.c: Guard and dereference against inflated generic methods
3347
3348 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
3349
3350         * class.c: Include Retargetable spec in assembly name.
3351         * assembly.c: Always include PublicKeyToken spec in assembly name
3352         (with value "null" if assembly is not signed), and include
3353         Retargetable spec.
3354         * icall-def.h: Added icall for Assembly.get_fullname.
3355         * icall.c: Added icall returning the fullname of an assembly.
3356
3357 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
3358
3359         * class.c (mono_class_setup_vtable_general): Add a missing call to
3360         mono_class_setup_methods () which is needed in the AOT case.
3361
3362 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
3363
3364         * verify.c (mono_type_get_stack_name): Added. Return the name for the
3365         stack type of the given MonoType.
3366
3367         * verify.c (verify_type_compatibility_full): Handle the void type.
3368
3369         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
3370         way stack merging works.
3371
3372         * verify.c (store_local): Improved verification message.
3373
3374         * verify.c (do_branch_op): If the merging is invalid, the method
3375         is unverifiable and not invalid. Improved error message.
3376
3377         * verify.c (merge_stacks): Properly merge a boxed valuetype and
3378         a reference type diferent than System.Object. Improved error
3379         message.
3380
3381 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
3382
3383         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
3384
3385         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
3386         type of an enum even if the argument is byref.
3387
3388         * verify.c: Replace all explicit uses of enumtype and enum_basetype
3389         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
3390
3391         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
3392
3393         *verify.c (verify_type_compatibility_full): Make enum types
3394         compatible with their base types.
3395
3396         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
3397         types are compatible for the special case of a boxed valuetype and
3398         System.Object.
3399
3400         * verify.c (verify_stack_type_compatibility): The function
3401         is_compatible_boxed_valuetype was extracted from here.
3402
3403         * verify.c (push_arg): Only set ctx->has_this_store if the method
3404         is not static.
3405
3406         * verify.c (do_ldelem): Fixed a typo in an error message and added
3407         strict check for mixing int32 and native int as the array type
3408         and ldelem type.
3409
3410         * verify.c (merge_stacks): Consider boxed valuetypes in the
3411         compatibility checks.
3412
3413 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
3414         * profiler.h: (MonoGCEvent): Added start-stop the world events.
3415
3416 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3417         *class.c: use_new_interface_vtable_code: renamed the env var to have
3418         a "MONO_" prefix, and fix the logic to enable it by default.
3419
3420 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3421         *class.c:
3422         mono_class_setup_vtable_general: rewrote the way in which interface
3423         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
3424         makes the code more maintainable.
3425         For now the old code is still there, and can be activated setting
3426         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
3427
3428 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
3429
3430         * verify.c: guarded some debug functions around and #ifdef.
3431
3432         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
3433
3434 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
3435
3436         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
3437         changes for now since they seem to break too many things.
3438
3439 2008-02-05  Mark Probst  <mark.probst@gmail.com>
3440
3441         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
3442         mono_marshal_find_nonzero_bit_offset): Added macro and function
3443         for finding the byte- and bit-offset of a bitfield within a
3444         struct.
3445
3446 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
3447
3448         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
3449         (mono_marshal_get_struct_to_ptr): Ditto.
3450
3451         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
3452         cctor_signature.
3453
3454 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
3455
3456         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
3457         between methods for non-corlib types.
3458
3459 2008-02-02  Geoff Norton  <gnorton@novell.com>
3460
3461         * loader.c (mono_method_get_param_names): Populate the parameter name for 
3462         generic parameters as well. (Fixes #342536)
3463
3464 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
3465
3466         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
3467
3468         * verify.c (do_invoke_method): Fix for calling with byref structs.
3469
3470         * verify.c (do_cast): push a boxed value type based on the type token and not
3471         the type of stack.
3472
3473 2008-01-31  William Holmes  <billholmes54@gmail.com>
3474
3475         * process.c (process_module_string_read): Check the size returned form 
3476           VerQueryValue to avoid out of memory exception. 
3477
3478 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
3479
3480         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3481         Handle properly modules which are not in the moduleref table. Fixes
3482         #356938.
3483
3484 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
3485
3486         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
3487         the dynamic case which is now in managed code.
3488         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
3489
3490         * marshal.c (mono_string_to_bstr): Fix a warning.
3491         (init_com_provider_ms): Ditto.
3492
3493         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
3494
3495         * exception.c (mono_get_exception_out_of_memory): New helper function.
3496
3497 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
3498
3499         * marshal.c: Add support for BSTR marshalling
3500         using other COM systems.
3501
3502         Code is contributed under MIT/X11 license.
3503
3504 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3505
3506         * object.c (mono_runtime_invoke_array): reverted previous
3507         commit as it breaks the build.
3508
3509 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3510
3511         * object.c (mono_runtime_invoke_array): Verify arguments for
3512         invalid types. Fixes #348522.
3513
3514 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3515
3516         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
3517         non-final virtual calls using call. 
3518
3519         * verify.c (do_invoke): fixed some TODOs.
3520
3521         * verify.c (push_arg): set has_this_store for "ldarga 0".
3522
3523 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
3524
3525         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
3526         which belong to an inflated class. Fixes #356531.
3527
3528 2008-01-26  Robert Jordan  <robertj@gmx.net>
3529
3530         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
3531         which resort to FindFirstFile when a certain error condition
3532         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
3533         Code is contributed under MIT/X11 license.
3534
3535 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
3536
3537         * marshal.c (emit_marshal_string): Fix out string marshalling
3538         to use specified encoding. Fixes #323900.
3539
3540         Code is contributed under MIT/X11 license.
3541
3542 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
3543
3544         * class.c (mono_class_inflate_generic_method_full): Don't modify
3545         iresult->context after cache check.
3546
3547 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
3548
3549         * class.c (mono_class_inflate_generic_method_full): Change the
3550         struct assignments to memcpy for better visibility and add some comments.
3551
3552 2008-01-23  Dick Porter  <dick@ximian.com>
3553
3554         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
3555         procedure, and make it work on windows.
3556
3557 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
3558
3559         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
3560         a MonoReflectionTypeBuilder since it is always of that type.
3561
3562         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
3563
3564         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
3565
3566         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
3567         
3568         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
3569
3570         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
3571
3572         * reflection.c (mono_reflection_create_runtime_class): Remove already created
3573         instantiations from the type cache.
3574
3575 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3576
3577         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
3578
3579         * verify.c (do_unbox_value): push a controled mutability managed pointer.
3580
3581 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3582
3583         * verify.c (do_ldstr): added, verifies if the #US token is valid.
3584
3585         * verify.c (mono_method_verify): removed old TODO
3586
3587 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3588
3589         * verify.c (do_newobj): add visibility check.
3590
3591 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3592
3593         * verify.c (do_load_function_ptr): add visibility check.
3594
3595 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
3596         *class.c:
3597         mono_generic_class_get_class: hook profiler events.
3598         mono_field_get_offset: added to support heap-shot in the new profiler.
3599         *class.h: exported mono_field_get_offset.
3600         * reflection.c:
3601         mono_reflection_setup_internal_class: hook profiler events.
3602
3603 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
3604
3605         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
3606         argument here too and use it to avoid checking for pending exceptions if 
3607         possible.
3608
3609 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
3610
3611         * assembly.c (build_assembly_name): add arg for passing the assembly
3612         flags. Do not consider a PublicKey with value "null" valid.
3613         (mono_assembly_name_parse_full): added boolean argument that will be
3614         set if the assembly name contains a PublicKeyToken spec. Added support
3615         for the Retargetable spec for which only Yes or No are allowed as valid
3616         value. Consider assembly name invalid if Retargetable spec is set, but
3617         either version, culture or public key (token) are not specified.
3618         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
3619         with implementation in assembly.c.
3620         * icall.c (fill_reflection_assembly_name): also copy assembly flags
3621         from MonoAssemblyName.
3622         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
3623         introduced argument for mono_assembly_name_parse_full to know if the
3624         assembly name has a PublicKeyToken spec, and if it has instruct
3625         fill_reflection_assembly_name to use default value for keyToken (if
3626         PublicKeyToken is null).
3627
3628 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
3629
3630         * verify.c (mono_method_verify): fixed ovf ops with
3631         float values. They are unverifiable now.
3632
3633 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
3634
3635         * class.c (set_failure_from_loader_error): add BadImageException to the
3636         list of exceptions that can cause a type to fail to load.
3637
3638         * class.c (mono_class_get_exception_for_failure): same.
3639
3640 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
3641
3642         * verify.c (in_any_exception_block): added, check if offset
3643         is part of any exception handling clause.
3644
3645         * verify.c (get_stack_type): added VAR and MVAR types.
3646
3647         * verify.c (do_stobj): better error messages.
3648
3649         * verify.c (do_cpobj): added, check cpobj.
3650
3651         * verify.c (do_initobj): added, check initobj.
3652
3653         * verify.c (do_sizeof): added, check sizeof.
3654
3655         * verify.c (do_localloc): added, check localloc.
3656
3657         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
3658
3659 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
3660
3661         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
3662         save_lmf/restore_lmf opcodes.
3663
3664         * threads.c (mono_threads_install_notify_pending_exc): New function to
3665         install a callback notifying the JIT there is a pending exception on a thread.
3666         (mono_thread_request_interruption): Call the new callback.
3667         (mono_thread_get_and_clear_pending_exception): New function to return the
3668         exception pending on a thread.
3669
3670         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
3671         to turn off checking for pending exceptions.
3672         (mono_marshal_get_native_wrapper): Ditto.
3673
3674 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
3675
3676         * threads-types.h: Get rid of the unnecessary extern declarations.
3677
3678 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
3679
3680         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
3681         return field from parent class if not private.
3682         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
3683         returns fields from parent class if they are not private.
3684         (method_nonpublic): added function to determine if a given method
3685         should be considered non-public. Returns false for private methods
3686         on parent class, and internal methods from parent on the 1.0 profile.
3687         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
3688         use method_nonpublic function to determine whether method should be
3689         returned.
3690         (property_accessor_public): use newly introduced method_nonpublic
3691         function to determine whether accessor is non-public. 
3692         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
3693         event from parent class if not private. Only return static event if
3694         Static flag is set, and only return static event from parent class if
3695         FlattenHierarchy flag is set.
3696         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
3697         include non-private events from parent class.
3698
3699 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
3700
3701         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
3702         warning.
3703
3704 2008-01-16  Wade Berrier <wberrier@novell.com>
3705
3706         * security.c: Add assembly.h header to appease some warnings
3707
3708 2008-01-16  Dick Porter  <dick@ximian.com>
3709
3710         * process.c (process_module_string_read): Remove trailing null
3711         when saving string.
3712
3713 2008-01-16  Mark Probst  <mark.probst@gmail.com>
3714
3715         * class-internals.h: A new data structure describing the layout of
3716         a runtime generic context (MonoRuntimeGenericContextTemplate).
3717
3718         * metadata-internals.h: Added a hash table to MonoDomain that maps
3719         from open generic classes to their runtime generic context
3720         templates.
3721
3722         * object.c: Building of the runtime generic context, including
3723         proper handling of generic type arguments of superclasses.
3724         Building of the runtime generic context according to the template.
3725
3726 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
3727
3728         * class.c (mono_class_setup_fields): Set field.count for generic instances.
3729         Fixes #350856.
3730
3731         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
3732         mono_portability_find_file (). Fixes #325466.
3733         (mono_image_get_public_key): Fix a warning.
3734
3735 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
3736
3737         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
3738         Fixes #353550.
3739         (mono_class_from_name_case): Ditto.
3740
3741 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
3742
3743         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
3744           common storage for the tables used in the System/NumberFormatter class.
3745
3746 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
3747
3748         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
3749
3750 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
3751
3752         * verify.c (get_boxable_mono_type): check if the token is valid.
3753
3754         * verify.c (set_stack_value): changed to add an error if an
3755         invalid type is set on stack. Changed all callers due to signature change.
3756
3757         * verify.c (do_stobj): implement stobj validation.
3758
3759 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
3760
3761         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
3762         set container->is_method, it was set earlier.
3763
3764         * metadata.c (type_in_image): Handle MVARs which belong to not finished
3765         generic methods.
3766
3767         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3768         is_method of the generic container to TRUE for methods.
3769
3770 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
3771
3772         * metadata.c (type_in_image): Handle type parameters properly.
3773
3774         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
3775         memory ownership of this structure.
3776
3777 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
3778
3779         * verify.c (get_boxable_mono_type): make typedref types been just
3780         unverifiable. check for void type.
3781
3782         * verify.c (do_unbox_any): added, verify opcode unbox.any.
3783
3784         * verify.c (do_load_function_ptr): accept method spec tokens.
3785
3786 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
3787
3788         * marshal.c (mono_class_native_size): Always set *align even if this is called
3789         recursively.
3790
3791 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
3792
3793         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
3794         out-of-date.
3795
3796 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
3797
3798         * verify.c: removed some old unused tables. A huge bunch of small fixes
3799         to things found while testing the verifier with mono basic.
3800
3801         * verify.c (dump_stack_value): dump null literal flag to.
3802
3803         * verify.c (verify_type_compatibility_full): fix comparison
3804         for types that have a generic super type.
3805
3806         * verify.c (verify_stack_type_compatibility): fix compatibility
3807         between null literals and reference types. fix compatibility between
3808         boxed valuetypes and object. fix corner case test for enums.
3809
3810         * verify.c (do_cmp_op): proper verification of cgt.un in case
3811         of reference types.
3812
3813         * verify.c (do_invoke_method): fix error message.
3814
3815         * verify.c (do_store_indirect
3816
3817         * verify.c (check_is_valid_type_for_field_ops): proper verification
3818         of managed pointers to valuetypes and boxed valuetypes. proper verification
3819         of null literals.
3820
3821         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
3822         allow token to be a reference type.
3823
3824         * verify.c (do_cast): proper handling of boxes valuetypes.
3825
3826         * verify.c (do_stelem): proper handling of storing a boxed valuetype
3827         in object[].
3828
3829         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
3830         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
3831         fixed the decoding of unbox_any
3832
3833 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
3834
3835         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
3836
3837 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
3838
3839         * verify.c (do_newobj): do delegate verification.
3840
3841         * verify.c (verify_delegate_compatibility): perform delegate
3842         verification.
3843
3844         * verify.c (verify_ldftn_delegate): perform tests related to
3845         ldftn delegates.
3846
3847         * verify.c (mono_delegate_signature_equal): perform the
3848         slightly diferent signature comparison required by delegates.
3849
3850         * metadata.c (mono_metadata_type_equal_full): added and exported
3851         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
3852         allows signature only comparison.
3853
3854         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
3855         as MONO_INTERNAL.
3856
3857 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
3858
3859         * verify.c: added a bunch of stack_slot_* functions to
3860         make access to stack slot type easier. This is required to
3861         allow optional flags, like null literal, boxed value and
3862         this pointer.
3863         All access paths to IlStackDesc::stype have been changed 
3864         to use these new funcions.
3865         Removed a bunch of unused functions and cleared all warnings.
3866         This patch introduces the usage of the this pointer and 
3867         boxed value flags.
3868
3869 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
3870
3871         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
3872
3873 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
3874
3875         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
3876         match managed version.
3877
3878         * appdomain.c: Bump corlib version.
3879         
3880         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
3881         argument.
3882
3883 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
3884
3885         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
3886         Set public key token to zero-length byte array if assembly is not
3887         strongnamed.
3888
3889 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
3890
3891         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
3892         writing a vtype array elem.
3893
3894 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
3895
3896         * assembly.c (build_assembly_name): return FALSE if length of token is
3897         not 16 (if not "null").
3898         (mono_assembly_name_parse_full): return FALSE if value of version,
3899         culture, token or key is 0.
3900         * icall.c (fill_reflection_assembly_name): add boolean arguments to
3901         specify whether public key and public key token must be set to default
3902         value (zero-length byte array) if not available. Set versioncompat to
3903         SameMachine. If public key is available or the default is set, then
3904         set PublicKey flag.
3905         (ves_icall_System_Reflection_Assembly_FillName): if no public key
3906         is available, use empty byte array as default value. On the 2.0
3907         profile, use default value for public key token if not set.
3908         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
3909         profile, use default value for public key if not set. On the 2.0
3910         profile, use default value for public key token if not set.
3911         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
3912         default values for public key and public key token.
3913
3914 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
3915
3916         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
3917         field to keep it in synch with the managed object.
3918
3919         * marshal.c (emit_marshal_object): Add support for byref marshalling of
3920         delegates. Fixes #351520.
3921
3922         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
3923         contains defined memory.
3924         
3925         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
3926
3927         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
3928         
3929         * sgen-gc.c (check_consistency): New helper function to do a consistency check
3930         of the GC data structures.
3931
3932         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
3933
3934         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
3935         
3936         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
3937         barrier.
3938         (mono_array_clone_in_domain): Ditto.
3939         (mono_array_clone_in_domain): Ditto.
3940
3941         * threads.c (start_wrapper): Register the thread start argument as a GC root.
3942         (cache_culture): Use a write barrier.
3943
3944         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
3945         (ves_icall_get_property_info): Ditto.
3946
3947         * object.h (MONO_STRUCT_SETREF): New macro.
3948
3949         * class-internals.h (MonoStats): Add some GC statistics.
3950
3951         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
3952
3953 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
3954
3955         * exception.c (mono_exception_from_name_two_strings):
3956         Break from loop after method is found.
3957
3958 2008-01-04  Dick Porter  <dick@ximian.com>
3959
3960         * process.c (process_module_string_read): Rename variable to
3961         reflect correct usage, after fixing bug 345972.
3962
3963 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
3964
3965         * verify.c (mono_type_create_fnptr_from_mono_method): 
3966         created a MonoType function pointer instance to be used during
3967         verification. The verifier releases this memory at end.
3968
3969         * verify.c (mono_method_is_constructor): extracted repeated
3970         checks for constructor into a single class.
3971
3972         * verify.c (do_push_field): use new extracted method
3973         for constructor check.
3974
3975         * verify.c (do_newobj): same.
3976
3977         * verify.c (do_ldftn): renamed to do_load_function_ptr
3978         and make it verify ldvirtftn too.
3979
3980         * verify.c (mono_method_verify: proper verification
3981         of ldvirtftn. release created MonoMethod instances.
3982
3983 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
3984
3985         * verify.c (token_bounds_check): added.
3986
3987         * verify.c (do_ldftn): added.
3988
3989         * verify.c (mono_method_verify): proper verificartion of ldftn.
3990
3991 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
3992
3993         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
3994         than the table row count. It's the resposibility of the caller to
3995         make the bounds check and raise the correct error.
3996
3997         * metadata.c (mono_metadata_decode_row_col): Same.
3998
3999         * loader.c (mono_get_method_from_token): perform bounds check
4000         on token for methoddef table.
4001
4002 2007-12-29  Miguel de Icaza  <miguel@novell.com>
4003
4004         * icall.c
4005         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
4006         assert into a negative result, the managed code already coped with
4007         that.
4008
4009         Some folks on Windows reported this error. 
4010
4011 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
4012
4013         * appdomain.c: Bump corlib version.
4014         * icall.c:
4015         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
4016         CultureInfo.CreateCulture to create CultureInfo for name.
4017         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
4018         create CultureInfo for name. Fixes bug #347174.
4019
4020 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4021
4022         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
4023         flags.
4024
4025         * verify.c (is_valid_branch_instruction): allow branching to the
4026         first instruction of the protected block.
4027
4028         * verify.c (is_valid_cmp_branch_instruction): same.
4029
4030         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
4031         avoid double initialization.
4032
4033         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
4034         detect which cases the eval stack should just be copied.
4035
4036         * verify.c (mono_method_verify): check if the eval stack
4037         is empty when entering a protected block.
4038
4039 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4040
4041         * verify.c: added is_clause_in_range, is_clause_inside_range,
4042         is_clause_nested and verify_clause_relationship. They perform
4043         the verifications stated in P1 12.4.2.7.
4044
4045         * verify.c (mono_method_verify): remove some unused variables,
4046         add the new exception clause checks, add instruction border
4047         checks for protected block start/end, improved some error 
4048         messages and fixed a bug in the way invalid instruction access
4049         is detected.
4050
4051 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
4052
4053         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
4054         from GC 7.0 if available.
4055
4056         * object.c: Remove an unused define.
4057         
4058         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
4059
4060         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
4061
4062         * null-gc.c (mono_gc_make_descr_for_array): Implement.
4063
4064         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
4065
4066         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
4067         to take the same arguments as the other make_descr functions.
4068
4069         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
4070
4071         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
4072         directly.
4073
4074         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
4075         mini.c.
4076
4077         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
4078         call to boehm-gc.c.
4079
4080         * boehm-gc.c (mono_gc_register_root): Fix a warning.
4081
4082         * null-gc.c (mono_gc_register_root): Fix a warning.
4083
4084         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
4085
4086         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
4087         (mono_gc_base_init): Call GC_init ().
4088
4089         * null-gc.c: Define mono_gc_register_root () as a no-op.
4090
4091         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
4092
4093 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
4094
4095         * verify.c: add prototype for merge_stacks at top
4096
4097         * verify.c (do_switch): added.
4098
4099         * verify.c (merge_stacks): on some cases the stack merging
4100         was not happening properly. Unequal stack sizes at merge
4101         points should be invalid.
4102
4103         * verify.c (mono_method_verify): added more debug info on stack state.
4104         verify switch properly.
4105
4106 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
4107
4108         * method-builder.h: New file, moved the mono_mb_ declarations here from 
4109         marshal.h.
4110
4111         * boehm-gc.c marshal.c: Include method-builder.h.
4112
4113         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
4114
4115         * marshal.c: Remove some code which is now in method-builder.c.
4116
4117 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
4118
4119         * method-builder.c: New file, extraction of the method builder functionality 
4120         from marshal.c.
4121
4122         * marshal.c: Move the mb functions into method-builder.c.
4123
4124         * marshal.h marshal.c: Export some mono_mb_... functions.
4125
4126         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
4127
4128         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
4129         the caller.
4130
4131         * class.c (mono_class_get_full): Check the token type in the dynamic case.
4132
4133         * loader.c (mono_field_from_token): Ditto.      
4134
4135         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
4136         type as well.
4137         
4138         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
4139         Fixes #342565.
4140
4141         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
4142         a helper function for setting it.
4143
4144         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
4145
4146         
4147         * assembly.c: Significally simplify code now that referenced assemblies are 
4148         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
4149
4150         * threads.h: Don't include  the internal threads-types.h header file. Fixes
4151         #349952.
4152
4153 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
4154
4155         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
4156         instructions that were target of branches or are at protected block boundaries.
4157
4158         * verify.c (in_same_block): handle filter clauses.
4159
4160         * verify.c (is_valid_branch_instruction): added. checks the target of
4161         instructions br or brtrue/false.
4162
4163         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
4164         binary branch instructions such as beq and bge.
4165
4166         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
4167         and made it pin the instruction as been part of the exception block.
4168
4169         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
4170         of in_same_block.
4171
4172         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
4173         of in_same_block.
4174
4175         * verify.c (do_ret): ret from a protected block is unverifiable and
4176         not invalid.
4177
4178         * verify.c (do_static_branch): verify br and br.s instructions.
4179
4180         * verify.c (merge_stacks): add extra param to support detection
4181         of branches in the middle of instructions.
4182         
4183         * verify.c (mono_method_verify): verify branches and exception blocks
4184         that target the middle of instructions. Proper verification of br and br.s.
4185
4186 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
4187
4188         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
4189         skip_visibility field.
4190         (reflection_methodbuilder_from_dynamic_method): Ditto.
4191
4192         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
4193         registrations. Fixes #348193.
4194
4195         * threads.h: Move the internal mono_thread_get_pending_exception () to
4196         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
4197
4198 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
4199
4200         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
4201         icall registration. Fixes #348193.
4202
4203         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
4204         for corlib classes into object. Fixes #349621.
4205
4206 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
4207
4208         * icall.c (property_accessor_nonpublic): new function to determine
4209         whether an accessor allows a property to be considered non-public.
4210         Returns false for private accessor(s) from parent class, and internal
4211         accessor(s) from parent on 2.0 profile (and higher).
4212         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
4213         to determine whether property should be included if NonPublic flag
4214         is set. Fixes bug #349078.
4215
4216 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
4217
4218         * verify.c (init_stack_with_value): added.
4219
4220         * verify.c (mono_method_verify): extracted common
4221         code for exception initialization into init_stack_with_value.
4222
4223         * verify.c (mono_method_verify): initialize the exception
4224         for handler clauses as well.
4225
4226         * verify.c (mono_method_verify): fix the exception clause
4227         ordering rules, it should use handler end offset and not
4228         start offset.
4229
4230 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
4231
4232         * rawbuffer.c: remove useless warning.
4233
4234 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
4235
4236         * threads.h, threads-types.h: move functions to the correct header
4237         (fixes bug#349952).
4238
4239 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4240
4241         * verify.c (mono_method_verify): proper verification
4242         of exception handling clauses ranges and fallthru in
4243         and out of protected blocks.
4244
4245 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4246
4247         * verify.c (mono_method_verify): fixed compilation issue.
4248
4249 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4250
4251         * verify.c (mono_method_verify): a printf slipped in, changed
4252         to use verifier debug macro.
4253
4254 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
4255
4256         * verify.c (is_correct_leave): check for filter clauses.
4257
4258         * verify.c (do_filter): added.
4259
4260         * verify.c (mono_method_verify): property verification of leave.
4261
4262
4263 2007-12-18  Mark Probst  <mark.probst@gmail.com>
4264
4265         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
4266         Win32 build, until we figure out how to do the proper thing on
4267         Win32.
4268
4269 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
4270
4271         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
4272         by the previous patch.
4273         
4274         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
4275         the assembly resolve handler for refonly assemblies.
4276
4277 2007-12-17  Mark Probst  <mark.probst@gmail.com>
4278
4279         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
4280         Make sure only one thread is allowed to commence shutdown, and
4281         don't allow new threads to be started once shutdown is in
4282         progress.
4283
4284 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
4285
4286         * verify.c (is_correct_endfilter): added.
4287
4288         * verify.c (is_unverifiable_endfilter): added.
4289
4290         * verify.c (do_endfilter): added.
4291
4292         * verify.c (mono_method_verify): property verification of endfilter
4293         and fixed a corner case or endfinally.
4294
4295 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
4296
4297         * verify.h: new flags to support fail fast of unverifiable code and
4298         do non-strict verification. Non-strict verification is required to
4299         have MS runtime compatibility. There are a huge amount of unverifiable
4300         code that it accepts as verifiable. The strict mode verifies the code
4301         as the specs says.
4302         Non-strict mode will be required in cases where code needs to be
4303         accepted as verifiable but fails under strict mode.
4304
4305         * pedump.c: added support to fail fast and non-strict verification.
4306
4307         * verify.c: added support for both fail fast and non-strict verification.
4308
4309 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
4310
4311         * verify.c (is_correct_endfinally): added.
4312
4313         * verify.c (mono_method_verify): property verification of endfinally.
4314
4315 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4316
4317         * verify.c (in_any_block): check for filter clauses.
4318
4319         * verify.c (is_correct_rethrow): added.
4320
4321         * verify.c (mono_method_verify): property verification of rethrow.
4322
4323         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
4324
4325 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4326
4327         * verify.c (do_throw): added.
4328
4329         * verify.c (mono_method_verify): property verification of throw
4330
4331 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
4332
4333         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
4334         assemblies. Fixes #346425.
4335
4336 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
4337
4338         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
4339         FieldBuilders.
4340
4341         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
4342
4343         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
4344         prevent asserts when this is called with a token which might not be valid.
4345
4346         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
4347         lookup_dynamic_token_class with valid_token == FALSE.
4348
4349         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
4350
4351         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
4352
4353         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
4354         
4355 2007-12-10  Mark Probst  <mark.probst@gmail.com>
4356
4357         * gc.c: Don't delay threadpool thread finalization unless Mono is
4358         shutting down.
4359
4360 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4361
4362         * threads.c: turn an assert into a non-fatal warning.
4363
4364 2007-12-09  Robert Jordan  <robertj@gmx.net>
4365
4366         * icall.c (GetVirtualMethod): Add missing argument validation.
4367
4368 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4369
4370         * verify.c (do_cast): added.
4371
4372         * verify.c (mono_method_verify): property verification of castclass and isinst.
4373
4374
4375 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4376
4377         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
4378
4379         * verify.c (do_stelem): added.
4380
4381         * verify.c (mono_method_verify): property verification of stelem.X.
4382
4383 2007-12-07  Mark Probst  <mark.probst@gmail.com>
4384
4385         * class.c, class-internals.h: Introduce an environment variable
4386         (MONO_GENERIC_SHARING) through which the extent of generic code
4387         sharing can be controlled (share all classes, share only corlib
4388         classes, or share nothing).
4389
4390         * object.c: Only create runtime generic context for classes for
4391         which sharing is enabled.
4392
4393 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4394
4395         * verify.c (do_ldelem): refactor it to work with ldelem.any.
4396
4397         * verify.c (mono_method_verify): property verification of ldelem.any.
4398
4399 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4400
4401         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
4402         added ldelem.X opcodes.
4403
4404         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
4405
4406         * verify.c: proper verification of ldelem.X 
4407
4408 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
4409
4410         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
4411
4412 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4413
4414         * verify.c (mono_method_verify): null literal requires special handling,
4415         the value pushed on stack need to be flagged as so.
4416
4417         * verify.c (do_ldelema): Verify ldelema properly.
4418
4419 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4420
4421         * verify.c: Verify ldlen properly.
4422
4423 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
4424
4425         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
4426         to the target object's type. Fixes #346160.
4427
4428 2007-12-05  Dick Porter  <dick@ximian.com>
4429
4430         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
4431         Solaris needs the same workaround as BSD-derived systems.  Fixes
4432         bug 323524, patch by Burkhard Linke
4433         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
4434
4435 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
4436
4437         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
4438         handle to use when error dialog is shown; otherwise, update mask
4439         to show no error dialog when an error occurs.
4440
4441 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
4442
4443         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
4444
4445         * class.c (mono_class_get_field_default_value): New helper function to initialize
4446         field->def_type and field->data.
4447
4448 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
4449
4450         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
4451         the general one.
4452
4453         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
4454
4455         * marshal.c: Avoid depending on delegate->method_info being set.
4456
4457         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
4458         
4459         * object.c (mono_delegate_ctor): Set delegate->method.
4460
4461         * object-internals.h (struct _MonoDelegate): Add 'method' field.
4462
4463         * appdomain.c: Bump corlib version.
4464
4465 2007-11-27  Raja R Harinath  <harinath@gmail.com>
4466
4467         * metadata.c (mono_generic_inst_equal_full): Short-circuit
4468         equality check if we're comparing canonicalized MonoGenericInsts.
4469
4470 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
4471
4472         * class.c (generic_array_methods): Call mono_class_setup_methods () before
4473         accessing class->methods.
4474
4475 2007-11-22  Dick Porter  <dick@ximian.com>
4476
4477         * threads.c: Ensure that the synch_cs is set before trying to use
4478         it.
4479
4480 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
4481
4482         * profiler.c: r89126 broke the statistial profiler, unbreak.
4483
4484 2007-11-22  Martin Baulig  <martin@ximian.com>
4485
4486         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
4487
4488         * mono-debug.c
4489         (mono_debug_debugger_version): Bump to 3.
4490         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
4491         -> mono_debugger_class_initialized().
4492
4493         * mono-debug-debugger.c
4494         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
4495
4496         * class.c
4497         (mono_debugger_start_class_init_func): Removed.
4498         (mono_debugger_class_loaded_methods_func): Added.
4499         (mono_class_setup_methods): Call it here.
4500
4501 2007-11-22  Martin Baulig  <martin@ximian.com>
4502
4503         * mono-debug.c
4504         (mono_debug_add_delegate_trampoline): New public method.
4505         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
4506
4507         * mono-debug.h
4508         (MonoSymbolTable): Added `global_data_table'.
4509         (MonoDebuggerTypeKind): Removed.
4510
4511 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
4512
4513         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
4514         these methods.
4515
4516         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4517         
4518 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4519
4520         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
4521
4522 2007-11-20  Martin Baulig  <martin@ximian.com>
4523
4524         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
4525
4526         * mono-debug-debugger.c
4527         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
4528         (mono_debugger_remove_breakpoint): Likewise.
4529         (mono_debugger_check_breakpoints): Likewise.
4530         (mono_debugger_register_class_init_callback): New public method.
4531         (mono_debugger_remove_class_init_callback): Likewise.
4532         (mono_debugger_add_type): Likewise.
4533
4534         * mono-debug-debugger.h
4535         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
4536
4537 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
4538
4539         * class.c: more interface implementations needed for the
4540         array enumerator (fixes bug #341112).
4541
4542 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
4543
4544         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
4545         fix ParamName of ArgumentNullExceptions.
4546
4547 2007-11-17  Miguel de Icaza  <miguel@novell.com>
4548
4549         * reflection.c (mono_reflection_encode_sighelper): Generate the
4550         modopts and modreqs.   I have a useless test that crashes monodis,
4551         but that shows the code working.
4552
4553 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
4554
4555         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
4556         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
4557
4558 2007-11-15  Dick Porter  <dick@ximian.com>
4559
4560         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
4561         When joining a thread, it's the thread that's calling Join that
4562         gets WaitSleepJoin state not the target.  Fixes the standalone
4563         test case in bug 334740, and hopefully the whole bug too.
4564
4565 2007-11-15  Dick Porter  <dick@ximian.com>
4566
4567         * process.c: Read file version info from the files pointed at by
4568         process modules, not the current process.  Fixes bug 315969.
4569
4570         Use windows typedef names in some places to fix warnings on the
4571         windows build.
4572
4573 2007-11-15  Mark Probst  <mark.probst@gmail.com>
4574
4575         * image.c, metadata-internals.h: Added a generic_class_cache hash
4576         to MonoImage for looking up generic classes when sharing generics.
4577
4578 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4579
4580         * sgen-gc.c: warning cleanups.
4581
4582 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
4583
4584         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
4585         inherited properties.
4586
4587 2007-11-14  Mark Probst  <mark.probst@gmail.com>
4588
4589         * object.c, class-internals.h: Added more information to the
4590         runtime generic context.
4591
4592 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
4593
4594         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
4595         instead of just the target method. Generalize the abstract method handling to
4596         handle any non-static method.
4597
4598         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
4599         mono_marshal_get_delegate_invoke () signature change.
4600
4601 2007-11-13  Mark Probst  <mark.probst@gmail.com>
4602
4603         * class.c, class-internals.h: Made
4604         mono_type_get_basic_type_from_generic () public.  Fixed member
4605         access check for shared generics.
4606
4607         * loader.c: Don't insert field into field cache if it's part of a
4608         non-inflated generic class.
4609
4610         * domain.c, domain-internals.h: The generic sharing context is now
4611         part of the jit info data structure.  Added two accessor
4612         functions.
4613
4614 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
4615
4616         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
4617         the array Get/Set/Address methods, since the JIT inlines them.
4618
4619         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
4620
4621         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
4622         (mono_image_init): Initialize runtime_invoke_direct_cache.      
4623
4624         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
4625         mono_marshal_get_delegate_invoke signature change.
4626
4627         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
4628         an additional argument. Add support for invoking abstract methods.
4629
4630         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
4631
4632         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
4633
4634 2007-11-09  Mark Probst  <mark.probst@gmail.com>
4635
4636         * class.c: Do field layout for open generic classes as well.
4637
4638 2007-11-09  Mark Probst  <mark.probst@gmail.com>
4639
4640         * gc.c, gc-internal.h: Don't finalize threadpool threads with
4641         other objects, because the threadpool is still around.  Put them
4642         in a list instead and after finalizing all other objects in the
4643         root domain shut down the thread pool and then finalize the
4644         threads.  Fixes bug #337383.
4645
4646         * threads.c, thread-types.h: New mono_thread_create_internal()
4647         function for marking a thread with the threadpool flag before it
4648         started.  Set synch_cs to NULL after freeing it.
4649
4650         * threadpool.c: Mark threadpool threads before they start.
4651
4652 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4653
4654         * reflection.h, reflection.c: don't export random functions
4655         and lazy load dbnull and missing objects.
4656
4657 2007-11-07  Jonathan Chambers <joncham@gmail.com>
4658
4659         * class.c: Initialize COM types if COM interfaces
4660         are present (not just COM classes).
4661         
4662         Code is contributed under MIT/X11 license.
4663
4664 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
4665         * reflection.c:
4666         create_dynamic_mono_image: hook module profiler events (dynamic case).
4667         mono_image_basic_init: hook assembly profiler events (dynamic case).
4668
4669 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
4670         * profiler.c:
4671         simple_appdomain_unload: completely terminate the profiler
4672         instead of only processing the statistical samples.
4673         simple_shutdown: make sure this is really called exactly once,
4674         even in multithreaded applications, and always listen to
4675         appdomain events.
4676         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
4677         here, the "[un]load" functions will do it.
4678         Fixes bugs #333791 and #325261.
4679
4680 2007-11-07  Geoff Norton  <gnorton@novell.com>
4681
4682         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
4683         rather than depend on __APPLE__.
4684
4685 2007-11-07  Mark Probst  <mark.probst@gmail.com>
4686
4687         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
4688
4689 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
4690
4691         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
4692         UTF16 MonoString. Fix the crash from bug #335488
4693
4694 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
4695
4696         * marshal.c: Correct (for non-Win32 OS) length != size in 
4697         mono_string_from_bstr. Fix #339530.
4698
4699 2007-11-06  Geoff Norton  <gnorton@novell.com>
4700
4701         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
4702         to succeed
4703
4704 2007-11-05  KornĂ©l Pál  <kornelpal@gmail.com>
4705
4706         * process.c: Added run-time GetProcessId API detection for Windows.
4707
4708 2007-11-04  Miguel de Icaza  <miguel@novell.com>
4709
4710         * reflection.c  (mono_param_get_objects): If a parameter has the
4711         attribute [System.Runtime.InteropServices.Optional] we should
4712         set the DefaultValue of the ParameterInfo to be
4713         System.Reflection.Missing instead of DBNull.
4714
4715         See bug #339013.
4716
4717         (mono_get_reflection_missing_object): New method,
4718         returns the System.Reflection.Missing.Value singleton instance.
4719
4720 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4721
4722         * culture-info-table.h : regenerated.
4723
4724 2007-11-02  Jonathan Chambers <joncham@gmail.com>
4725
4726         * icall.c: Use GetEnvironmentStrings on windows
4727         so we are using the same environment block as 
4728         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
4729         #333740.
4730         
4731         Code is contributed under MIT/X11 license.
4732
4733 2007-10-31  Martin Baulig  <martin@ximian.com>
4734
4735         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
4736
4737         * mono-debug-debugger.h
4738         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
4739
4740 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
4741
4742         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
4743         classes.
4744
4745 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
4746
4747         * culture-info-table.h : regenerated.
4748
4749 2007-10-30  Robert Jordan  <robertj@gmx.net>
4750
4751         * icall-def.h, icall.c:
4752         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
4753
4754         Code is contributed under MIT/X11 license.
4755
4756 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
4757
4758         * class.c (mono_class_setup_vtable): Find the inflated methods in the
4759         inflated class instead of inflating them again.
4760         
4761         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
4762         dynamic case.
4763
4764         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
4765         Call setup_supertypes () after klass->parent is set.
4766         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
4767
4768         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
4769         for inflated instances of not yet created dynamic generic classes.
4770         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
4771         times from inflated_method.
4772         (methodbuilder_to_mono_method): Ditto.
4773
4774 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4775
4776         * gc.c: code cleanup and removed old untested option of not creating the
4777         finalizer thread.
4778
4779 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
4780
4781         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
4782         creating a jump trampoline for dynamic methods.
4783
4784 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
4785
4786         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
4787         generic TypeBuilders when called from another method of the same type (bug #335131).
4788
4789
4790 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
4791
4792         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
4793         doesn't seem to work perfectly.
4794         
4795         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
4796         called multiple times.
4797         (methodbuilder_to_mono_method): Ditto.
4798         (resolve_object): Inflate FieldBuilder's.
4799
4800 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4801
4802         * string-icalls.c, string-icalls.h, appdomain.c: patch from
4803         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
4804         RemoveEmptyEntries in the string.Split implementation (bug #322375).
4805
4806 2007-10-26  Dick Porter  <dick@ximian.com>
4807
4808         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
4809         Thread initialisation changes
4810
4811 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
4812
4813         * verify.c: fix compatibility check between arrays and System.Array
4814
4815 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
4816
4817         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
4818         too. Fixes #336999.
4819
4820 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
4821
4822         * object.c (mono_value_box): Use typed allocation here.
4823
4824 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
4825
4826         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
4827         trampoline instead of compiling the method right away.
4828
4829         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
4830
4831 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
4832
4833         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
4834         related fields for dynamic classes. Fixes #334493.
4835
4836 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
4837
4838         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
4839         
4840         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
4841
4842         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
4843         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
4844
4845         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
4846
4847         * reflection.c (create_generic_typespec): Initialize klass->generic_container
4848         if needed.
4849         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
4850
4851 2007-10-18  Jonathan Chambers <joncham@gmail.com>
4852
4853         * marshal.c: Use correct key when removing item
4854         from ccw_hash.
4855         
4856         Code is contributed under MIT/X11 license.
4857
4858 2007-10-17  William Holmes  <billholmes54@gmail.com>
4859
4860         *marshal.c: Adding a case to marshal booleans to U1
4861
4862         Code is contributed under MIT/X11 license.
4863
4864 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
4865
4866         * class.c (mono_class_from_name): Search the modules compromising dynamic
4867         assemblies. Fixes #331601.
4868
4869 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
4870
4871         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
4872         exception if the type name contains an assembly component. Fixes #334203.
4873
4874         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
4875         modules inside dynamic assemblies. Fixes #334200.
4876         
4877         * reflection.c: Set image->public_key and image->public_key_length;
4878
4879         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
4880         fields.
4881
4882         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
4883         
4884 2007-10-16  Mark Probst  <mark.probst@gmail.com>
4885
4886         * metadata.c: Implemented correct comparing of generic classes.
4887         An inflated generic class can be equal to a non-inflated one if it
4888         is inflated with generic type variables as type arguments.  Fixes
4889         bug #333798.
4890
4891 2007-10-15  Dick Porter  <dick@ximian.com>
4892
4893         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
4894         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
4895         81646.
4896
4897         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
4898         instead of a monitor lock.  This means that monitor_try_enter and
4899         co can set the thread state safely.
4900         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
4901         thread_interrupt_requested, so interrupt actually works.
4902
4903         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
4904         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
4905         state accessor function
4906
4907 2007-10-15  Martin Baulig  <martin@ximian.com>
4908
4909         * mono-debug.h
4910         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
4911         the debugger with the current runtime.
4912
4913 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
4914
4915         * object.c, object-internals.h: added the ability to set a single
4916         trampoline for all the slots in a vtable.
4917
4918 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4919
4920         * marshal.c: deal with a possible race condition during multicast
4921         delegate invocation.
4922
4923 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4924
4925         * class.c: ensure value type methods don't have the synchronized
4926         flag set.
4927
4928 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
4929
4930         * string-icalls.c, string-icalls.h: reverted unapproved patch that
4931         breaks the build.
4932
4933 2007-10-11  Joel Reed  <joelwreed@comcast.com>
4934
4935         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
4936         to take an options parameter so that empty entries can be removed during
4937         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
4938
4939 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4940
4941         * marshal.c: make sure we don't store the signature from a dynamic
4942         method into the runtime invoke cache (bug #327189).
4943
4944 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4945
4946         * marshal.c: make sure the wrapper methods are properly initialized.
4947
4948 2007-10-11  Mark Probst  <mark.probst@gmail.com>
4949
4950         * metadata.c, metadata-internals.h: Generalized
4951         mono_type_stack_size() to mono_type_stack_size_internal() which
4952         takes an additional argument specifying whether it allows open
4953         types.
4954
4955 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4956
4957         * verify.c (do_invoke_method): handle typedbyref params
4958         correctly and check for unverifiable return values.
4959
4960         * verify.c (do_newobj): fix a warning.
4961
4962 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4963
4964         * verify.c: don't tread typedbyref as allways unverifable,
4965         so uses, like (ld/st)loc.0 are valid. verify for the cases
4966         that it matters, like boxing related operations.
4967
4968 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4969
4970         * verify.c: add verification of the newobj opcode. verification
4971         of delegate instantation still missing due ldftn and virldftn not
4972         pushing the function type on stack
4973
4974 2007-10-08  Mark Probst  <mark.probst@gmail.com>
4975
4976         * class-internals.h: Runtime generic context data structure
4977         definition.
4978
4979         * object.c: Initialization of runtime generic context at runtime
4980         vtable creation time.
4981
4982 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
4983         * class.c (mono_class_create_from_typedef,
4984         mono_class_from_generic_parameter, mono_ptr_class_get,
4985         mono_fnptr_class_get, mono_bounded_array_class_get)
4986         * domain.c (mono_domain_create, mono_domain_free)
4987         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
4988         * image.c (do_mono_image_load, mono_image_close):
4989         Hooked up load-unload profiler events.
4990
4991 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
4992
4993         * domain.c: track statistics about the actual amount of native code
4994         allocated.
4995
4996 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
4997
4998         * class.c: the valuetype enumerators don't have the additional
4999         supertypes interfaces.
5000
5001 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5002
5003         * class.c: need more interfaces setup for the IEnumerator<T>
5004         object created for arrays (tests/ienumerator-interfaces.2.cs).
5005
5006 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
5007
5008         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
5009
5010 2007-10-05  Alp Toker  <alp@atoker.com>
5011
5012         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
5013         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
5014         #315863.
5015
5016 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5017
5018         * verify.c (verify_type_compatibility_full): verification of
5019         compatibility improved, validates correctly non-strict checks between
5020         native int and I4 types different than (unsigned)int32.
5021
5022         * verify.c (do_store_indirect): added, do all verification of
5023         ldind.X opcodes. 
5024
5025         * verify.c (get_load_indirect_mono_type): renamed to
5026         get_indirect_op_mono_type, as it now returns the MonoType for 
5027         ldind.X and stind.X opcodes.
5028
5029 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5030
5031         * reflection.c: Fix the encoding of generic type definition for
5032         TypeBuilders.
5033
5034         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
5035         mono_image_typedef_or_ref but allows to specify if typespec lookups should
5036         be made. Typespec check is done prior to typeref cache lookup.
5037
5038         * reflection.c (mono_image_typedef_or_ref): now just delegate to
5039         mono_image_typedef_or_ref_full.
5040
5041         * reflection.c (encode_generic_class): encode the generic class
5042         directly instead of calling encode_type.
5043
5044         * reflection.c (encode_type): encode the generic type definition
5045         MonoClass as a generic instantiation.
5046
5047         * reflection.c (create_typespec): cache typespec tokens in
5048         the assembly->typespec cache. Don't create typespec for a generic
5049         instance MonoClass. Create typespec for the generic type defintion.
5050
5051         * reflection.c (create_generic_typespec): encode the generic
5052         class directly instead of calling encode_type.
5053
5054         * reflection.c (mono_image_create_token): encode the generic
5055         type definition not using a typespec for MonoType instances.
5056
5057
5058 2007-10-04  Raja R Harinath  <rharinath@novell.com>
5059
5060         Fix #328812
5061         * class.c (mono_image_init_name_cache): Don't return nested
5062         'protected internal' classes.
5063         (mono_class_from_name_case): Likewise.
5064
5065 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5066
5067         * icall-def.h, icall.c : get_bundled_machine_config() is now the
5068           common function used by both DefaultConfig in System.dll and
5069           InternalConfigurationHost in System.Configuration.dll.
5070
5071 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5072
5073         * class.c: automatically add to vectors only a few essential explicit
5074         generic interfaces. The rest of the interfaces that arrays should
5075         provide are currently implicitly added (but still not lazily, see the
5076         design in the discussion of bug#325495 for the details of what is
5077         needed for that). Additionally, implicit interfaces are assigned the
5078         same vtable slot as the explicit interfaces (as they are compatible):
5079         this enables huge memory savings since we don't need to instantiate
5080         as many memthods and as large vtables anymore. Also, Since
5081         GetEnumerator<T> returns an instance of a type that is required to
5082         support a similarly large set of interfaces as arrays, we add
5083         implicit interfaces and interface offset sharing support to those
5084         types, too. This change adds all the required interfaces so that
5085         the anonarray.cs test case in the bug report works (we don't add
5086         all the interfaces to arrays of arrays 3-level deep and more because
5087         of the memory requirements explained in the bug and since they are much
5088         less common: the lazy-loading support will enabled them to work, too).
5089
5090 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5091
5092         * verify.c (merge_stacks): major clean up, all type compatibility
5093         checks are done by verify_type_compatibility. This fix my earlier lack
5094         of understanding of the CLR type system and merge_stacks no longer looks
5095         scary.
5096
5097         * verify.c: fixed some bad spelling.
5098
5099 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5100
5101         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
5102         a given stack slock.
5103         
5104         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
5105         verify_type_compatibility_full. This removed a near indentical function and fixed
5106         handling of Int32 and IntPtr across all opcodes.
5107
5108 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5109
5110         * class.c: only vectors have the additional generic interfaces.
5111
5112 2007-10-01  Jonathan Chambers <joncham@gmail.com>
5113
5114         * mono-config.c: Use g_strcasecmp instead of
5115         strcasecmp like everywhere else to fix
5116         compilation with MSVC.
5117         
5118         Code is contributed under MIT/X11 license.
5119
5120 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5121
5122         * object.c, object-internals.h: refactored the IMT code to enable
5123         building a single slot at a time and lazily creating the IMT trampolines
5124         and thunks.
5125
5126 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
5127
5128         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
5129
5130         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
5131         Fixes #328501.
5132         
5133 2007-09-29  Raja R Harinath  <harinath@gmail.com>
5134
5135         * loader.c (method_from_methodspec): Rearrange to avoid
5136         un-necessary exposition.  Don't assert out if the method's
5137         declaring type is a generic type definition.
5138
5139 2007-09-28  Martin Baulig  <martin@ximian.com>
5140
5141         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
5142
5143 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
5144
5145         * class-internals.h: optimize field layout of MonoClass to
5146         requires less cachelines at runtime and save a few bytes on 64 bit
5147         systems.
5148
5149 2007-09-28  Jb Evain  <jbevain@novell.com>
5150
5151         * reflection.c: when encoding type names in custom attributes,
5152         if the type is a closed generic type, its generic arguments
5153         have to be serialized as AssemblyQualifiedName, so that when
5154         they are deserialized, it's possible to re-create them properly.
5155         Fixes #329450.
5156
5157
5158 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5159
5160         * object.c, class-internals.h: added delegate-creation counter.
5161
5162 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
5163
5164         * class.c: cleanup of the code that synthetizes interfaces for
5165         arrays in 2.0: saves quit a bit of corlib mempool memory.
5166         Code to fix bug #325495 ifdeffed out for now until the issues
5167         with memory usage and O(n^2) behaviour are fixed.
5168
5169 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5170
5171         * marshal.c: when possible, do not duplicate the name of the methods
5172         in the method builder and in the generated MonoMethod.
5173
5174 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5175         * verify.c: added support for type checking ldind_* opcodes.
5176
5177 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5178
5179         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
5180         which is used to distinguish the fully open instantiation of a TypeBuilder
5181         with the rest. This temporary hack is required to restore the property that
5182         the fully open instantiation is the same type of the generic type definition.
5183
5184         * class-internals.h (mono_generic_class_is_generic_type_definition):
5185         new function as part of the internal API.
5186
5187         * class.c (inflate_generic_type): return NULL when the generic inst is
5188         fully open. The fully open generic type is now the same as the generic type
5189         definition for non TypeBuilder types.
5190
5191         * class.c (mono_generic_class_get_class): removed assert since it is
5192         no longer valid, gklass->cached_class can point to the generic type definition.
5193
5194         * class.c (mono_generic_class_is_generic_type_definition): new.
5195
5196         * metadata.c (mono_generic_class_hash): added is_tb_open field
5197         to the hash calculation.
5198
5199         * metadata.c (free_generic_class): if the generic class is associated
5200         with the generic type definition, its field will come from the mempool and
5201         must not be freed.
5202
5203         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
5204         new, this function identifies the corner case of a TypeBuilder fully open
5205         instantiation.
5206
5207         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
5208         for lookup. Set gclass->cached_class to be the container class in case of
5209         the fully open instantiation of non TypeBuilder types.
5210
5211         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
5212         to compare generic classes.
5213
5214         * reflection.c (method_encode_methodspec): remove assert that
5215         no longer is valid.
5216
5217         * reflection.c (mono_reflection_generic_class_initialize): add
5218         an aditional assert to ensure the proper type is used.
5219
5220 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
5221
5222         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
5223         to enjoy it.
5224
5225 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5226
5227         * verify.c (push_arg): Fixed support for ldarga
5228         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
5229         MonoType used as first arg in case of instance calls.
5230
5231 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5232
5233         * verify.c: Support for verifying VAR and MVAR types, 
5234
5235 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
5236
5237         * icall.c (ves_icall_get_property_info): Set the reflected type of the
5238         accessors correctly.
5239
5240 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
5241
5242         * threads.c: support OSX and other systems in
5243         mono_thread_get_stack_bounds (bug #328026).
5244
5245 2007-09-25  Martin Baulig  <martin@ximian.com>
5246
5247         * mono-debug.h
5248         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
5249
5250 2007-09-24  Martin Baulig  <martin@ximian.com>
5251
5252         * mono-debug.h
5253         (MonoDebugClassEntry): Moved the definition of this struct into
5254         mono-debug.c to make it private.
5255
5256         * mono-debug.c
5257         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
5258         type table per symbol file, we don't need to store the symfile id
5259         any longer.
5260
5261 2007-09-24  Martin Baulig  <martin@ximian.com>
5262
5263         Create one type table per symbol file, since a `MonoClass *' gets
5264         invalid when its image is unloaded.
5265
5266         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
5267         (MonoDebugHandle): Added `type_table'.
5268
5269 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5270
5271         * mempool.c, mempool.h: added mono_mempool_new_size () API
5272         to be able to specify a smaller initial size for the pool.
5273         Adjusted the code to slowly increase pool size before using
5274         the previous default size.
5275         * image.c: use a small initial size for image mempools.
5276
5277 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
5278
5279         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
5280         Fixes ##320990.
5281
5282         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
5283         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
5284
5285 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
5286
5287         * metadata.c (mono_type_create_from_typespec): Remove an invalid
5288         free. Fixes #327438.
5289
5290 2007-09-21  Raja R Harinath  <harinath@gmail.com>
5291
5292         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
5293         generic instantiations, etc.
5294         <MONO_TYPE_ARRAY>: Likewise.
5295
5296 2007-09-21  Martin Baulig  <martin@ximian.com>
5297
5298         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
5299         these structs were never defined.
5300         (MonoDebugHandle): Removed the `_priv' field, it was never used.
5301
5302 2007-09-21  Martin Baulig  <martin@ximian.com>
5303
5304         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
5305
5306 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
5307
5308         * image.c: removed the guid hash tables: we can get the same info
5309         without the additional memory usage hit (partially fixes also bug #327052).
5310
5311 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5312
5313         * profiler.h, profiler-private.h, profiler.c: add a new profiler
5314         event to handle unloading methods. After the event is called, the
5315         corresponding MonoMethod* must be considered invalid.
5316         * loader.c (mono_free_method): call the new mono_profiler_method_free
5317         event.
5318
5319 2007-09-20  Mark Probst  <mark.probst@gmail.com>
5320
5321         * domain-internals.h: New flag in MonoJitInfo which marks shared
5322         generic methods.  New hash table (shared_generics_hash) in
5323         MonoDomain to keep track of shared generic methods.  Prototypes
5324         for functions to register and lookup shared generic methods.
5325
5326         * domain.c: Support for registering and looking up shared generic
5327         methods via a hash table (shared_generics_hash) in MonoDomain.
5328
5329         * class-internals.h: New exception to signal failure of shared
5330         compilation of a generic method.  New counters for generics
5331         sharing in MonoStats.
5332
5333 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
5334
5335         * image.c, metadata-internals.h: don't keep a file descriptor open
5336         for loaded assemblies (bug#325988).
5337
5338 2007-09-19  Raja R Harinath  <rharinath@novell.com>
5339
5340         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
5341         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
5342         use the corresponding datatypes.
5343         (type_in_image): Update to changes.
5344         (CleanForImageUserData): Simplify.
5345         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
5346         Avoid quadratic behaviour in handling the "stolen" list by
5347         separating the filter predicate out, and by prepending the stolen
5348         items rather than appending them.
5349         (steal_ginst_in_image): Likewise.
5350         (mono_metadata_clean_for_image): Update to changes.
5351
5352 2007-09-19  Martin Baulig  <martin@ximian.com>
5353
5354         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
5355
5356 2007-09-19  Martin Baulig  <martin@ximian.com>
5357
5358         * mono-debug.c (mono_debug_cleanup): Don't call
5359         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
5360
5361 2007-09-19  Raja R Harinath  <harinath@gmail.com>
5362
5363         Fix crash on 'make run-test' in mcs/errors
5364         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
5365         Avoid more potential allocations in mono_class_from_mono_type.
5366         (ginst_in_image): Update to changes.
5367         (gclass_in_image): Rearrange slightly.
5368
5369 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5370
5371         * class.c (mono_class_init): Move the code that sets up class->methods to 
5372         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
5373
5374         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
5375         canonical instance of an inflated generic signature.
5376         (mono_type_create_from_typespec): Remove an invalid free.
5377
5378         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
5379
5380 2007-09-18  Marek Habersack  <mhabersack@novell.com>
5381
5382         * domain-internals.h: added a declaration of the
5383         mono_assembly_load_full_nosearch internal function.
5384
5385         * assembly.c (mono_assembly_load_with_partial_name): use
5386         mono_try_assembly_resolve return value properly.
5387         (mono_assembly_load_full_nosearch): copied the function body from
5388         mono_assembly_load_full, without the code to invoke assembly
5389         search hooks.
5390         (mono_assembly_load_full): calls the above new function and if the
5391         assembly is not resolved, invokes the search hooks.
5392
5393         * appdomain.c (mono_runtime_init): restore the global postload
5394         assembly search handlers.
5395
5396 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5397
5398         * class.c (mono_class_init): Make sure class->methods and class->properties
5399         are never NULL in the generics case.
5400
5401         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
5402
5403 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
5404
5405         * metadata.c (free_generic_class): Disable some code to fix the build.
5406
5407         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
5408
5409         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
5410         from the image mempool.
5411
5412         * metadata.c (free_generic_class): Free more data from the inflated class.
5413
5414         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
5415
5416         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
5417         mempool.
5418         (mono_type_create_from_typespec): Ditto.
5419
5420         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
5421         MonoImage to the caller.
5422         (mono_init_internal): Save the opened image in a global variable.
5423         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
5424
5425         * reflection.c (resolve_object): Fix a leak.
5426
5427         * metadata.c: Fix the freeing of data in the generics caches.
5428         
5429         * metadata.c (free_generic_inst): Comment this out to fix the build.
5430         (free_generic_class): Ditto.
5431
5432         * metadata.c: Free cached generic methods, instantinations and classes when
5433         they are removed from the caches.
5434         (mono_metadata_free_type): Free the type itself.
5435
5436         * class.c: Free the result of mono_class_inflate_generic_type () in a few
5437         places.
5438
5439 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5440
5441         * boehm-gc.c: restrict managed allocs to __thread supporting
5442         architectures.
5443
5444 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
5445
5446         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
5447         (mono_generic_class_get_class): Fix a leak.
5448
5449         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
5450         mono_metadata_free_type ().
5451         (mono_metadata_inflate_generic_inst): Fix a leak.
5452
5453 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5454
5455         * mono-debug.c (free_header_data): Fix a leak missed earlier.
5456
5457         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
5458         mempool.
5459
5460         * mono-debug.c (mono_debug_close_image): Fix call to 
5461         g_hash_table_remove ().
5462
5463 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5464
5465         * icall-def.h: redirect all the string ctor to the managed
5466         CreateString () methods.
5467         * string-icalls.c, string-icalls.h: removed dead code for string
5468         ctors and icalls.
5469
5470 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5471
5472         * mono-debug.c: Fix memory leaks.
5473
5474 2007-09-14  Jonathan Chambers <joncham@gmail.com>
5475
5476         * threads-types.h: Implement mono_hazard_pointer_set and 
5477         mono_hazard_pointer_clear macros using do/while(0) to fix
5478         compilation with MSVC.
5479         
5480         Code is contributed under MIT/X11 license.
5481
5482 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5483
5484         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
5485         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
5486
5487 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5488
5489         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
5490         icalls.
5491
5492 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5493
5494         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
5495         managed-code allocated as well.
5496
5497 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
5498
5499         * class.c (mono_class_is_assignable_from): Add support for generic variance.
5500
5501 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
5502
5503         * boehm-gc.c: fixed the build after the AOT changes.
5504
5505 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
5506
5507         * wrapper-types.h: Add an ALLOC wrapper type.
5508
5509         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
5510         reference managed allocator methods.
5511
5512 2007-09-12  Marek Safar  <marek.safar@gmail.com>
5513
5514         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
5515         of Type array and not MonoType, a fix suggested by Hari.
5516         
5517 2007-09-12  Jonathan Chambers <joncham@gmail.com>
5518
5519         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
5520         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
5521         
5522         Code is contributed under MIT/X11 license.
5523
5524 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5525
5526         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
5527
5528 2007-09-12  Marek Habersack  <mhabersack@novell.com>
5529
5530         * image.c (do_mono_image_open): if assembly file fails to open and
5531         MONO_IOMAP is in effect, try to find the path in a
5532         case-insensitive way.
5533
5534         * appdomain.c (mono_runtime_init): do not install postload hooks -
5535         tests show that MS.NET doesn't use anything of that sort to
5536         trigger the AppDomain.AssemblyResolve event.
5537         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
5538         made non-static.
5539         (mono_runtime_init): init portability helpers here.
5540
5541         * assembly.c (mono_assembly_load_with_partial_name): if other   
5542         attempts fail, trigger the AppDomain.AssemblyResolve event handler
5543         to resolve the assembly.
5544
5545         * domain-internals.h: added mono_try_assembly_resolve and marked
5546         it as internal.
5547
5548 2007-09-11  Jb Evain  <jbevain@novell.com>
5549
5550         * object-internals.h (MonoReflectionDynamicMethod): add
5551         a `MonoReflectionType *owner` field. The owner is used
5552         * reflection.c:
5553         (mono_reflection_create_dynamic_method): use the owner of the dynamic
5554         method as the class declaring the dynamic method.
5555         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
5556         dynamic method to the declaring type of the methodbuilder.
5557
5558 2007-09-11  Mark Probst  <mark.probst@gmail.com>
5559
5560         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
5561         rules for calling methods via reflection.
5562
5563 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
5564
5565         * reflection.c (resolve_object): Add support for MonoGenericClass. 
5566         Inflate MonoType's.
5567
5568 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
5569
5570         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
5571         provide a managed method that does fast allocations without needing
5572         a managed->unmanaged transition. Boehm GC implementation currently
5573         enabled for ptrfree objects on sane architectures.
5574
5575 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
5576
5577         * marshal.c, marshal.h: exported a couple of useful functions and
5578         added mono_mb_get_label () to easily handle backward branches.
5579
5580 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
5581
5582         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
5583
5584 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5585
5586         * loader.c (find_method): Fixed the regression introduced while
5587         fixing bug #81466.
5588
5589 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
5590
5591         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
5592         well.
5593         
5594         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
5595         icall.c reflection.c: Pass a MonoGenericContext argument to 
5596         mono_lookup_dynamic_token ().
5597
5598         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
5599         #82744.
5600         
5601 2007-09-09  Robert Jordan  <robertj@gmx.net>
5602
5603         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
5604         for generic methods.
5605
5606         * object.c (mono_object_get_virtual_method): Handle generic methods.
5607         Fixes bug #78882.
5608
5609         Code is contributed under MIT/X11 license.
5610
5611 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
5612
5613         * image.c: fix locking in mono_image_load_file_for_image ().
5614
5615 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
5616
5617         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
5618         used only as a cache: added an icall to fill it.
5619
5620 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
5621
5622         * reflection.h: exposed mono_reflection_free_type_info
5623         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
5624         since mono_reflection_bind_generic_parameters makes a copy of it.
5625         * reflection.c (free_type_info): subinfos should be freed.
5626         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
5627         made non static.
5628         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
5629         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
5630         this fixes #82695 and #81726.
5631    
5632
5633 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
5634
5635         * process.h, process.c:  added support for user profile/info in
5636           ProcessStartInfo. For now only Windows works.
5637
5638 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5639
5640         * metadata.c: consider the generic arguments when comparing
5641         signatures (bug #82614).
5642
5643 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5644
5645         * cil-coff.h, image.c: updated assembly loader to cope with the
5646         PE32+ 64 bit file format.
5647
5648 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5649
5650         * assembly.c, class.c, domain.c, loader.c: remove useless
5651         inclusion of cil-coff.h.
5652
5653 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
5654
5655         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
5656         if interface is marked with CoClassAttribute. 
5657    
5658         Code is contributed under MIT/X11 license.
5659
5660 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5661
5662         * sgen-gc.c: ensure no object from the to space is copied again or finalized
5663         if it's seen twice in major collections.
5664
5665 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5666
5667         * sgen-gc.c: big objects are not copied to the gray area, but they
5668         need to be considered for scanning, too, if they are brought alive
5669         by an object ready for finalizations or a survived one.
5670
5671 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5672
5673         * sgen-gc.c: properly account the number of disappearing links when
5674         they are nullified.
5675
5676 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5677
5678         * sgen-gc.c: share the code to scan the registered roots between the
5679         different types of collections.
5680
5681 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
5682
5683         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
5684
5685 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
5686
5687         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
5688         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
5689
5690 2007-08-28  Mark Probst  <mark.probst@gmail.com>
5691
5692         * security-manager.c (mono_security_manager_get_methods):
5693         LinkDemandSecurityException now has 2 arguments instead of 3.
5694
5695 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
5696
5697         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
5698         platforms which need it.
5699
5700 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
5701
5702         * sgen-gc.c: unregister thread data structures with a pthread_key_t
5703         dtor.
5704
5705 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
5706
5707         * threads.c: free the thread static data on thread exit.
5708
5709 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
5710
5711         * class.c: walk the hierarchy to find the generic definition for
5712         a class (fixes runtime part of bug #82498).
5713
5714 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
5715
5716         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
5717         ...
5718
5719         * image.c (mono_image_close): Here. Hopefully fixes #82510.
5720
5721 2007-08-24  Mark Probst  <mark.probst@gmail.com>
5722
5723         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
5724
5725 2007-08-24  Robert Jordan  <robertj@gmx.net>
5726
5727         * appdomain.c: don't perform the ':'->';' substitution on Win32.
5728
5729 2007-08-24  Jb Evain  <jbevain@novell.com>
5730
5731         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
5732         for byref types.
5733
5734 2007-08-24  Mark Probst  <mark.probst@gmail.com>
5735
5736         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
5737         #82286.
5738
5739 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
5740
5741         * assembly.c: Fix a warning.
5742         
5743 2007-08-23  Marek Habersack  <mhabersack@novell.com>
5744
5745         * appdomain.c: parse the <runtime> section looking for the probing
5746         element with the 'privatePath' attribute, which sets additional
5747         directories in which the runtime should look for assemblies.
5748
5749 2007-08-23  Robert Jordan  <robertj@gmx.net>
5750
5751         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
5752         Fixes #82499.
5753
5754 2007-08-23  Martin Baulig  <martin@ximian.com>
5755
5756         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
5757         _mono_debug_init_corlib() and remove it from the header file.
5758
5759 2007-08-23  Martin Baulig  <martin@ximian.com>
5760
5761         * mono-debug-debugger.c
5762         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
5763         don't notify the debugger about it.
5764
5765         * mono-debug-debugger.h
5766         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
5767
5768 2007-08-23  Robert Jordan  <robertj@gmx.net>
5769
5770         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
5771         Code is contributed under MIT/X11 license.
5772
5773 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
5774
5775         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
5776
5777 2007-08-22  Martin Baulig  <martin@ximian.com>
5778
5779         * mono-debug.c: Store debugging info on a per-domain basis and
5780         free it on domain unload.  Add support for unloading symbol files.
5781
5782         * mono-debug.h
5783         (MonoDebugList): New typedef.
5784         (MonoSymbolTable):
5785         - add `data_tables and `type_table'.
5786         - replace 'symbol_files' and `num_symbol_files' with a
5787           `MonoDebugList *'.
5788         (mono_debug_data_table): Removed.
5789         (mono_debug_list_add): New public function.
5790         (mono_debug_list_remove): New public function.
5791         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
5792         (mono_debug_init_2_memory): Renamed into
5793         mono_debug_open_image_from_memory().
5794         (mono_debug_close_image): New public function.
5795         (mono_debug_domain_create): Likewise.
5796         (mono_debug_domain_unload): Likewise.
5797         (MONO_DEBUGGER_VERSION): Bump to 60.
5798
5799         * mono-debug-debugger.h
5800         (MonoDebuggerEvent):
5801         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
5802         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
5803         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
5804         - rename `THREAD_CREATED' and `THREAD_EXITED' into
5805           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
5806         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
5807           meaning.
5808         (mono_debugger_add_symbol_file): Removed.
5809         (mono_debugger_add_type): Removed.
5810         (mono_debugger_lookup_type): Removed.
5811         (mono_debugger_lookup_assembly): Removed.
5812
5813         * domain.c
5814         (mono_domain_create): Call mono_debug_domain_create().
5815         (mono_init_internal): Call mono_debug_init_corlib().
5816
5817         * assembly.c
5818         (mono_assembly_close): Call mono_debug_close_image().
5819
5820 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
5821
5822         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
5823         mmap call.
5824
5825 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5826
5827         * sgen-gc.c: ensure section->pin_queue_end is initialized
5828         correctly when non pinning objects in the section have been found.
5829
5830 2007-08-22  Marek Habersack  <mhabersack@novell.com>
5831
5832         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
5833         containing a list of directories separated by ':'. MSDN docs say
5834         the directories should be separated with ';'. Part of a bugfix for
5835         bug #81446
5836
5837 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
5838
5839         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
5840         it should MonoType and not MonoClass.
5841
5842 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
5843
5844         * culture-info-table.h : regenerated.
5845
5846 2007-08-20  William Holmes  <billholmes54@gmail.com>
5847
5848         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
5849          to call ReplaceFile Kernel32 on windows or in io-layer.
5850         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
5851         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
5852          as an internal call.
5853
5854         Code is contributed under MIT/X11 license.
5855
5856 2007-08-20  Jb Evain  <jbevain@novell.com>
5857
5858         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
5859         and MONO_EXCEPTION_FIELD_ACCESS.
5860
5861         * debug-helpers.[c|h]: new mono_field_full_name function.
5862
5863 2007-08-20  Mark Probst  <mark.probst@gmail.com>
5864
5865         * class.c: Removed class_security_level() and moved it to
5866         security-core-clr.c.
5867
5868         * security-core-clr.c, security-core-clr.h: class_security_level()
5869         is now public and renamed to mono_security_core_clr_class_level().
5870         It also looks for security attributes in the classes a class is
5871         nested in.
5872
5873 2007-08-20  Mark Probst  <mark.probst@gmail.com>
5874
5875         * security-core-clr.c, security-core-clr.h: CoreCLR security
5876         utility functions.
5877
5878         * Makefile.am: Added security-core-clr.[ch].
5879
5880         * security-manager.c, security-manager.h: Functions and enum for
5881         setting and getting the security mode.
5882
5883         * class.c: CoreCLR security checks.
5884
5885 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
5886
5887         * icall-def.h, process.c, process.h: implemented icall to get
5888         user/system processor times.
5889
5890 2007-08-17  Mark Probst  <mark.probst@gmail.com>
5891
5892         * domain.c, threads.c, class-internals.h, domain-internals.h: New
5893         reader-lock-free jit_info_table.
5894
5895 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
5896
5897         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
5898
5899         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
5900
5901         * object-internals.h (MonoException): Add missing _data member.
5902
5903 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
5904
5905         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
5906         checking that only methods with matching qname or fqname are picked
5907         from implemented interfaces.
5908
5909 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5910
5911         * verify.c (do_newarr):added, do type verification of
5912         newarr ops, push the right value on the eval stack.
5913         * verify.c (mono_method_verify): use do_newarr
5914
5915
5916 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5917
5918         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
5919         factored the common code into get_boxable_mono_type, which
5920         is now using mono_type_get_full, this fixed byref related tests.
5921
5922 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5923
5924         * class.c: added mono_type_get_full, this function has the same
5925         behavior of mono_class_get_full but the returned MonoType has
5926         all metadata of the associated token in case of a typespec token.
5927         * class.c: added mono_type_retrieve_from_typespec, used by 
5928         mono_type_get_full to retrieve the token type.
5929         * class.c (mono_class_create_from_typespec): changed to use
5930         mono_type_retrieve_from_typespec.
5931         * class.c (mono_ldtoken): changed to use mono_type_get_full
5932         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
5933         * class-internals.h: exported mono_type_get_full for internal use.
5934
5935 2007-08-16  Jb Evain  <jbevain@novell.com>
5936
5937         * domain.c (supported_runtimes): add entry for
5938         the 'moonlight' runtime version.
5939
5940 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5941
5942         * verify.c (mono_method_verify): small typo sliped in.  
5943
5944 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5945
5946         * verify.c (do_unbox_value): added, do type verification of
5947         unboxing ops
5948         * verify.c (mono_method_verify): use do_unbox_value
5949
5950
5951 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5952
5953         * verify.c (dump_stack_value): fixed typo, was printing string
5954         instead of object on stack.
5955         * verify.c (do_box_value): moved the byref check up as it leads
5956         to invalid code and should be done earlier.
5957         * verify.c: improved error messages for and ldobj
5958
5959 2007-08-15  William Holmes  <billholmes54@gmail.com>
5960
5961         * marshal.c (emit_marshal_custom): Omit the call to 
5962           marshal_native_to_managed when calling native to managed 
5963           and the argument is specified as an out argument.
5964
5965         Code is contributed under MIT/X11 license.
5966
5967 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5968
5969         * verify.c: fixed the type checks for generics, function pointers and vectors.
5970         Added type verification for ldobj and ldtoken. The verifier
5971         would segfault if header or signature of a method contained references
5972         to non-existant types.
5973
5974 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
5975
5976         * marshal.c (cominterop_get_ccw): Patch from
5977         Bill Holmes to no walk up interface hierarchy. 
5978         All parent methods should be present in the interface for COM.
5979    
5980         Code is contributed under MIT/X11 license.
5981
5982 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
5983
5984         * marshal.c (emit_marshal_com_interface): Patch from
5985         Bill Holmes to handle COM Interfaces as return values
5986         for native->managed calls.
5987    
5988         Code is contributed under MIT/X11 license.
5989
5990 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
5991
5992         * marshal.c (cominterop_get_idispatch_for_object): Implement
5993         for runtime callable wrappers.
5994    
5995         Code is contributed under MIT/X11 license.
5996
5997 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
5998
5999         * pedump.c (main): changed from mono_init to mono_init_from_assembly
6000         so 2.0 types are accessible
6001
6002
6003 2007-08-13  Miguel de Icaza  <miguel@novell.com>
6004
6005         * domain.c (mono_init_internal): Call mono_assembly_load_friends
6006         once we load mscorlib.   Due to the order in which we initialize,
6007         the mono_assembly_load_full routine that loads mscorlib did not
6008         load friends.   We now load it once we load the
6009         mono_defaults.internals_visible_class class. 
6010
6011         * assembly.c: Expose the mono_load_friend_assemblies method.
6012
6013 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
6014
6015         * verify.c: improved the handling of boxing, better
6016         type checking for unary ops and conversion. Fix bug
6017         regarding managed pointer compatibility checking
6018
6019 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
6020
6021         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
6022
6023         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
6024
6025 2007-08-09  Raja R Harinath  <rharinath@novell.com>
6026
6027         * reflection.c (dup_type): Remove.
6028         * class.c (dup_type): Remove.
6029         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
6030         instead of the dodgy 'dup_type'.
6031         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
6032         handle the case where 'dup_type' needed the second argument.
6033
6034 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
6035
6036         * domain.c: Fix a warning.
6037
6038 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
6039
6040         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
6041         checking that methods with the same fqname are not overridden
6042         with a method from an ancestor.
6043
6044 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
6045
6046         * threads.c (free_thread_static_data_helper): Avoid a crash if
6047         thread->static_data is not yet set.
6048
6049 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
6050
6051         * marshal.c: Use correct image when emitting
6052         native wrapper for COM calls.
6053    
6054         Code is contributed under MIT/X11 license.
6055
6056 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
6057
6058         * icall-def.h, security.c, security.h :
6059           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
6060
6061 2007-08-07  Martin Baulig  <martin@ximian.com>
6062
6063         * mono-debug-debugger.h
6064         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
6065
6066         * domain.c (mono_domain_free): Call
6067         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
6068
6069 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
6070
6071         * verify.c (check_underflow, check_overflow): error message now returns IL offset
6072         * verify.c (in_same_block): code should test if either offset is inside the clauses
6073         * verify.c (mono_method_verify): push the exception into the eval stack of exception
6074         and filter blocks
6075
6076 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6077
6078         * image.c (mono_image_close): Fix a leak.
6079
6080         * object.c (mono_runtime_invoke_array): Avoid using alloca.
6081
6082         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
6083
6084 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
6085
6086         * domain.c, threads.c, threads-types.h: fix memory retention issue
6087         with thread static variables not being cleared on domain unload.
6088         Reuse thread static slots after domain unload.
6089
6090 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6091
6092         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
6093         nullable type.
6094
6095         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
6096         now done in mono_runtime_invoke_array.
6097
6098         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
6099         receiver is a nullable type.
6100
6101         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
6102         generic parameter.
6103
6104 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
6105
6106         * marshal.c: Implement COM Objects as return type for 
6107         managed->unmanaged calls. Added Release calls for COM Object
6108         out/return values in managed->unmanaged calls.
6109
6110         Code is contributed under MIT/X11 license.
6111
6112 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
6113
6114         * threads.h, threads-type.h: move the hazard pointer declarations
6115         to the private header.
6116
6117 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
6118
6119         * file-io.c, appdomain.c: memory leak fixes.
6120
6121 2007-08-02  Dick Porter  <dick@ximian.com>
6122
6123         * socket-io.c
6124         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
6125         SO_REUSEADDR setting into io-layer/sockets.c.
6126
6127 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
6128
6129         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
6130         from Object when called on a generic parameter. Fixes #82211.
6131
6132 2007-08-01  Dick Porter  <dick@ximian.com>
6133
6134         * file-io.c (convert_share): Test FileShare values bit-by-bit.
6135         Fixes bug 79250 yet again.
6136
6137 2007-07-30  Martin Baulig  <martin@ximian.com>
6138
6139         Merged the `debugger-dublin' branch.
6140
6141         * mono-debug.h
6142         (MonoDebugDataTable): New typedef.
6143         (MonoDebugMethodAddressList): New typedef.
6144         (MonoDebugWrapperData): Removed.
6145         (MonoDebugSymbolTable): Removed `current_data_table',
6146         `current_data_table_size', `current_data_table_offset'.
6147         (MonoDebugDataItemType): Moved into mono-debug.c.
6148         (MonoDebugMethodJitInfo): Remove `address'.
6149         (mono_debug_data_table): New global variable.
6150         (mono_debug_lookup_method_addresses): New public function.
6151         (mono_debug_find_method): Take a `MonoMethod *', not a
6152         `MonoDebugMethodInfo *'.
6153
6154         * mono-debug.c: Drop support for the old symbol tables.
6155
6156 2007-06-28  Martin Baulig  <martin@ximian.com>
6157
6158         * mono-debug.c (mono_debug_debugger_version): New public variable.
6159
6160 2007-07-31  William Holmes  <billholmes54@gmail.com>
6161
6162         * metadata.c Changed mono_type_create_from_typespec to not insert
6163           the type into the hash map until after
6164           do_mono_metadata_parse_type has completed.
6165         Fixes Bug #82194
6166         Code is contributed under MIT/X11 license.
6167
6168 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
6169
6170         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
6171         generic parameter. Fixes #82211.
6172
6173 2007-07-27  Jb Evain  <jbevain@novell.com>
6174
6175         * pedump.c (dump_metadata, dump_metadata_header): dump
6176         versions contained in the metadata header.
6177
6178 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6179
6180         * threads.c: register small_id_table with the GC.
6181
6182 2007-07-27  Mark Probst  <mark.probst@gmail.com>
6183
6184         * threads.c, threads.h, class-internals.h, object-internals.h:
6185         Hazard pointers, to be used by lock-free parallel algorithms.
6186
6187 2007-07-26  Dick Porter  <dick@ximian.com>
6188
6189         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
6190         routine on non-windows platforms, as I've not managed to think of
6191         a non-kludgy way of doing this.  Finishes off bug 78739.
6192
6193 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
6194
6195         * object.c: properly setup interface_bitmap in proxy vtables.
6196
6197 2007-07-25  Marek Habersack  <mhabersack@novell.com>
6198
6199         * appdomain.c (get_shadow_assembly_location): do not use TickCount
6200         to create unique shadow copy target directories, use the domain's
6201         serial number instead. Each domain gets a unique target directory
6202         that way.
6203
6204         * domain.c (mono_domain_create): added code to increment domain
6205         shadow copy serial number and cache the value in the current
6206         domain structure.
6207
6208         * domain-internals.h (struct _MonoDomain): added a new field -
6209         shadow_serial to hold the serial number used in generation of
6210         shadow-copy directories. This is to make sure that the directory
6211         name is unique for each and every domain created. We avoid a race
6212         condition with overriding assemblies already in use by other app
6213         domains.
6214
6215 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
6216
6217         * class.c (mono_bounded_array_class_get): fixed memory leak when 
6218         binding generic parameters.
6219
6220 2007-07-24  Raja R Harinath  <rharinath@novell.com>
6221
6222         * metadata.c (do_mono_metadata_parse_generic_class): Use
6223         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
6224         error.
6225
6226 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
6227
6228         * loader.c, class-internals.h, reflection.c: removed the per-method
6229         generics hashtable: we use the global one through the call of
6230         mono_class_inflate_generic_method ().
6231
6232 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
6233
6234         * class.c, metadata.c, class-internals.h: introduce yet another
6235         generics global cache for inflated methods (fixes 98% of the perf
6236         issue in bug #81806).
6237
6238 2007-07-23  Raja R Harinath  <rharinath@novell.com>
6239
6240         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
6241         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
6242         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
6243         return a MonoGenericInst containing (a copy) of those types.
6244         (mono_metadata_inflate_generic_inst): Update to changes.
6245         (mono_metadata_parse_generic_inst): Likewise.
6246         (mono_get_shared_generic_inst): Likewise.
6247         * reflection.c (mono_class_bind_generic_parameters): Likewise.
6248         (mono_reflection_bind_generic_method_parameters): Likewise.
6249         * metadata-internals.h: Likewise.
6250         * icall.c (free_generic_context): Kill.
6251         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
6252
6253         * reflection.c (reflection_methodbuilder_to_mono_method): Use
6254         mono_metadata_type_dup.
6255         * marshal.c (mono_mb_create_method): Likewise.
6256
6257         * metadata.c (mono_metadata_type_dup): Rename from
6258         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
6259         MonoImage.  Handle a few more cases, esp. when no mempool is given.
6260         * marshal.c, metadata-internals.h: Update to changes.
6261
6262 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6263
6264         * class.c: fixed a small leak for array classes and removed warning.
6265
6266 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
6267
6268         * loader.c (mono_method_get_param_token): Make this work on generic methods.
6269         Return 0x8000000 for return parameters. Fixes #82161.
6270
6271 2007-07-21  Marek Habersack  <grendello@gmail.com>
6272
6273         * appdomain.c (get_shadow_assembly_location): append the current
6274         ticks value to the path. Avoids overwriting the same assemblies by
6275         several threads at the same time.
6276
6277 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6278         and Raja R Harinath  <rharinath@novell.com>
6279
6280         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6281         Simplify slightly.
6282         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
6283         property for testing if a method is a generic method definition.
6284
6285 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6286
6287         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
6288
6289 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6290
6291         * verify.c: used function from private branch, reverted to the one in class.h 
6292
6293 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6294
6295         * verify.c: a typo slipped in and the code wont compile
6296
6297 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6298
6299         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
6300         disabled box instruction as it is doing the wrong thing
6301         improved stack dump messages, now it is easier to debug type related issues
6302
6303
6304 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
6305
6306         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
6307
6308 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6309
6310         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
6311         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
6312         grouped with class and valuetype. This change will simply 
6313         the code as it should be handled just like unmanaged pointers.
6314
6315 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6316
6317         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
6318
6319 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6320
6321         * verify.c: several stack merge issues fixed, reference comparisons now
6322         check the type size. strict type check now works correctly.
6323         added more uses of IS_MANAGED_POINTER macro.
6324         fixed issues pointed by running the test suite against .net.
6325         
6326
6327 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6328
6329         * class.c, loader.c, class-internals.h: Removed the
6330         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
6331         defines.
6332
6333         * icall.c: Better error checking in some internal reflection
6334         methods.
6335
6336 2007-07-18  William Holmes  <billholmes54@gmail.com>
6337
6338         * filewatcher.c : removed unused variable 'filename' in 
6339           ves_icall_System_IO_FSW_SupportsFSW
6340
6341 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
6342
6343         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
6344         obsolete, removed.
6345
6346 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
6347
6348         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
6349         
6350         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
6351
6352 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
6353
6354         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
6355         Implement generics support.
6356         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6357
6358         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
6359         type_args and method_args arguments.
6360         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
6361         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6362         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
6363
6364 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
6365
6366         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
6367           It adds a rootimage parameter to mono_reflection_get_type_internal,
6368           adds new function mono_reflection_get_type_with_rootimage and use
6369           the rootimage to resolve the types instead of the current image
6370
6371 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6372
6373         * culture-info-table.h: Forgot to update after r78304.
6374
6375 2007-07-13  Raja R Harinath  <rharinath@novell.com>
6376
6377         * class.c (mono_class_is_open_constructed_type)
6378         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
6379
6380 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
6381
6382         * class.c (mono_bounded_array_class_get):  method fails if used with
6383         an incomplete TypeBuilder enum (no basetype field), fixed it by 
6384         avoiding calculating the size for such array as it cannot be instantiated.
6385         Fix bug #82015
6386
6387 2007-07-12  Raja R Harinath  <rharinath@novell.com>
6388
6389         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
6390         field.
6391         * metadata.c, reflection.c: Update to changes.
6392
6393 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
6394
6395         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
6396         mono_class_is_valid_enum, they are used to valide a enum when loading.
6397         * reflection.c: used new functions to throw TypeLoadException when and
6398         invalid enum is build with TypeBuilder. Fixes #82018
6399   
6400 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6401
6402         * object.c: forgot commit of mono_class_setup_methods () to access
6403         iface->methods.
6404         * object-internals.h: added a few more handy fields to
6405         MonoIMTCheckItem.
6406
6407 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
6408
6409         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
6410         iface->methods.
6411
6412 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
6413
6414         * class-internals.h, object-internals.h, object.c: IMT-based
6415         interface invocation core from Massimiliano Mantione
6416         (massi@ximian.com) with a reworked arch-specific interface,
6417         bsearch implementation and a few bugfixes and memory savings by me.
6418
6419 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
6420
6421         * class.c (mono_class_create_from_typedef): mono would segfault if 
6422         an enum did not have a __value field. It now throws a TypeLoadException
6423         for such cases. Fix bug #82022
6424
6425 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6426
6427         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
6428
6429 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6430
6431         * class.c (mono_class_init): If a class is already inited but has
6432         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
6433
6434 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6435
6436         * class.c: Properly handle the case of an unimplemented interface
6437         method.  Fixes: 81673.
6438
6439 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
6440
6441         * class-internals.h, object.c: cleanup patch from massi: use
6442         MonoVTable->interface_bitmap since the vtable interfaces offset array
6443         is going away.
6444
6445 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6446
6447         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
6448         GetMDStreamVersion icall instead.
6449
6450 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
6451
6452         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
6453         not use mono_dl_build_path() with a full library name: makes
6454         fallbacks to libgaim and libfam work.
6455
6456 2007-07-06  William Holmes  <billholmes54@gmail.com>
6457
6458         * assembly.c: Added a continue statement in probe_for_partial_name when
6459          parse_assembly_directory_name fails.  Fixes : 82002
6460
6461 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
6462
6463         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
6464         and added a verification  for TYPEDBYREF.
6465         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
6466         make native int interchangeable with int32 and some small cleanup and formating.
6467         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
6468         handle byref of byref.
6469         * verify.c (push_local): handle byref of byref.
6470         * verify.c (do_binop): invalid mix of values is unverifiable
6471         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
6472         added visibility checks
6473         * verify.c (field related method): added visibility checks
6474         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
6475
6476 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
6477
6478         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
6479         string.
6480
6481 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
6482
6483         * profiler.c (mono_profiler_load): Fix an off-by-one error.
6484
6485         * marshal.c (emit_marshal_string): When returning a string from managed code,
6486         allways make a copy even for unicode strings. Fixes #81990.
6487
6488 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
6489
6490         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
6491         of byref generic inst types (bug #81997).
6492
6493 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
6494
6495         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
6496         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
6497
6498 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
6499
6500         * marshal.c (emit_marshal_string): Add support for unicode strings in
6501         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
6502
6503 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
6504
6505         * verify.c: field load/store are now verified, missing only access checks now
6506
6507 2007-06-28  Martin Baulig  <martin@ximian.com>
6508
6509         * mono-debug.c (mono_debug_debugger_version): New public variable.
6510
6511 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
6512
6513         * locales.c: When constructing DateTimeFormat or NumberFormat for
6514         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
6515         MonoCultureInfo contructed from the current locale is always
6516         read-only and has UseUserOverride set to true. All MonoCultureInfo
6517         instances returned for GetCultures have both IsReadOnly and
6518         UseUserOverride set to true. Fixes part of bug #81930.
6519
6520 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
6521
6522        * icall-def.h: Update System.__ComObject icalls
6523        * marshal.c: Avoid managed transition (and object creation)
6524        when looking up COM interface in RCW.
6525        * marshal.h: Ditto.
6526        
6527        Code is contributed under MIT/X11 license.
6528
6529 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
6530
6531         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
6532         to avoid crashes during assembly unloading.
6533
6534 2007-06-22  Raja R Harinath  <rharinath@novell.com>
6535
6536         Fix MethodInfo.IsGenericMethodDefinition
6537         * reflection.c (mono_reflection_bind_generic_method_parameters):
6538         Rearrange code to ensure we always uses a generic method definition.
6539         * class.c (mono_class_inflate_generic_method_full): Set
6540         'generic_container' field only for generic method definitions.
6541         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6542         Use presense of 'generic_container' field as indication of being a
6543         generic method definition.
6544
6545 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
6546
6547         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6548
6549         * object-internals.h: Reflect changes in the layout of the managed Delegate
6550         class.
6551         
6552         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
6553         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
6554         runtime memory used by the dynamic method. Fixes #77146.
6555
6556 2007-06-21  Dick Porter  <dick@ximian.com>
6557
6558         * file-io.h: 
6559         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
6560         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
6561         81767.
6562
6563 2007-06-21  Raja R Harinath  <rharinath@novell.com>
6564
6565         * reflection.c (method_encode_methodspec): Add a tripwire.
6566         * class.c (inflate_generic_type): The fully open generic type is
6567         not the same as the generic type definition.
6568
6569 2007-06-21  Martin Baulig  <martin@ximian.com>
6570
6571         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
6572
6573         * mono-debug-debugger.h
6574         (MonoDebuggerBreakpointInfo): Removed.
6575         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
6576         (mono_debugger_remove_breakpoint): Likewise.
6577         (mono_debugger_breakpoint_callback): Likewise.
6578         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
6579
6580 2007-06-21  Raja R Harinath  <rharinath@novell.com>
6581
6582         * metadata.c (mono_metadata_lookup_generic_class): The fully open
6583         generic type is not the same as the generic type definition.
6584         * class.c (mono_generic_class_get_class): Likewise.
6585
6586 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
6587
6588         * icall.c: The second argument to 
6589         System.Reflection.MethodBase.GetMethodFromHandleInternalType
6590         is a MonoType not a MonoClass.
6591
6592 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
6593
6594         * verify.c: support for function pointers in the verifier
6595
6596 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
6597
6598         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
6599
6600 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
6601
6602         * assembly.c: removed Mono.Data.SqliteClient from the list of
6603         forward-compatible assemblies as it breaks the ABI (bug #81899).
6604
6605 2007-06-19  Raja R Harinath  <rharinath@novell.com>
6606
6607         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
6608         lookup/update with the loader lock.
6609         * reflection.c (mono_class_bind_generic_parameters): No need to
6610         protect mono_metadata_lookup_* with the loader lock.
6611         * class.c (inflate_generic_type): Likewise.
6612         
6613         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
6614         on a generic instantiated type.
6615
6616 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
6617
6618         *verify.c: produce meanfull error messages on verification error
6619         *verify.c: fixed some cases of verification errors reported as validation errors
6620         *pedump.c: fixed the error name array, now it shows validation errors properly
6621         *verify.h: fixed the contant that should be used for verification errors
6622
6623 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
6624
6625         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
6626         for bug #77596, 81858 and 80743 (generics data structures on domain
6627         unload).
6628
6629 2007-06-15  Raja R Harinath  <rharinath@novell.com>
6630
6631         Avoid allocating 'MonoGenericContext' on the heap.
6632         * class-internals (_MonoMethodInflated::context): Make field
6633         inline, not a pointer.
6634         * loader.c (method_from_methodspec): Allocate 'new_context' on the
6635         stack.  Use the context embedded within the inflated method as the
6636         hash key, rather than 'new_context'.
6637         * class.c (inflate_generic_context): Simplify.  Return a struct
6638         rather than allocating on the heap.
6639         (mono_class_inflate_generic_method_full): Update to changes.  Now,
6640         doesn't salt away a copy of the context -- simplifying the
6641         lifetime rules of a 'MonoGenericContext *'.
6642         (mono_method_get_context): Return pointer to embedded context.
6643         (setup_generic_array_ifaces): Allocate temporary context on stack.
6644         * reflection.c (inflate_mono_method): Likewise.
6645         (mono_reflection_bind_generic_method_parameters): Likewise.
6646         Use the context embedded within the inflated method as the hash key.
6647
6648         Avoid a source of allocation of 'MonoGenericContext'.
6649         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
6650         and 'cached_context' fields into embedded 'MonoGenericContext' field.
6651         * class.c: Update to changes.
6652         (mono_generic_class_get_context): Simplify drastically.  Now just
6653         returns a pointer to the field.
6654         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
6655         argument as a const pointer.
6656         (mono_metadata_generic_context_equal): Likewise.
6657         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
6658         Update to changes.
6659
6660 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
6661
6662         * verify.c improved the handling of brtrue/brfalse, factored out common code
6663
6664 2007-06-14  Raja R Harinath  <rharinath@novell.com>
6665
6666         Kill MonoGenericMethod.
6667         * class-internals.h (MonoGenericContext::method_inst): Rename from
6668         'gmethod' and convert to a MonoGenericInst.
6669         (MonoGenericMethod): Remove.
6670         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
6671         * loader.c (method_from_methodspec): Update to changes.  Use a
6672         MonoGenericContext as the key to the hashtable.
6673         * metadata.c (mono_metadata_generic_context_equal): Rename from 
6674         'mono_metadata_generic_method_equal' and take MonoGenericContext.
6675         (mono_metadata_generic_context_hash): Likewise from
6676         'mono_metadata_generic_method_hash'.  Change hash function.
6677         (mono_metadata_load_generic_params): Update to changes.
6678         (mono_get_shared_generic_method): Remove.
6679         * metadata-internals.h (mono_get_shared_generic_method): Remove.
6680         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
6681         (inflate_generic_context): Likewise.
6682         (mono_class_inflate_generic_method_full): Likewise.
6683         (setup_generic_array_ifaces): Likewise.
6684         (mono_class_create_from_typespec): Likewise.
6685         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
6686         (method_encode_methodspec): Update callsite.
6687         (reflection_methodbuilder_to_mono_method): Update to changes.
6688         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
6689         MonoGenericContext as the key to the hashtable.
6690         (inflate_mono_method): Update to changes.
6691
6692         * class-internals.h (MonoGenericMethod::container): Remove.
6693         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
6694
6695 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
6696
6697         * profiler-private.h, profiler.c, profiler.h: added API to profile
6698         exception events.
6699
6700 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
6701
6702         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
6703
6704 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
6705
6706         * verify.c: method invocation is now validated, now we verify parameter types on stack.
6707         Fixed overflow and underflow not aborting the verification process.
6708
6709 2007-06-13  Mark Probst  <mark.probst@gmail.com>
6710
6711         * class-internals.h (MonoStats): Added stats entries for dynamic
6712         code allocations.
6713
6714 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
6715
6716         * loader.c (mono_free_method): Free header->locals and header->clauses.
6717
6718         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
6719         dynamic case.
6720
6721         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
6722
6723         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
6724
6725 2007-06-12  Raja R Harinath  <rharinath@novell.com>
6726
6727         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
6728         the tables.
6729
6730 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6731
6732         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
6733
6734 2007-06-11  Raja R Harinath  <harinath@gmail.com>
6735
6736         MonoGenericMethod on a diet
6737         * class-internals.h (_MonoMethodInflated::reflection_info): Move
6738         here ...
6739         (_MonoGenericMethod::reflection_info): ... from here.
6740         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
6741         Update to changes.
6742         * reflection.c (inflate_mono_method): Likewise.
6743         (mono_reflection_bind_generic_method_parameters): Likewise.
6744
6745 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6746
6747         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
6748         *verify.c: factored long ldarg forms to share code with short forms
6749
6750 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6751
6752         *verify.c: fixed code formating factored some duplicate code
6753         into a new function
6754
6755         *verify.h: fixed binary incompatibility introduced earlier
6756
6757         *pedump.c: fixed formating
6758
6759 2007-06-11  Raja R Harinath  <harinath@gmail.com>
6760
6761         Fix assertion when disassembling Mono.C5.dll
6762         * loader.c (method_from_methodspec): Avoid inflating a method
6763         twice with the same context.  If the methodref is inflated, use
6764         the declaring method instead.
6765
6766         * class.c (mono_class_from_generic_parameter): Fix case similar to
6767         bug #81830 handled below, but for method containers.
6768
6769 2007-06-10  Raja R Harinath  <harinath@gmail.com>
6770
6771         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
6772         get_shared_generic_class.  Directly inflate the instance.
6773         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
6774         (inflate_generic_class): Delete.
6775         (get_shared_generic_class): Delete.  Move setting of
6776         'cached_class' and 'cached_context' ...
6777         * metadata.c (mono_metadata_lookup_generic_class): ... here.
6778
6779         * metadata.c (mono_metadata_lookup_generic_class): Change
6780         signature to take the components of a MonoGenericClass rather than
6781         an allocated MonoGenericClass.  Change semantics to be intern-like.
6782         * reflection.c (mono_class_bind_generic_parameters): Update to
6783         changes.  Make locking region tighter.
6784         * class.c (inflate_generic_class): Update to changes.
6785         (get_shared_generic_class): Likewise.
6786         * metadata-internals.h: Likewise.
6787
6788         * reflection.c (mono_class_bind_generic_parameters): Take and
6789         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
6790         (mono_reflection_bind_generic_parameters): Use
6791         'mono_class_bind_generic_parameters' rather than duplicate the code.
6792         * class.c (mono_bounded_array_class_get): Update to changes.
6793         * object-internals.h: Likewise.
6794
6795         * reflection.c (mono_class_bind_generic_parameters): Only support
6796         parameterizing generic type definitions.  Remove support for other
6797         open types.
6798
6799 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
6800
6801         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
6802
6803         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
6804         in the dynamic case.
6805
6806 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
6807
6808         * threads.c: When cleaning up thread, reset the Background bit.
6809         Fixes bug #81720.
6810
6811 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
6812
6813        * metadata.c: Move variable declarations to top of scope.
6814        * verify.c: Move variable declarations to top of scope.
6815
6816        Code is contributed under MIT/X11 license.
6817
6818 2007-06-08  Raja R Harinath  <rharinath@novell.com>
6819
6820         * reflection.c (mono_class_bind_generic_parameters): Replace
6821         open-coded loop with mono_metadata_inflate_generic_inst.
6822
6823         * class.c (get_shared_generic_class): Don't call
6824         mono_get_shared_generic_inst.  Use the container's own
6825         'class_inst'.
6826
6827         * metadata.c (mono_metadata_load_generic_params): Move
6828         initialization of 'context' field here from ...
6829         * class.c (mono_class_create_from_typedef): ... here, and ...
6830         * loader.c (mono_get_method_from_token): ... here.
6831
6832         * class.c (get_shared_generic_class): Rename from
6833         mono_get_shared_generic_class and make static.
6834         (mono_get_shared_generic_inst): Move to metadata.c.
6835         * loader.c (mono_get_shared_generic_method): Likewise.
6836         * class-internals.h, metadata-internals.h: Update to changes.
6837
6838         Fix #81830
6839         * class.c (mono_class_from_generic_parameter): Don't assume a
6840         generic container owner exists.  Generic containers from monodis
6841         don't have any.
6842
6843 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
6844
6845         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
6846         * verify.h: new typedefs to returns the non-verifiable status
6847         * verify.c: initial implementation of generics, stack merging and object compatibility check
6848
6849 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6850
6851         * class.c, image.c, class-internals.h (MonoImage): class_cache is
6852         a MonoInternalHashTable again (fixed bug in internal hash table
6853         code).
6854
6855 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6856
6857         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
6858         MonoInternalHashTable again (fixed bug in internal hash table
6859         code).
6860
6861 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6862
6863         * class.c, image.c, class-internals.h, domain.c,
6864         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
6865         changes.  Have to figure out what makes them break the SWF
6866         regression.
6867
6868 2007-06-04  Mark Probst  <mark.probst@gmail.com>
6869
6870         * class.c, image.c, class-internals.h (MonoImage): class_cache is
6871         a MonoInternalHashTable now.
6872
6873 2007-06-04  Mark Probst  <mark.probst@gmail.com>
6874
6875         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
6876         MonoInternalHashTable now.
6877
6878 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
6879
6880         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
6881         invoke_impl code.
6882
6883         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
6884
6885         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
6886         dependent trampoline.
6887
6888         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6889
6890         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
6891
6892 2007-05-29  Robert Jordan  <robertj@gmx.net>
6893
6894         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
6895
6896 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
6897
6898         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
6899
6900 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
6901
6902        * marshal.c: Fix interface lookup loops for
6903        cominterop_get_com_slot_for_method and 
6904        cominterop_get_method_interface. Only need to lookup
6905        if type is a class, else use interface type method is on.
6906
6907        Code is contributed under MIT/X11 license.
6908
6909 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
6910
6911         * reflection.c: HasSecurity can be present even if no specially 
6912         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
6913         SecurityAttribute). Fix CAS regression tests on buildbot.
6914
6915 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
6916
6917        * appdomain.c: Add configure checks for header files.
6918        * image.c: Add configure checks for header files.
6919        * file-io.c: Add configure checks for header files.
6920        * debug-mono-symfile.c: Add configure checks for header files.
6921        * threadpool.c: Add configure checks for header files.
6922        * console-io.c: Add configure checks for header files.
6923        * profiler.c: Add configure checks for header files.
6924        * rawbuffer.c: Add configure checks for header files.
6925        * icall.c: Add configure checks for header files.
6926        * rand.c: Add configure checks for header files.
6927        * socket-io.c: Add configure checks for header files.
6928
6929        Code is contributed under MIT/X11 license.
6930
6931 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
6932
6933         * reflection.c (mono_custom_attrs_from_builders): Remove the 
6934         assertion as it breaks the build.
6935         
6936         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
6937
6938         * reflection.c (lookup_custom_attr): Make a copy here too.
6939
6940         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
6941         dynamic images.
6942
6943         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
6944         images.
6945
6946         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
6947         info.
6948
6949 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
6950
6951         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
6952         (load_cattr_value): Ditto.
6953
6954 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
6955
6956         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
6957
6958 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
6959
6960         * threads.c: In "start_wrapper", set apartment_state to MTA if
6961         apartment_state is Unknown and we're running on 2.0 profile or
6962         higher.
6963         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
6964         to main method, then set apartment_state to Unknown on 1.0 profile,
6965         and MTA on 2.0 profile.
6966
6967 2007-05-16  Jb Evain  <jb@nurv.fr>
6968
6969         * class-internals.h (MonoDefaults): Add an attribute_class and
6970           customattribute_data_class.
6971         * domain.c (mono_init_internal): Populate them.
6972         * reflection.c: Use them to remove duplicates. Make a vew
6973         MonoClass variables `static'.
6974
6975 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
6976
6977         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
6978         step in implementing IMT, so that all isinst checks now can go
6979         through the bitmap.
6980         This was needed because vtables for TransparentProxy need to look
6981         like the vtable of the "target" class, so they need to point to
6982         its interface bitmap directly.
6983
6984         * object.c: inside "mono_class_create_runtime_vtable" and
6985         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
6986
6987 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
6988
6989         * object-internals.h
6990           culture-info.h : added territory field in MonoCulture and
6991           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
6992         * locales.c : fill territory field above too.
6993         * culture-info-table.h : regenerated.
6994
6995 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
6996
6997         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
6998         Fixes #81599.
6999
7000 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
7001
7002         * object.c: Always initialize apartment, even if 
7003         there is no custom attributes on entry point.
7004         
7005         Code is contributed under MIT/X11 license.
7006
7007 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
7008
7009         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
7010         * metadata.c: If no encoding is set, check for unicode
7011         on class.
7012         
7013         Code is contributed under MIT/X11 license.
7014
7015 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7016
7017         * threads.c: Handle if mono_thread_current returns NULL 
7018         
7019         Code is contributed under MIT/X11 license.
7020
7021 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7022
7023         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
7024         in start_wrapper. Added mono_thread_init_apartment_state and
7025         mono_thread_cleanup_apartment_state.
7026         * object.c: Initialize thread apartment state on main thread
7027         by checking for STAThreadAttribute on entry point.
7028         * object-internals.h: Add apartment_state field to MonoThread.
7029         * threads-types.h: Add unmanaged definition of 
7030         System.Threading.ApartmentState, MonoThreadApartmentState.
7031         
7032         Code is contributed under MIT/X11 license.
7033         
7034 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
7035
7036         * class.c: Fix windows build.
7037         * class-internals.h: Fix windows build.
7038         
7039         Code is contributed under MIT/X11 license.
7040
7041 2007-05-08  Robert Jordan  <robertj@gmx.net>
7042
7043         * process.c (CreateProcess_internal):
7044         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
7045         .CreateNoWindow was specified. Fixes #81496.
7046
7047 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7048
7049         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
7050         step in implementing IMT, replaced it with two compact arrays
7051         (interfaces_packed and interface_offsets_packed) and a bitmap that
7052         is used for isinst checks (interface_bitmap).
7053
7054         * class.c: (compare_interface_ids): compare function to pass to
7055         bsearch when looking for an interface with a given id.
7056         (mono_class_interface_offset): reimplemented using bsearch on
7057         interfaces_packed, getting the offset from interface_offsets_packed.
7058         (print_implemented_interfaces): utility debugging function.
7059         (setup_interface_offsets): reworked to initialize interfaces_packed,
7060         interface_offsets_packed and interface_bitmap.
7061
7062         * object.c: replaced all accesses to "MonoClass.interface_offsets"
7063         with uses of interfaces_packed and interface_offsets_packed.
7064
7065 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7066
7067         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
7068         mono_class_interface_offset prototype to wrap all accesses to
7069         "MonoClass.interface_offsets".
7070
7071         * class.c: Implemented mono_class_interface_offset, and wrapped all
7072         accesses to "MonoClass.interface_offsets".
7073
7074         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
7075         "MonoClass.interface_offsets".
7076
7077 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
7078
7079         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
7080         GetMethodFromHandle overloads (bug #78637).
7081
7082 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
7083
7084         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
7085         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
7086
7087 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
7088
7089         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
7090         #81498.
7091
7092         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
7093         gracefully.
7094         (mono_custom_attrs_from_index): Ditto.
7095
7096         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
7097         Fixes #81501.
7098
7099 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
7100
7101         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
7102         is now allocated from a mempool.
7103
7104 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
7105
7106         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
7107         caller holds threads_lock, leading to deadlocks. Fixes #81476.
7108
7109 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
7110
7111         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
7112         mono_loader_clear_error () too late. Fixes #81463.
7113
7114 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
7115
7116         * culture-info-table.h : regenerated.
7117
7118 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
7119
7120         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
7121         is missing.
7122
7123 2007-04-25  Dick Porter  <dick@ximian.com>
7124
7125         * Makefile.am: Put the mingw enforced-optimisation back into the
7126         PLATFORM_WIN32 section.
7127
7128 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
7129
7130         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
7131         patch.
7132
7133         * image.c (mono_image_load_module): New API function to load a module reference.
7134
7135         * image.c (load_modules): Load modules lazily. Fixes #80812.
7136
7137         * class.c (mono_class_from_typeref): Use mono_image_load_module.
7138         
7139         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
7140
7141         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
7142         to mono_image_load_module_dynamic.
7143
7144 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
7145
7146         * marshal.c: Fix calling convention for CCW on non-windows
7147         platforms. STDCALL on windows, CDECL everywhere else to work 
7148         with XPCOM and MainWin COM.
7149         
7150         Code is contributed under MIT/X11 license.
7151
7152 2007-04-23  Martin Baulig  <martin@ximian.com>
7153
7154         Fix #80969.
7155
7156         * loader.c
7157         (method_from_memberref): Added `gboolean *used_context' argument.
7158         (mono_get_method_from_token): Likewise.
7159         (mono_get_method_full): Don't insert the method in the cache when
7160         `used_context' is true.
7161
7162 2007-04-23  Raja R Harinath  <rharinath@novell.com>
7163
7164         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
7165
7166         * reflection.c (mono_reflection_bind_generic_parameters): Don't
7167         create new MonoTypes for returned types.
7168         * class.c (mono_generic_class_get_class): Export mono-internal.
7169         * class-internals.h: Update to changes.
7170
7171 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
7172
7173         * threadpool.c, threadpool.h, icall-def.h: patch from
7174         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
7175
7176 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
7177
7178         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
7179         
7180         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
7181
7182         * threads.c (mono_thread_get_stack_bounds): New helper function.
7183
7184         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
7185         Correctly compute stack bounds when attaching. Fixes #81394.
7186
7187 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
7188
7189         * reflection.c: fix handling of doubles in custom attributes
7190         for the arm-fpa format (bug #81368).
7191
7192 2007-04-18  Raja R Harinath  <rharinath@novell.com>
7193
7194         * reflection.c (assembly_add_win32_resources): Mildly relax an
7195         bounds check to let the end pointer point just past the end of the
7196         allocated buffer.  (may fix #81384)
7197
7198 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
7199
7200         * culture-info-table.h : regenerated.
7201
7202 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
7203
7204         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
7205         the thread is aborted early.
7206
7207 2007-04-05  Dick Porter  <dick@ximian.com>
7208
7209         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
7210         FindFirstFile()/FindNextFile() to find entries.  This lets the
7211         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
7212         81038.
7213
7214         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
7215         the parameters of
7216         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
7217
7218 2007-04-04  Martin Baulig  <martin@ximian.com>
7219
7220         * debug-helpers.c
7221         (mono_method_desc_full_match): Add support for nested classes.
7222
7223 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
7224
7225         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
7226
7227 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
7228
7229         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
7230         waiting for too many threads.
7231
7232 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
7233
7234         * environment.c: Fix return value check on uname so we can get the 
7235         executing version on Solaris operating systems.
7236
7237 2007-03-28  Jb Evain  <jbevain@gmail.com>
7238
7239         * class.c (mono_type_get_name_recurse): Complete the
7240         fix for the creation of assembly qualified names for
7241         pointer types. Fixes #81208.
7242
7243 2007-03-27  Dick Porter  <dick@ximian.com>
7244
7245         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
7246         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
7247         changed.
7248
7249         * threads.c
7250         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
7251         the value of ReleaseMutex().
7252
7253 2007-03-27  Dick Porter  <dick@ximian.com>
7254
7255         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
7256         in little-endian order, not network endian, so must be converted
7257         to host endian here.  Fixes bug 80593.
7258
7259 2007-03-22  Jb Evain  <jbevain@gmail.com>
7260
7261         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
7262         qualified names for pointer types. Fixes #81208.
7263
7264 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
7265
7266         * marshal.c: Add support for PreserveSigAttribute. 
7267         
7268         Code is contributed under MIT/X11 license.
7269
7270 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
7271
7272         * process.c: Fix endianness issues. Fixes #81126.
7273
7274         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
7275         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
7276
7277         * image.c (mono_image_lookup_resource): Make this work on big-endian
7278         machines.Change API contract so the caller needs to free the return value.
7279         
7280         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
7281         API change.
7282         
7283 2007-03-14  Martin Baulig  <martin@ximian.com>
7284
7285         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
7286         mono_type_get_desc() as well.
7287
7288 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
7289
7290         * icall.c:  Fix environ access in VS.  
7291         
7292 2007-03-13  Alp Toker  <alp@atoker.com>
7293
7294         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
7295         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
7296         #63841.
7297
7298 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
7299
7300         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
7301         circular references among dynamic methods. Fixes #81091.
7302
7303         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
7304
7305 2007-03-09  Martin Baulig  <martin@ximian.com>
7306
7307         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
7308
7309 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
7310
7311         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
7312         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
7313         
7314         Code is contributed under MIT/X11 license.
7315         
7316 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
7317
7318         * loader.c: Reapply patch for bug #79424.
7319
7320 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7321
7322         * metadata.c (mono_type_to_unmanaged): Only convert object to
7323         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
7324
7325 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
7326
7327         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
7328         (and incorrectly set) is_reference field from MonoGenericInst.
7329
7330 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7331
7332         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
7333         a little earlier.
7334
7335         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
7336
7337         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
7338
7339 2007-03-05  Miguel de Icaza  <miguel@novell.com>
7340
7341         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
7342         FileOptions.1 value to mean "temporary", map that to
7343         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
7344
7345         Fixes 80688
7346
7347 2007-03-03  Marek Habersack  <mhabersack@novell.com>
7348
7349         * appdomain.c: implement MS .Net style shadow copying. Copies of
7350         the assemblies are made in a subdirectory of the dynamic base
7351         directory, the assembly names are preserved.
7352         Copy .mdb and .config files along with the assemblies being shadowed.
7353
7354 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7355
7356         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
7357         (emit_marshal_handleref): Ditto.
7358
7359         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
7360         on Visual C++. Fixes #80671.
7361
7362 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
7363
7364         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
7365         for clone operations.
7366
7367 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7368
7369         * marshal.c: Fix warnings.
7370
7371 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
7372
7373         * loader.c: allow case-insensitive matching of the dll name
7374         in dllmap handling when prefixed with "i:".
7375
7376 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
7377
7378         * threads.c: Fix #ifdef for dummy_apc function for VS.
7379
7380 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
7381
7382         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
7383
7384 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
7385         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
7386         giving precedence to the methods with a fully qualified name
7387         (InterfaceName.MethodName) when building the interface sections
7388         of the vtable.
7389
7390 2007-02-16  Dick Porter  <dick@ximian.com>
7391
7392         * threadpool.c (append_job): Fix fast-path array handling, so it's
7393         less likely the array will grow exponentially when the load is
7394         heavy.
7395
7396 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7397
7398         * metadata-internals.h, loader.c: fix dllmap lookup order
7399         for non-function maps, too, and prepare for fallback code.
7400
7401 2007-02-12  Robert Jordan  <robertj@gmx.net>
7402
7403         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
7404         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
7405         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
7406         GlobalFree. Fixes a part of bug #77075.
7407
7408 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
7409
7410         * loader.c: implemented typedef parent in field memberref.
7411
7412 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
7413
7414         * marshal.c: Fix warnings and remember to call Release on
7415         IUnknown of RCW.
7416         
7417         Code is contributed under MIT/X11 license.
7418
7419 2007-02-10  Miguel de Icaza  <miguel@novell.com>
7420
7421         * class-internals.h: Add MonoHandleRef definition, and
7422         handleref_class to mono_defaults. 
7423
7424         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
7425         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
7426
7427         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
7428         (do nothing on this stage)
7429         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
7430         (emit_marshal_handleref): New method, used for argument handling
7431         of HandleRefs. 
7432
7433 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
7434
7435         * class.c (mono_class_setup_parent): Lazily init com types.
7436         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
7437         init com types.
7438         * object.c (mono_remote_class_vtable): Lazily init com types.
7439         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
7440         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
7441         * domain-internals.h: Expose mono_init_com_types.
7442         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
7443         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
7444         Add support for COM Callable Wrapper marshalling.
7445         * marshal.h: Add icall definitions.
7446         * gc.c: Handle freeing of CCWs in finalizer code.
7447         
7448         Code is contributed under MIT/X11 license.
7449
7450 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
7451
7452         * reflection.c: changed all the signature encoding code to use
7453         a variable-sized buffer.
7454
7455 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7456
7457         * marshal.c: locking fixes: never take the loader lock
7458         or other runtime locks when holding the marshal lock
7459         (fixes bug#80664).
7460
7461 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
7462
7463         * marshal.c: make the delegate function pointer mapping
7464         work for the moving GC.
7465
7466 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
7467
7468         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
7469         for bug #80618.
7470
7471 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7472
7473         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
7474         gmodule.
7475
7476 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
7477
7478         * threadpool.c: made the code moving-GC safe.
7479
7480 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
7481
7482         * assembly.c, boehm-gc.c, class-internals.h, class.c,
7483         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
7484         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
7485         warning cleanup.
7486         * reflection.c: warning cleanup, some threading and moving GC fixes.
7487
7488 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
7489
7490         * class.c, loader.c: create the needed Set/Get/Address array methods
7491         as well as the .ctors in mono_class_init (), fixes bug #80567.
7492
7493 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
7494
7495         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
7496         we doesn't decrease its alignment. Should fix the sparc build.
7497
7498 2007-01-24  Dick Porter  <dick@ximian.com>
7499
7500         * socket-io.c
7501         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7502         Create the returned object if we need to ignore an unsupported
7503         socket option.  Fixes a segfault reported by Atsushi.
7504
7505 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
7506
7507         * class.c, object.c: restrict GC-tracked fields to
7508         UIntPtr fields used inside corlib, so we provide better
7509         type info to the GC and also allow broken packing as in
7510         bug #80580.
7511
7512 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
7513
7514         * sgen-gc.c: removed duplicated function.
7515
7516 2007-01-19  Miguel de Icaza  <miguel@novell.com>
7517
7518         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
7519         value that means that the value is not supported, but that we
7520         should not return a failure, but instead report this as a
7521         successful operation.
7522
7523 2007-01-19  Raja R Harinath  <rharinath@novell.com>
7524
7525         Fix tests/bug79956.2.il
7526         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
7527         (mono_generic_class_get_class): If the generic definition in an
7528         enum, copy over other fields related to it.
7529
7530 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
7531
7532         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
7533         genericinst enums (bug #79215).
7534
7535 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
7536         * class.c: Fix bug 80307.
7537
7538 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
7539
7540         * image.c: if the file table is not present, try to load
7541         all the modules, since we don't have info about them
7542         having or not metadata (bug #80517).
7543         * assembly.c: allow mono_assembly_load_references () to
7544         work for netmodules.
7545
7546 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7547
7548         * image.c, metadata-internals.h, object.c: execute module
7549         cctors when running on the 2 runtime if present (bug #80487).
7550
7551 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
7552
7553         * icall.c: optimized InitializeArray() on bigendian.
7554
7555 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
7556
7557         * icall.c: fix for the broken ARM FPA double format.
7558
7559 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
7560
7561         * icall.c: handle endian issues for r4 and r8 types, too, in
7562         the InitializeArray() icall.
7563
7564 2007-01-15  Miguel de Icaza  <miguel@novell.com>
7565
7566         * loader.c (mono_loader_error_prepare_exception): Clear the error
7567         once we have extracted the information from it, do this before we
7568         call into the JIT's class loading mechanisms.
7569
7570         * object.c (mono_class_create_runtime_vtable): Do not clear the
7571         loader error before calling mono_class_get_exception_for_failure
7572         as the loader error is needed inside
7573         mono_class_get_exception_for_failure to throw the error (thinko).
7574
7575         Fixes #80521
7576         
7577 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
7578
7579         * reflection.c: align fields rva data so it's faster to load at
7580         runtime.
7581
7582 2007-01-12  Raja R Harinath  <rharinath@novell.com>
7583
7584         Prepare to simplify GenericMethod handling.
7585         * class-internals.h (mono_method_get_context): New accessor function.
7586         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
7587         rather than directly accessing '->context' field.
7588
7589         * class-internals.h (_MonoGenericParam.method): Move ...
7590         (_MonoGenericContainer): ... here.  Add into union with klass field.
7591         * class.c, icall.c, loader.c, metadata.c, reflection.c:
7592         Update to changes.
7593
7594 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
7595
7596         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
7597         the wrapper type enum and reduce relocations.
7598
7599 2007-01-12  Raja R Harinath  <rharinath@novell.com>
7600
7601         * reflection.c (inflate_mono_method): Reuse method instantiation
7602         from the generic method, if available.
7603
7604 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7605
7606         * marshal.c (emit_marshal_variant): Fix conv_arg
7607         type in last commit, based on whether parameter is byref.
7608         
7609 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7610
7611         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
7612         marshalling.
7613         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
7614         MONO_TYPE_OBJECT back for VARIANT support.
7615
7616 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7617
7618         * marshal.c, marshal.h, icall-def.h: Implement 
7619         Marshal.ReAllocCoTaskMem.
7620
7621 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
7622
7623         * marshal.c: memory retention fixes: use the proper
7624         image cache for runtime_invoke method lookups.
7625
7626 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
7627
7628         * mempool.c: added code to help debug mempool allocations.
7629
7630 2007-01-11  Dick Porter  <dick@ximian.com>
7631
7632         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
7633         support (experimenting with faking it with IP_MTU_DISCOVER for
7634         systems that don't have IP_DONTFRAGMENT.)
7635         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
7636         icall.
7637
7638         * icall-def.h: new System.Net.Sockets.Disconnect icall.
7639
7640         * socket-io.h: Add new fields to MonoSocketAsyncResult
7641         corresponding to the new ones in Socket.cs.
7642
7643 2007-01-11  Raja R Harinath  <rharinath@novell.com>
7644
7645         Fix IronPython regression mentioned in #80249
7646         * metadata.c (do_mono_metadata_parse_generic_class): Clear
7647         'cached_context' field, since it may have been initialized as a
7648         side-effect of metadata parsing.
7649
7650         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
7651         (_MonoGenericClass.cached_class): Move here and rename from lone
7652         remaining field of ...
7653         (_MonoInflatedGenericClass): ... this.  Remove.
7654         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
7655         to changes.
7656
7657         Fix mcs/tests/test-128.cs regression.
7658         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
7659         2007-01-10 change below.
7660         [MONO_TYPE_OBJECT]: Recurse into array case.
7661
7662 2007-01-11  Raja R Harinath  <harinath@gmail.com>
7663
7664         * class-internals.h (mono_get_inflated_generic_class): Remove.
7665         * class.c (mono_get_inflated_generic_class): Remove.
7666         (mono_generic_class_get_class): Rename from
7667         mono_class_create_generic.
7668         (mono_class_from_mono_type) [GENERICINST]: Use it.
7669         * reflection.c, metadata.c: Update to changes.  Use
7670         'mono_class_from_mono_type'.
7671
7672 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
7673
7674         * reflection.c: use passed type when encoding an array element
7675         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
7676
7677 2007-01-09  Robert Jordan  <robertj@gmx.net>
7678
7679         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
7680         result arguments (someDelegate.EndInvoke (unrelatedAres)).
7681         Fixes bug #80392.
7682
7683 2007-01-09  Raja R Harinath  <rharinath@novell.com>
7684
7685         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
7686
7687         * object.c (set_value): Avoid aliasing between type->data.klass
7688         and type->data.generic_class.
7689
7690         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
7691
7692 2007-01-08  Raja R Harinath  <rharinath@novell.com>
7693
7694         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
7695         between type->data.klass and type->data.generic_class.
7696
7697 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
7698
7699         * marshal.c: In MS.NET, StringBuilder objects are not copied by
7700         value in out parameters.
7701
7702 2007-01-08  Raja R Harinath  <rharinath@novell.com>
7703
7704         Simplify invariant for MonoGenericClass::klass field.
7705         * class.c (mono_class_create_generic): Verify 'klass' is null.
7706         * metadata.c (do_mono_metadata_parse_generic_class): Don't
7707         initialize 'klass' field.
7708
7709 2007-01-05  Raja R Harinath  <rharinath@novell.com>
7710
7711         Ongoing work to avoid redundant data and simplify invariants.
7712         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
7713         'generic_class', and change type to a GenericInst.
7714         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
7715         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
7716
7717 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
7718
7719         * class.c : skip io-layer under PLATFORM_WIN32.
7720
7721 2007-01-03  Tor Lillqvist  <tml@novell.com>
7722
7723         Fix #80305: In a bundled executable, look in the bundled exe
7724         assembly to determine the runtime version. Add the possibility to
7725         bundle also the machine.config file.
7726         
7727         * assembly.c (mono_assembly_open_from_bundle): Make
7728         non-static. Allow being called even if we have no bundled
7729         assemblies, and return NULL right away in that case.
7730
7731         * domain-internals.h: Declare mono_assembly_open_from_bundle()
7732         here.
7733
7734         * domain.c (app_config_parse): Take an assembly exe file name as
7735         parameter instead of a config file name. Check for a bundled
7736         config file for that assembly by calling
7737         mono_config_string_for_assembly_file() (see below) before looking
7738         for one in the file system.
7739         (get_runtimes_from_exe): Corrsponding change to call of
7740         app_config_parse().
7741         (get_runtimes_from_exe): Check for bundled assembly exe file first
7742         by calling mono_assembly_open_from_bundle(). If no bundled
7743         assembly exe file is found, call mono_image_open() as before to
7744         look it up in the file system.
7745
7746         * mono-config.c: Add variable bundled_machinec_onfig.
7747         (mono_config_string_for_assembly_file): New function.
7748         (mono_config_for_assembly): Move code snippet that looks for a
7749         bundled assembly .config file into the above new function. Call
7750         it.
7751         (mono_register_machine_config, mono_get_machine_config): New
7752         functions to set and retrieve
7753
7754         * assembly.h: Declare mono_register_machine_config().
7755
7756         * mono-config.h: Declare mono_get_machine_config() and
7757         mono_config_string_for_assembly_file().
7758
7759         * icall.c: No declaration of environ necessary on Win32. It is
7760         declared (as a macro expanding to a function call) in stdlib.h.
7761         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
7762         New internal mono function. Returns the value of
7763         mono_get_machine_config() as a Mono string.
7764
7765         * icall-def.h: Add get_bundled_machine_config().
7766
7767 2007-01-04  Raja R Harinath  <rharinath@novell.com>
7768
7769         Remove redundant field
7770         * class-internals.h (_MonoGenericContext.container): Remove field.
7771         * loader.c (mono_method_get_signature_full): Don't parse a
7772         "container" for a signature parse when the signature is inflated
7773         immediately.
7774         (method_from_methodspec): Likewise, for a generic_inst.
7775         * class.c, metadata.c, reflection.c: Update to changes.
7776
7777 2006-01-04  Raja R Harinath  <rharinath@novell.com>
7778
7779         * class-internals.h (_MonoGenericClass): Rename 'context' field to
7780         'cached_context', and change semantics -- it starts off NULL, and
7781         is initialized on demand.
7782         * class.c (mono_generic_class_get_context): New accessor to
7783         replace 'context' field accesses.
7784         (mono_class_get_context): New helper.
7785         (*): Update to changes.
7786         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
7787
7788 2007-01-03  Miguel de Icaza  <miguel@novell.com>
7789
7790         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
7791         before the memcpy.   Fixes Marshal2 regression.
7792
7793 2007-01-02  Jb Evain  <jbevain@gmail.com>
7794
7795         * blob.h: add a MONO_TYPE_ENUM definition
7796         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
7797         fix the encoding of arrays of enums in custom attributes.
7798
7799         Fixes #79666.
7800
7801 2007-01-01  Miguel de Icaza  <miguel@novell.com>
7802
7803         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
7804         string is null terminated, but only cut the string short if it
7805         overflows the buffer.   
7806         
7807         (mono_string_to_byvalstr): Also fix this routine.   The code here
7808         was not properly terminating a string (it was only terminated
7809         because of the previous catch-all memset). 
7810
7811         I left the memset, because I do not know if applications expect
7812         the runtime to clear this region. 
7813
7814         Fixes #79944.
7815
7816         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
7817         Clear the error before returning to unmanaged code to prevent the
7818         runtime from being confused later on (fixes  80420).
7819         (ves_icall_type_from_name): Always call mono_loader_clear_error
7820         after parsing a type that could have failed.
7821         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
7822
7823         * loader.c (mono_loader_clear_error): Fix indentation.
7824
7825 2006-12-28  Martin Baulig  <martin@ximian.com>
7826
7827         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
7828
7829 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
7830
7831         * reflection.c: patch from Rolf Bjarne Kvinge to fix
7832         getting a token for an EnumBuilder.
7833
7834 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7835
7836         * reflection.c: be more careful in case resource generation
7837         fails to create the data array.
7838
7839 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
7840
7841         * sgen-gc.c: write barrier for clone and fix unregister handles.
7842
7843 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
7844
7845         * reflection.c: some fixes needed in the generics code for the moving GC.
7846
7847 2006-12-22  Robert Jordan  <robertj@gmx.net>
7848
7849         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
7850         account. Fixes bug #80299.
7851
7852 2006-12-21  Raja R Harinath  <rharinath@novell.com>
7853
7854         Fix WaitHandle usage in delegates.
7855         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
7856         * object.c (mono_wait_handle_new): Use the property set method to
7857         initialize the handle.
7858         (mono_wait_handle_get_handle): New.
7859         * threadpool.c (mono_async_invoke): Use it.
7860         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
7861         Likewise.
7862         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
7863
7864 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
7865
7866         * marshal.c (emit_marshal): Call emit_marshal_variant and
7867         emit_marshal_com_interface when applicable.
7868         (emit_marshal_variant, emit_marshal_com_interface): Add
7869         methods for this case and remove if's from emit_marshal_object.
7870         
7871 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
7872
7873         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
7874
7875 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
7876
7877         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
7878         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
7879         and GlobalFree on Windows. Remove FIXME.
7880
7881 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7882
7883         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
7884         implementation for managed objects.
7885
7886 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
7887
7888         * object.c: implemented code to be used for checking
7889         that no reference field overlaps with non-references.
7890
7891 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7892
7893         * threadpool.c: fix queue code to be compatible with the
7894         moving GC.
7895
7896 2006-12-18  Miguel de Icaza  <miguel@novell.com>
7897
7898         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
7899         in structures by throwing ArgumentNullException.
7900
7901         (emit_marshal_safehandle): Also when they are null parameters.
7902
7903         (emit_marshal_safehandle): Add support for ref
7904         SafeHandles parameters
7905
7906 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7907
7908         * profiler.c: updated to use the mono-dl API instead of
7909         gmodule.
7910
7911 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7912
7913         * profiler.c: updated to use the mono-dl dynamic loading
7914         API instead of gmodule.
7915
7916 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
7917
7918         * profiler.c: use readlink, older versions of glib don't have
7919         g_file_read_link ().
7920
7921 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7922
7923         * profiler.c: try to detect the path to mono if libc fails to provide
7924         a useful name (bug #80286).
7925
7926 2006-12-16  Raja R Harinath  <rharinath@novell.com>
7927
7928         Fix #80242
7929         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
7930         instance, use the generic type definition instead.
7931         (ves_icall_Type_GetNestedTypes): Likewise.
7932         * class.c (mono_class_create_generic): Always set the
7933         nested_classes of a generic instance to NULL, even if the generic
7934         type definition has nested types.
7935
7936 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
7937
7938         * marshal.c (mono_string_from_bstr): Revert previous Windows change
7939         and fix on Linux.
7940         
7941 2006-12-15  Miguel de Icaza  <miguel@novell.com>
7942
7943         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
7944         my arguments were in the wrong order.   I also fixed the Windows
7945         version which seems to have had the same issue.
7946
7947         (mono_free_bstr): On Unix, this is g_free.
7948         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
7949         conversions (for the tests in corlib to pass).
7950
7951 2006-12-14  Miguel de Icaza  <miguel@novell.com>
7952
7953         * marshal.c (emit_ptr_to_object_conv): For now, ignore
7954         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
7955         exception if a ref SafeHandle in a struct has changed).
7956         
7957         (emit_struct_conv): Do not perform layout checks for classes
7958         derived from SafeHandle, as those are specially handled. 
7959
7960         (emit_object_to_ptr_conv): Add support for
7961         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
7962
7963         (emit_marshal_safehandle): Implement conversion of return values
7964         of safehandles (MARSHAL_ACTION_CONV_RESULT).
7965         
7966         * threads.c: WaitHandle now is compiled with two different handles
7967         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
7968         for 2.0.
7969         
7970         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
7971         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
7972         these routines to cope with both kinds of fields.
7973
7974 2006-12-12  Miguel de Icaza  <miguel@novell.com>
7975
7976         * metadata.c (mono_type_to_unmanaged): Handle the case where
7977         type->data.klass is a SafeHandle, and in that case, return the
7978         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
7979         MONO_MARSHAL_CONV_SAFEHANDLE. 
7980
7981 2006-12-11  Miguel de Icaza  <miguel@novell.com>
7982
7983         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
7984         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
7985         calling emit_marshal_object.
7986
7987         (emit_marshal_safehandle): Implement marshalling of
7988         SafeHandle parameters (no ref support yet).
7989
7990         (MarshalAction): Document the defines as I implement
7991         them for SafeHandle.
7992
7993         (emit_marshal_object): indentation police.
7994
7995         * class-internals.h: Define MonoSafeHandle.
7996         Add safehandle_class to MonoDefaults type.
7997
7998         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
7999         list of classes to check for fields. 
8000
8001         * domain.c (mono_init_internal): Add SafeHandle to the list of
8002         mono_defaults loaded.
8003
8004 2006-12-15  Raja R Harinath  <rharinath@novell.com>
8005
8006         Fix #80253
8007         * reflection.c (mono_reflection_bind_generic_parameters): If the
8008         generic type definition is a type builder, ensure that it is fully
8009         initialized before instantiating it.  Kill some dead code.
8010
8011 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
8012
8013         * object.c: clear the loader_error () before loading
8014         more metadata stuff (bug #80258).
8015
8016 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
8017
8018         * icall.c, icall-defs.h: type modifiers icalls for
8019         parameters and properties.
8020
8021 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
8022
8023         * object.c, icall.c: fixed warnings.
8024
8025 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8026
8027         * marshal.c: fixed a couple of leaks and coding style in a few places.
8028
8029 2006-12-08  Dick Porter  <dick@ximian.com>
8030
8031         * process.c: Cope with NULL ProcessStartInfo arguments on windows
8032         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
8033         80173.
8034
8035 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8036
8037         * process.c: ProcessStartInfo may have only filename set and
8038         arguments can be NULL.
8039
8040 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8041
8042         * icall.c: fix leak found by Robert Jordan.
8043
8044 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8045
8046         * marshal.c, marshal.h: generate managed method to access an element
8047         of a multi-dimensional array.
8048
8049 2006-11-30  Paolo Molaro (lupus@ximian.com)
8050
8051         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
8052
8053 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8054
8055         * icall.c: back out GetFields () fix until the serialization code is
8056         fixed to not depend on the incorrect behaviour.
8057
8058 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
8059
8060         * profiler.c: provide defaults if none are set.
8061
8062 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
8063
8064         * Makefile.am, attrdefs.h: new public header file with
8065         constants for attributes for use by embedders.
8066
8067 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
8068
8069         * icall.c: GetFields () fix for bug #80064.
8070
8071 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
8072
8073         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
8074         removed long unused icalls.
8075
8076 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
8077   
8078         * marshal.c: 
8079                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
8080                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
8081                 can be generated without a delegate class.
8082                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
8083         
8084         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8085
8086 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8087
8088         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
8089         #80069.
8090
8091 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8092
8093         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
8094         icall-def.h: added icalls needed by System.GC.
8095
8096 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
8097
8098         * loader.c: ensure the class in catch clauses is handled
8099         correctly for generics methods (fixes bug#79980).
8100
8101 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
8102
8103         * monitor.h, monitor.c: added mono_locks_dump () function
8104         to help debug deadlocks involving managed locks.
8105
8106 2006-11-13  Dick Porter  <dick@ximian.com>
8107
8108         * file-io.c (get_file_attributes): If the file is a symlink try
8109         and get the stat data for the target, but also add the
8110         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
8111         the specs for the windows symlink support, but will probably have
8112         to be reworked when I have test data from a vista machine.  Fixes
8113         bug 79887.
8114
8115 2006-11-13  Dick Porter  <dick@ximian.com>
8116
8117         * gc.c (mono_domain_finalize): 
8118         * marshal.c (mono_delegate_begin_invoke): 
8119         * threadpool.c (socket_io_init, mono_thread_pool_init)
8120         (mono_thread_pool_finish): 
8121         * monitor.c (mono_monitor_try_enter_internal): 
8122         * threads.c (mono_thread_resume, mono_thread_init)
8123         (mono_thread_suspend_all_other_threads)
8124         (mono_thread_execute_interruption): 
8125         * appdomain.c (mono_domain_unload): Check for NULL error returns
8126         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
8127         75733.
8128
8129 2006-11-11  Miguel de Icaza  <miguel@novell.com>
8130
8131         * process.c
8132         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
8133         Only close the handle if the value of the handle is not
8134         INVALID_HANDLE_VALUE.  This just makes the process a bit more
8135         robust.
8136
8137         Improvement for #75733, so that we do not run into this problem. 
8138
8139         
8140         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
8141         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
8142         internal variables.  Fixes #79462 
8143         
8144
8145 2006-11-09  Dick Porter  <dick@ximian.com>
8146
8147         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8148         Use poll() not select().  Fixes bug 79397.
8149
8150 2006-11-09  Raja R Harinath  <rharinath@novell.com>
8151
8152         Fix #79872
8153         * assembly.c (mono_assembly_load_from_full): Check that the given
8154         image has an assembly manifest.
8155
8156 2006-11-09  Ankit Jain  <jankit@novell.com>
8157
8158         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
8159         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
8160         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
8161
8162 2006-11-07  Dick Porter  <dick@ximian.com>
8163
8164         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8165         Put the old resolver behaviour back for pre-2.0 profiles.
8166
8167 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8168
8169         * threadpool.c: precise GC and locking fixes.
8170
8171 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
8172
8173         * class.c: don't load types that have an explicit unaligned
8174         managed reference. Provide better info in the TypeLoad exception.
8175         Part of the fix for bug #79744.
8176         * object.c: use the correct check for class type load issues.
8177
8178 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8179
8180         * class.c: enforce alignment of fields with managed references
8181         even when Pack=1 is forced by the user (bug #77788).
8182
8183 2006-11-03  Dick Porter  <dick@ximian.com>
8184
8185         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8186         If the address reverse lookup fails, return it as the hostname
8187         anyway.  Fixes bug 79721.
8188
8189 2006-11-03  Dick Porter  <dick@ximian.com>
8190
8191         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
8192         Fix build on Windows.
8193
8194 2006-11-02  Dick Porter  <dick@ximian.com>
8195
8196         * icall-def.h: 
8197         * object-internals.h: 
8198         * exception.c (mono_get_exception_thread_interrupted): 
8199         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
8200         Fixes bug 74525.
8201
8202         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
8203         Check for pending Thread.Interrupt.
8204
8205 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
8206         * loader.c: Fixed bug 79684.
8207
8208 2006-10-27  Dick Porter  <dick@ximian.com>
8209
8210         * file-io.c (get_file_attributes): Force symlinks to directories
8211         to be returned as a regular file.  Fixes bug 79733.
8212 2006-10-26  Dick Porter  <dick@ximian.com>
8213
8214         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
8215         CreateFile to open a directory then we need to set the
8216         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
8217
8218 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
8219
8220         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
8221         friends.
8222
8223 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8224
8225         * sgengc.c: small cleanup of timer code.
8226
8227 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8228
8229         * sgen-gc.c: fix some warnings and start adding support for
8230         complete object removal on domain unload.
8231
8232 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
8233
8234         * assembly.c: build_assembly_name should not consider a version
8235         number without build or revision number invalid. Fixes bug #79715.
8236
8237 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
8238
8239         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
8240         call kernel32 function OutputDebugString directly.
8241         
8242         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8243         
8244 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
8245
8246         * reflection.c: small cleanup, using a function to insert a MonoString
8247         in the string heap.
8248
8249 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
8250
8251         * reflection.c: moving GC fixes.
8252
8253 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
8254
8255         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
8256         all the objects with finalizers belonging to an unloading appdomain.
8257
8258 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
8259
8260         * sgen-gc.c: added ability to allocate even when the nursery is fully
8261         pinned and fixed a couple of bugs.
8262
8263 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8264
8265         * threads.h: Revert the last change for now.
8266
8267         * threads.h (mono_thread_get_pending_exception): Rename this to
8268         mono_thread_get_undeniable_exception ().
8269
8270 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
8271
8272         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
8273         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
8274         when fname does not refer to valid assembly. This result in a more
8275         meaningful error message.
8276         * exception.c: added mono_get_exception_bad_image_format2 which 
8277         constructs a BadImageFormatException using the ctor taking a custom
8278         message and the file name. Passing in a NULL msg results in a default
8279         message.
8280         * exception.h: define mono_get_exception_bad_image_format2 function.
8281         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
8282         when file name pointed to an invalid IL image. Use 
8283         mono_get_exception_file_not_found2 to construct FileNotFoundException,
8284         as this results in a more meaningful error message.
8285
8286 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8287
8288         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
8289         #79465.
8290
8291 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
8292
8293         * metadata.c (mono_type_size): Change the align parameter to guint32 for
8294         consistency with the other _size functions.
8295         (mono_type_stack_size): Ditto.
8296
8297         * class.c object.c icall.c: Fix warnings caused by the above change.
8298
8299         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
8300
8301         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
8302
8303         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
8304
8305 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8306
8307         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
8308         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
8309         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
8310         threadpool.h, threads-types.h: mark more internal functions.
8311
8312 2006-10-11  Dick Porter  <dick@ximian.com>
8313
8314         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8315         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
8316         reproduce the bug even before applying the fix.)
8317
8318 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
8319
8320         * reflection.c: allow retrieving attributes for arguments in generic
8321         methods (bug #79241).
8322
8323 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
8324
8325         * debug-mono-symfile.c: properly check fopen () result (found by
8326         coverity).
8327
8328 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
8329
8330         * reflection.c: make error message clearer and fixed two
8331         issuelets found by Coverity.
8332
8333 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
8334
8335         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
8336
8337 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8338
8339         * object-internals.h, gc-internal.h, profiler-private.h:
8340         mark internal functions.
8341
8342 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8343
8344         * reflection.c: put data in the text section.
8345         * icall.c: recognize more types in type_from_typename ().
8346         * process.c, marshal.c: added some GC FIXMEs.
8347
8348 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8349
8350         * loader.c: check for NULL before initializing.
8351
8352 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
8353
8354         * gc.c (finalizer_thread): Use a non-alertable wait here.
8355
8356         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
8357         until the correct solution is found.
8358
8359 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8360
8361         * reflection.c (mono_module_get_object): Avoid an assert when operating on
8362         modules with no metadata. Fixes #79596.
8363
8364         * image.c (load_metadata_ptrs): Put back the error message when
8365         the #- heap is encountered since the support is not complete yet.
8366
8367 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8368
8369         * gc.c: do not allow the user to SuppressFinalize () a
8370         delegate because it would leak the trampoline if present.
8371
8372 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8373
8374         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
8375         PropertyPtr table.
8376
8377 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
8378
8379         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
8380
8381         * metadata.c (mono_metadata_get_param_attrs): Ditto.
8382
8383         * row-indexes.h: Add definitions for *Ptr tables.
8384
8385         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
8386
8387         * metadata.c (mono_metadata_translate_token_index): New helper function to
8388         translate table indexes used in uncompressed metadata.
8389         (mono_metadata_decode_table_row): Ditto.
8390         (mono_metadata_decode_table_row_col): Ditto.
8391
8392         * metadata.c: Add table schema for *Ptr tables.
8393
8394         * class.c loader.c: Use the new helper function to access the affected metadata
8395         tables.
8396         
8397         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
8398         #38532.
8399         
8400 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
8401
8402         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
8403         sequences which can be unbounded in size. Fixes #79583.
8404
8405 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
8406
8407         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
8408         static initialization.
8409
8410         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
8411
8412         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
8413
8414         * domain.c (mono_domain_free): Free up type_init_exception_hash.
8415
8416         * object.c (mono_runtime_class_init): Implement correct semantics when a static
8417         ctor fails, i.e. throw the same exception on subsequent accesses.
8418         
8419 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
8420
8421         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
8422         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
8423         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
8424         Handle marshalling of interfaces and VARIANTs contained in structs.
8425         
8426         Code is contributed under MIT/X11 license.
8427         
8428 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
8429
8430         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
8431         
8432         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
8433         mempool.
8434
8435 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8436
8437         * console-io.c: ignore previous SIGINT handler.
8438
8439 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
8440
8441         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
8442         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
8443         #79460, #79461, #79485.
8444
8445         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
8446
8447         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
8448         #79217.
8449
8450 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
8451
8452         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
8453         could be generated from it.
8454
8455 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
8456
8457         * rand.c: fix read loop to correctly handle EINTR.
8458
8459 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8460
8461         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
8462         internal calls are defined to keep methods closer to the declaring
8463         type and allow a significant reduction in runtime relocations and
8464         memory usage.
8465
8466 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
8467
8468         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
8469         exception message to have FileNotFoundException use the default
8470         assembly load error message. Fixes bug #79426.
8471         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
8472
8473 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8474
8475         * threadpool.c: (start_thread_or_queue) use the root domain when
8476         creating the thread instead of the async object one.
8477
8478 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
8479
8480         * class.c, object.c, class-internals.h, reflection.c:
8481         for arrays, store element_size inside MonoClass (speedup
8482         for array object creation).
8483
8484 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
8485
8486         * icall.c: fixed CodeBase to use the file name and not the module
8487         name (bug #79365).
8488
8489 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
8490
8491         * mono-debug.c, mono-debug.h: export find_method as
8492         mono_debug_find_method ().
8493
8494 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8495
8496         * debug-helpers.c, class-internals.h: added a few functions useful
8497         when debugging under gdb.
8498
8499 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8500
8501         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
8502         characters that need special handling.
8503
8504 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
8505
8506         * mono-config.c: make the os/cpu specification more flexible,
8507         allowing lists and negation.
8508
8509 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
8510
8511         * marshal.c: COM Interop fixes. Handle case where method->klass.
8512         is interface. Handle BSTR/MonoString when null. Use CDECL as 
8513         calling convention on non-windows platforms. This is for
8514         compatibility with XPCOM and MainWin COM.
8515         
8516         Code is contributed under MIT/X11 license.
8517         
8518
8519 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
8520
8521         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
8522         correctly. Fixes #79217.
8523
8524         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
8525
8526 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
8527
8528         * mono-config.c: allow both an os and cpu attribute for dllmap
8529         and dllentry elemnets to enable a single config file to be used
8530         for multiple architectures.
8531
8532 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
8533
8534         * loader.c: MonoLoaderError was cleared too soon on load failure.
8535         Fixes bug #79424.
8536
8537 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
8538
8539         * icall.c: use the defining class vtable when accessing a
8540         static field, not a pobblibly derived class.
8541
8542 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
8543
8544         * icall.c string-icalls.c: Remove references to unicode.h.
8545
8546         * unicode.h unicode.c Makefile.am: Remove these unused source files.
8547
8548         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
8549
8550         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
8551         indicating the image where custom marshaller types should be looked up.
8552         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
8553         custom marshallers, instead of corlib. Fixes #79425.
8554
8555 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
8556
8557         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
8558
8559 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
8560
8561         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
8562         Implement Environment.ProcessorCount.
8563         
8564         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
8565         Implement Environment.ProcessorCount.
8566         
8567         * icall.c: 
8568         Add Environment.ProcessorCount icall.
8569         
8570         Patch by Jason McFall.
8571
8572 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8573
8574         * assembly.c: don't append .exe/.dll when the filename already contains
8575         one of those extensions.
8576
8577 2006-09-12  Martin Baulig  <martin@ximian.com>
8578
8579         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
8580         to array interfaces.
8581
8582 2006-09-11  Martin Baulig  <martin@ximian.com>
8583
8584         * reflection.c (mono_image_build_metadata): Create the
8585         MethodImpl's after emitting all types and methods, so we don't
8586         need another fixup pass for them.
8587
8588 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
8589
8590         * class.c (mono_class_from_name_case): Fix regression introduced by the last
8591         change.
8592
8593 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
8594
8595         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
8596         unload.
8597
8598 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
8599
8600         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
8601         args is not set. Fixes #78926.
8602
8603 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
8604
8605         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
8606
8607         * image.c (load_class_names): Move this to class.c, and rename it to 
8608         'mono_image_init_name_cache'.
8609         (load_modules): Fix a warning.
8610
8611         * class.c icall.c image.c: Initialize image->name_cache lazily.
8612
8613         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
8614         on its name using information in the AOT file.
8615
8616         * class.c (mono_class_from_name): Use the new hook function.
8617
8618 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
8619
8620         * reflection.c (mono_param_get_objects): Handle enum default parameter values
8621         correctly.
8622
8623         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
8624         Fixes #79289.
8625         
8626 2006-09-06  Martin Baulig  <martin@ximian.com>
8627
8628         * icall.c (mono_lookup_internal_call): Small fix.
8629
8630 2006-09-05  Raja R Harinath  <rharinath@novell.com>
8631
8632         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
8633         double g_free.
8634
8635 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
8636
8637         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
8638         when --debug is specified.
8639
8640 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
8641
8642         * class.c (setup_generic_array_ifaces): Fix a warning.
8643
8644 2006-09-04  Miguel de Icaza  <miguel@novell.com>
8645
8646         * Temporarily remove the patch to assemly.c that checks the
8647         assembly versions as it breaks our gacutil.
8648
8649 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
8650
8651         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
8652
8653         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
8654         a net 1.0 runtime.
8655
8656         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
8657         created using the default ctor. Fixes #79152.
8658         (mono_string_builder_to_utf16): Ditto.
8659
8660 2006-09-01  Martin Baulig  <martin@ximian.com>
8661
8662         Fix handling of the generic array interfaces.
8663
8664         * class-internals.h
8665         (MonoDefaults): Removed `generic_array_class' and added
8666         `generic_ilist' class.
8667
8668         * class.c
8669         (mono_bounded_array_class_get): Add the new generic array interfaces.
8670         (setup_generic_array_ifaces): New static method; create vtable
8671         entries for each method in the generic array interfaces.
8672
8673         * metadata.c
8674         (select_container): Allow "parent-less" generic methods.
8675
8676         * marshal.c
8677         (mono_marshal_get_generic_array_helper): New public method.
8678
8679         * icall.c
8680         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
8681         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
8682         moved the interncall into System.Array.
8683
8684 2006-09-01  Raja R Harinath  <rharinath@novell.com>
8685
8686         A few more cases of avoiding work on types with ->byref set.
8687         Has the real fix for #79238
8688         * icall.c (is_generic_parameter): New helper.
8689         (ves_icall_Type_GetGenericParameterPosition): Use it.
8690         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
8691         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8692         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8693         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
8694         reference types.
8695         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
8696         reference types.
8697         (ves_icall_Type_get_IsGenericInstance): Likewise.
8698         (ves_icall_Type_get_IsGenericType): Likewise.
8699
8700 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
8701
8702         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
8703         class if possible.
8704
8705         * mempool.h (mono_mempool_get_allocated): New helper function.
8706
8707         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
8708         change.
8709
8710         * mempool.c: Fix warnings and the calculation of stats.
8711
8712         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
8713
8714         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
8715
8716         * loader.c (mono_get_method_from_token): Update method_count stat.
8717
8718         * class-internals.h (MonoStats): Add some stats.
8719
8720 2006-08-31 Robert Jordan  <robertj@gmx.net>
8721
8722         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
8723         with managed variants.
8724         All code is contributed under the MIT/X11 license.
8725         
8726 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
8727
8728         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
8729         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
8730
8731         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
8732
8733         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
8734         with cycles in classes.
8735
8736         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
8737
8738         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
8739         missing a [MarshalAs] directive. Fixes #79203.
8740
8741         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
8742         klass->marshal_info. Fixes #79217.
8743
8744 2006-08-30  Martin Baulig  <martin@ximian.com>
8745
8746         Committing a patch from Joachim Ante <joe@otee.dk>:
8747         Add support for binary data symbol stores.
8748
8749         * debug-mono-symfile.c
8750         (mono_debug_open_mono_symbol_file): Renamed into
8751         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
8752         arguments.
8753
8754         * mono-debug.c
8755         (mono_debug_open_image): Added `raw_contents' and `size' args.
8756         (mono_debug_init_2_memory): New public function.
8757
8758 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
8759
8760         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
8761
8762 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8763
8764         * appdomain.c: implement support for ShadowCopyFiles.
8765
8766 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
8767
8768         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
8769         when value is NULL (and should remove CID #51).
8770
8771 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8772
8773         * image.c: moved 2 functions to ../utils.
8774
8775 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
8776
8777         * gc.c: cope with the target object of a GC handle being NULL
8778         (bug #78877).
8779
8780 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
8781
8782         * class.c: recursively check parent's explicit implementations
8783         of interface methods (fixes bug #79125).
8784
8785 2006-08-19  Miguel de Icaza  <miguel@novell.com>
8786
8787         * filewatcher.c: Avoid warnings when building, do not redefine
8788         constants that are defined.
8789
8790         Remove warnings.
8791
8792 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8793
8794         * image.c: don't fail when the link points to an absolute path.
8795
8796 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
8797
8798         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
8799         Fix CID #3.
8800
8801 2006-08-17  Miguel de Icaza  <miguel@novell.com>
8802
8803         * image.c (full_path): A new method used to obtain the actual path
8804         of an assembly even in the presence of symbolic links.  
8805
8806         This is necessary for the case where we are running a binary that
8807         has been GACed, but we are using the "published" path name
8808         ($prefix/mono/1.0/blah.exe) which happens to point to the real
8809         file in the GAC.
8810
8811         This was the source of the failure for the `xsp' command with the
8812         recent AppDomain changes, as far as the runtime was concerned,
8813         there were two different assemblies: $prefix/mono/1.0/blah.exe and
8814         $prefix/mono/gac/blah/version/blah.exe.
8815
8816         (do_mono_image_open): use full path
8817
8818 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8819
8820         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
8821
8822 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
8823
8824         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
8825         domain_id is supplied. Fix CID #241 and corlib's unit tests.
8826
8827 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8828
8829         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
8830         small structures. Fixes #78990.
8831
8832 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8833
8834         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
8835
8836         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
8837
8838 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8839
8840         * appdomain.c:
8841         * marshal.c: don't load all the assemblies from a domain into newly
8842         created ones. The new domains might have different rules and load
8843         assemblies from different locations. Fixes bug #76757.
8844
8845         Patch by Lluis. Conflicts resolved by Brian Crowell.
8846
8847 2006-08-16  Alp Toker  <alp@atoker.com>
8848
8849         * socket-io.c: First half of the fix for #79084.
8850         Set sa_size to the length of the content, not that of the struct.
8851         Don't add NULL suffix to the content, this should be done in
8852         managed code if needed.
8853
8854 2006-08-14  Raja R Harinath  <rharinath@novell.com>
8855
8856         Fix part of #79012
8857         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
8858         mono_metadata_parse_type returns NULL.
8859
8860 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
8861
8862         * normalization-tables.h : new file for string normalization data.
8863         * locales.c, locales.h, icall.c :
8864           added load_normalization_resource() for string normalization,
8865           and icall as well.
8866         * Makefile.am : added normalization-tables.h to the sources.
8867
8868 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
8869
8870         * marshal.c: Add more helper functions to reduce code duplication and use them
8871         everywhere.
8872
8873 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
8874
8875         * marshal.c: Fix non-x86 stdcall warnings.
8876         
8877         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
8878         them everywhere.
8879
8880 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
8881
8882         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
8883         type check on multi-dimensional arrays. Fixes #79000.
8884
8885 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
8886
8887         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
8888         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
8889         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
8890         * class-internals.h: add is_com_object to class structure.
8891         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
8892         null checks to COM object marshalling. Fix .ctor call on RCW.
8893         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
8894         
8895         All code is contributed under the MIT/X11 license.
8896
8897 2006-08-09  Dick Porter  <dick@ximian.com>
8898
8899         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
8900         racing mono_monitor_allocator_lock() somewhere, so don't delete
8901         the critical section for now.  Found by running and exiting
8902         monodevelop.
8903
8904 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
8905
8906         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
8907         (ves_icall_System_ComObject_FindInterface): Ditto.
8908         (ves_icall_System_ComObject_CacheInterface): Ditto.
8909
8910         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
8911         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
8912
8913 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8914
8915         * threadpool.c: treat pipes from process asynchronous reads as sockets
8916         when reading from them, so we get select/poll or epoll to wait for
8917         data.
8918
8919 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
8920
8921         * loader.c: Fix a typo (CID #233) in the null check.
8922
8923 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
8924
8925         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
8926         Hopefully fixes #78949.
8927         
8928         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
8929         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
8930         bytes. Fixes #78972.
8931
8932 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8933
8934         * filewatcher.c: we need to set errno here.
8935
8936 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8937
8938         * filewatcher.c: let Win32Exception get the error value.
8939
8940 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8941
8942         * filewatcher.c: translate errno into win32 errors for Win32Exception
8943         to know what happened.
8944
8945 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
8946
8947         * threadpool.c: Fix more warnings.
8948
8949         * assembly.c (search_loaded): Fix warnings.
8950
8951         * threadpool.c (mono_thread_pool_finish): Fix warnings.
8952         (mono_async_invoke): Ditto.
8953
8954 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
8955
8956         * object.c (mono_remote_class_vtable): Need to create proxy vtable
8957         entries for __ComObject type in addition to ComImport types.
8958         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
8959         about hash table.
8960         
8961         All code is contributed under the MIT/X11 license.
8962
8963 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
8964
8965         * image.c: avoid tentative loading of modulerefs that contain
8966         no metadata (P/Invoke library names).
8967
8968 2006-07-28  Dick Porter  <dick@ximian.com>
8969
8970         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
8971         mono_loader_lock() somewhere, so don't delete the critical section
8972         for now.  Found by running and exiting monodevelop.
8973
8974 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8975
8976         * filewatcher.c: define the inotify syscalls when we're building on
8977         linux and have sys/syscall.h. The build system might not have support
8978         for inotify but the target system might have it.
8979
8980 2006-07-26  Miguel de Icaza  <miguel@novell.com>
8981
8982         * domain.c: Documentation updates.
8983
8984         * loader.c (mono_free_method): Do not release the method
8985         information if we are being profiled, as profilers will use this
8986         information at shut down to present some data to the user.
8987
8988         This is needed so that the profiler does not crash, as the
8989         profiler tends to keep MonoMethods around, and they might become
8990         invalid if we free these.
8991
8992         (mono_get_method_constrained): Return the original CIL stream
8993         method as well, so verification can be performed against it.
8994
8995 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8996
8997         * filewatcher.[ch]: support for inotify file system watcher.
8998         * icall.c: add new internal calls for the inotify file system watcher.
8999
9000 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9001
9002         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
9003         #78888.
9004
9005 2006-07-20  Dick Porter  <dick@ximian.com>
9006
9007         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
9008         warning.
9009
9010 2006-07-20  Dick Porter  <dick@ximian.com>
9011
9012         * threads.c (start_wrapper): Do the thread cleanup while we still
9013         hold a reference to its object.  Fixes bug 78123.
9014
9015 2006-07-18  KornĂ©l Pál  <kornelpal@gmail.com>
9016
9017         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
9018         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
9019           "managed-to-managed".
9020         * icall.c: Redirect string constructors that take sbyte* to
9021           ves_icall_System_String_ctor_RedirectToCreateString.
9022         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
9023           to CreateString () methods with matching signature.
9024         * reflection.c: Use original security informations for
9025           MONO_WRAPPER_MANAGED_TO_MANAGED.
9026         * security-manager.c: Use original security informations for
9027           MONO_WRAPPER_MANAGED_TO_MANAGED.
9028         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
9029           that is a placeholder and only its address should be used.
9030         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
9031           that is a placeholder and only its address should be used.
9032
9033 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
9034
9035         Begin implementing COM Interop.
9036         * appdomain.c: Increment corlib version.
9037         * class.c: Set ComImport classes' parent to __ComObject.
9038         * loader.c: Mark cominterop methods as such.
9039         * domain.c: Add __ComObject class to MonoDefaults structure.
9040         * image.c: Add 2 hashtables to the image for COM Interop related methods
9041         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
9042         using the mempool allocator
9043         
9044         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
9045         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
9046         declaration for mono_metadata_type_dup_mp.
9047         
9048         * debug-helpers.c: Added strings for two additional wrapper types
9049         * object.c: Create proxy objects for ComImport classes
9050         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
9051         and added __ComObject class to MonoDefaults structure.
9052         
9053         * object-internals.h: Finish MonoRealProxy definition, and add definition of
9054         MonoComInteropProxy and MonoComObject.
9055         
9056         * marshal.c: Added support for COM Interop
9057         (signature_cominterop): Converts managed signature to corresponding
9058         unmanaged COM signature.
9059         (cominterop_get_function_pointer): gets unmanaged function pointer via
9060         COM object vtable
9061         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
9062         (cominterop_get_method_interface): returns interface type that method is defined on
9063         (mono_mb_emit_cominterop_call): emits native call to function pointer
9064         gotten from vtable
9065         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
9066         that matches signature of unmanaged function.
9067         (cominterop_get_native_wrapper): wrapper around adjusted method call.
9068         (cominterop_get_invoke): forwards call from proxy to __ComObject
9069         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
9070         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
9071         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
9072         
9073         * marshal.h: Added Marshal icall declarations.
9074         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
9075         so we can access them in finalizer
9076         
9077 2006-07-14  Dick Porter  <dick@ximian.com>
9078
9079         * object.c (mono_type_initialization_cleanup): Fix a race
9080         condition by temporarily commenting out the critical section
9081         deletion.
9082
9083 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
9084
9085         * reflection.c (create_custom_attr): Fix some warnings.
9086         (create_custom_attr_data): Ditto.
9087         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
9088         types. Fixes #78855.
9089
9090 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
9091
9092         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
9093
9094         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
9095
9096 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
9097
9098         * reflection.c (resolve_object): Add support for DynamicMethod.
9099
9100         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
9101         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
9102
9103 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
9104
9105         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
9106         don't leak GPtrArray's pdata has we have no use (nor free) for it.
9107
9108 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
9109
9110         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
9111         Fixes #77888.
9112
9113 2006-06-30  Raja R Harinath  <rharinath@novell.com>
9114
9115         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
9116         slightly: remove a shadow local variable.
9117
9118 2006-06-29  Raja R Harinath  <rharinath@novell.com>
9119
9120         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
9121         definition that introduces the virtual function slot.
9122         Also fix Coverity #105.
9123
9124 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
9125
9126         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
9127         for dynamic assemblies. Fixes #78724.
9128
9129 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
9130
9131         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
9132         Fixes #78722.
9133
9134 2006-06-21  Martin Baulig  <martin@ximian.com>
9135
9136         * reflection.c
9137         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
9138         fixes #76484.
9139
9140 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
9141
9142         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
9143
9144 2006-06-20  Raja R Harinath  <rharinath@novell.com>
9145
9146         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
9147         nor TYPEREFs.
9148         * class.c (mono_class_create_from_typespec): Add 'context' argument.
9149         Inflate result if necessary.
9150         (mono_class_get_full): Remove old version.  Rename from
9151         'mono_class_get' and add 'context' argument.  Pass it to
9152         ..._create_from_typespec.
9153         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
9154         (mono_ldtoken): Revert change below.
9155
9156 2006-06-20  Martin Baulig  <martin@ximian.com>
9157
9158         * class.c (mono_ldtoken): Don't pass the generic context to
9159         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
9160
9161 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
9162
9163         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
9164         and later freeing it. Fixes #78638.
9165
9166 2006-06-15  Miguel de Icaza  <miguel@novell.com>
9167
9168         * icall.c (mono_class_get_throw): Revert over-zealous error
9169         throwing, the caller for mono_class_get_throw will cope with
9170         errors when classes are not properly initialized already.
9171
9172         The code still copes with loader exceptions though.
9173
9174         Fixes the regression in reftype1 and reftype3 from the CAS tests.
9175         
9176 2006-06-14  Miguel de Icaza  <miguel@novell.com>
9177
9178         Fixes the `make run1' version of RuntimeAbort (to be commited,
9179         source is in Bugzilla).
9180         
9181         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
9182         FALSE on class loading failure instead of returning true.
9183
9184         * class.c (mono_class_create_from_typedef): It is possible for
9185         mono_metadata_interfaces_from_typedef_full to fail if a class is
9186         not found, cope with this.
9187         
9188
9189 2006-06-14  Dick Porter  <dick@ximian.com>
9190
9191         * socket-io.c: 
9192         * process.c: Fix a bunch of signed/unsigned warnings from gcc
9193         4.1.1
9194
9195 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
9196
9197         * culture-info-table.h : oops, forgot to make it nsync with r61548.
9198
9199 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9200
9201         * icall.c: Another fix for building mono in Visual Studio.
9202
9203 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9204
9205         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
9206         
9207 2006-06-09  Martin Baulig  <martin@ximian.com>
9208
9209         * debug-mono-symfile.c: Put this back and really fix it this
9210         time. Sorry for all the trouble.
9211
9212 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
9213
9214         * icall.c (mono_class_get_throw): Fix a warning.
9215         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
9216         ReflectionTypeLoadException if needed. Fixes #78606.
9217
9218         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
9219         (mono_class_init): Ditto.
9220
9221         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
9222         ref_only exceptions.
9223         (mono_loader_clear_error): Make this work even if there is no error.
9224
9225 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
9226
9227         * object-internals.h marshal.c marshal.h icall.c: Implement method 
9228         Marshal.GetComSlotForMethodInfo using internal call.
9229
9230 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
9231
9232         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
9233         a function for signalling it.
9234
9235         * class.c (mono_class_from_typeref): Use the new kind of loader error when
9236         a referenced assembly is not found.
9237
9238         * loader.c (mono_loader_error_prepare_exception): Add support for 
9239         LOADER_ERROR_ASSEMBLY. Fix formatting.
9240
9241 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9242
9243         * domain.c appdomain.c class-internals.h marshal.c: Add support 
9244         for VARIANT marshalling on windows and increment corlib version
9245         since Variant struct was added.
9246
9247 2006-06-03  Miguel de Icaza  <miguel@novell.com>
9248
9249         * debug-mono-symfile.c: Revert Martin's previous patch which broke
9250         stack trace line information:
9251
9252         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
9253         (Martin) when looking up B which is between A and C, return A not C.
9254
9255         Bug is #78573.
9256
9257         Thanks to Alexander Olk for tracking this down.
9258
9259 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
9260
9261         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
9262         
9263         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
9264         avoid clobbering its value.
9265         (mono_string_to_lpstr): Fix a warning on windows.
9266
9267 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9268
9269         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
9270
9271         * reflection.c loader.c: Removed references to 'dummy' flag.
9272
9273         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
9274
9275         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
9276         it gets GC tracking.
9277
9278         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
9279         GC tracking.
9280         
9281         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
9282
9283         * marshal.c threadpool.c: Update callers of mono_async_result_new.
9284
9285         * appdomain.c: Bump corlib version.
9286
9287 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9288
9289         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9290         CEE_STIND_REF when working with object references.
9291
9292 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9293
9294         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
9295         Fixes #78539.
9296
9297 2006-05-30  Miguel de Icaza  <miguel@novell.com>
9298
9299         * loader.c (method_from_memberref): Fix argument value for
9300         mono_loader_set_error_method_load (I was passing the MonoClass
9301         instead of the class name char *).
9302
9303 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9304
9305         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9306         CEE_STIND_REF when working with object references.
9307
9308 2006-05-30  Martin Baulig  <martin@ximian.com>
9309
9310         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
9311         mono_method_full_name() change and replace the ':' with a '.'
9312         here.
9313
9314 2006-05-30  Martin Baulig  <martin@ximian.com>
9315
9316         * debug-mono-symfile.c
9317         (mono_debug_symfile_lookup_location): Fix the algorithm:
9318         when looking up B which is between A and C, return A not C.
9319
9320 2006-05-29  Martin Baulig  <martin@ximian.com>
9321
9322         * mono-debug.h
9323         (MonoDebugMethodInfo): Make the typedef public.
9324         (MonoDebugSourceLocation): New public struct.
9325
9326         * mono-debug.c
9327         (mono_debug_source_location_from_address): Removed.
9328         (mono_debug_source_location_from_il_offset): Removed.
9329         (mono_debug_il_offset_from_address): Removed.
9330         (mono_debug_address_from_il_offset): Removed.
9331         (mono_debug_lookup_method): New public function.
9332         (mono_debug_lookup_source_location): New public function; replaces
9333         the old mono_debug_source_location_from_*() functions; see the
9334         inline documentation.
9335         (mono_debug_free_source_location): New public function.
9336         (mono_debug_print_stack_frame): New public function; see the
9337         inline documentation.
9338
9339         * debug-mono-symfile.c
9340         (mono_debug_find_source_location): Renamed into
9341         mono_debug_symfile_lookup_location(); only take a
9342         `MonoDebugMethodInfo *' and an `offset' argument; added inline
9343         documentation.
9344         (mono_debug_find_method): Renamed into
9345         mono_debug_symfile_lookup_method().
9346
9347 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
9348
9349         * assembly.c (mono_assembly_open_full): Dont overwrite the status
9350         returned by mono_image_open_full ().
9351
9352         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
9353         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
9354         #78517.
9355
9356         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
9357         #78518.
9358
9359 2006-05-27  Miguel de Icaza  <miguel@novell.com>
9360
9361         * class.c (mono_class_from_typeref): handle missing images
9362         earlier, deals with bug #78418.   Refactor code; 
9363
9364         Fix a warning introduced in my previous commit (some stale code
9365         from before I revisited my patch).
9366
9367         * class.c (mono_class_create_from_typedef): On failure, remove the
9368         class from the MonoImage->class_cache as the class is not
9369         initialized;   Fixes the leak pointed out by Paolo.
9370
9371 2006-05-25  Dick Porter  <dick@ximian.com>
9372
9373         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
9374         DeleteCriticalSections until I figure out which one may still be
9375         sometimes locked when mono_thread_cleanup is called.
9376
9377 2006-05-24  Dick Porter  <dick@ximian.com>
9378
9379         * threads.c (mono_thread_cleanup): Move the threading cleanup out
9380         of mono_thread_manage and back into its own function, so it can be
9381         called after the finalizer thread has finished.
9382
9383         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
9384
9385 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
9386
9387         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
9388         Fixes #78495.
9389
9390         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
9391         with non-blittable elements.
9392         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
9393
9394 2006-05-24  Martin Baulig  <martin@ximian.com>
9395
9396         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9397         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
9398
9399         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
9400         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
9401         `mono_debugger_event_handler' to NULL.
9402
9403 2006-05-24  Martin Baulig  <martin@ximian.com>
9404
9405         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
9406
9407 2006-05-24  Martin Baulig  <martin@ximian.com>
9408
9409         * mono-debug-debugger.h
9410         (mono_debugger_create_notification_function): Added
9411         `MonoCodeManager *' argument.
9412
9413 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
9414
9415         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
9416
9417 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
9418
9419         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
9420         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
9421         implementation.
9422
9423 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
9424
9425         * icall.c: precise GC support: objects can't be stored in unmanaged
9426         memory anymore, even if they are kept alive by other references: since
9427         they can move the GC needs to be able to always find them.
9428
9429 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
9430
9431         * object.c: precise GC support for static fields. Support
9432         for moving GCs: write barriers and pinned allocation for interned
9433         strings.
9434
9435 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
9436
9437         * domain.c, domain-internals.h: precise GC support for the MonoDomain
9438         structure.
9439
9440 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
9441
9442         * class.c, gc.c: sgen and precise GC updates.
9443
9444 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
9445
9446         * marshal.h, marshal.c: added write barrier wrapper and precise type
9447         fixes.
9448
9449 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
9450
9451         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
9452         support.
9453
9454 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
9455
9456         * reflection.c: precise and sgen GC updates.
9457
9458 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
9459
9460         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
9461
9462 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
9463
9464         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
9465
9466 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
9467
9468         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
9469         MONO_TYPE_OBJECT. Fixes #78462.
9470
9471 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
9472
9473         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
9474         and blittable types.
9475
9476 2006-05-17  Miguel de Icaza  <miguel@novell.com>
9477
9478         * class.c (mono_class_get_exception_for_failure): Implement parts
9479         of a TODO: if the loader error is set (instead of the class
9480         error), we return a Loader exception that can be properly thrown
9481         elsewhere.
9482
9483         This was exposed by some Winforms 2.0 code that I tried to run
9484         (Atsushi pointed me to it).
9485
9486 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
9487
9488         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
9489         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
9490         
9491         * marshal.c (emit_marshal_vtype): Add limited support for 
9492         UnmanagedType.LPStruct. Fixes #78427.
9493
9494         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
9495         Applied a patch from kangaroo to fix #77523.
9496
9497 2006-05-17  Martin Baulig  <martin@ximian.com>
9498
9499         * threads.c
9500         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
9501         (debugger_thread_created): Removed.
9502         (debugger_thread_exited): Removed.
9503
9504 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
9505
9506         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9507
9508         * object-internals.h (MonoReflectionResource): Sync with managed version.
9509
9510 2006-05-12  Wade Berrier <wberrier@novell.com>
9511
9512         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
9513
9514 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
9515
9516         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
9517         functions try to allocate from the image mempool.
9518
9519 2006-05-12  Dick Porter  <dick@ximian.com>
9520
9521         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
9522
9523 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
9524
9525         * object.c: The FieldGetter and FieldSetter methods require the full
9526         name of the class, not only the name. Fixes bug #78277.
9527
9528 2006-05-11  Miguel de Icaza  <miguel@novell.com>
9529
9530         * loader.c (method_from_memberref): Do not pass the NULL klass to
9531         mono_loader_set_error_() methods.  Pass the non-NULL value
9532         (class). 
9533
9534 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
9535
9536         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
9537         (mono_assembly_close): Null out assembly->image->references after freeing it.
9538
9539         * image.c (mono_image_close): Free image->references.
9540         
9541         * reflection.c (mono_image_basic_init): Fix a small memory leak.
9542
9543 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
9544
9545         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
9546         before checking if it's NULL (g_assert).
9547
9548 2006-05-10  Martin Baulig  <martin@ximian.com>
9549
9550         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
9551         I thought I already killed that two months ago, but now it somehow reappeared.
9552
9553 2006-05-10  Martin Baulig  <martin@ximian.com>
9554
9555         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
9556
9557 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
9558
9559         * reflection.c: Allocate memory for dynamically created methods in the image
9560         mempools.
9561
9562 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
9563
9564         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
9565         don't use the ad pointer before checking if it's NULL (g_assert).
9566
9567 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
9568
9569         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
9570         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
9571
9572         * marshal.c: Allocate all signatures from mempools.
9573
9574         * marshal.c: Allocate some more signatures from mempools.
9575
9576 2006-05-09  Miguel de Icaza  <miguel@novell.com>
9577
9578         * object.c (mono_load_remote_field): The code used to provide a
9579         temporary variable for returning results if the user did not
9580         provide a result pointer.  But our temporary variable was allocted
9581         on the satck.
9582
9583         Fix calling code to always pass a result area.   Coverity ID 103.
9584
9585 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
9586
9587         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
9588         value, not the old. Fixes #78312.
9589         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
9590
9591         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
9592         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
9593         per-image cache.
9594
9595         * assembly.c (mono_assembly_close): Free image->references.
9596
9597         * assembly.c (mono_assembly_names_equal): Fix a warning.
9598         (mono_assemblies_cleanup): Cleanup more global data.
9599
9600         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
9601
9602         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
9603         ptr_cache and image->modules.
9604
9605         * image.c (mono_image_init): Allocate array_cache lazily.
9606         
9607 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9608
9609         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
9610         behavior was changed recently and has bad side effects.
9611
9612 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
9613
9614         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
9615         
9616         * assembly.c (mono_assembly_close): Remove a debug printf.
9617
9618         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
9619
9620         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
9621         to also allow for temporary references between mono_image_open ()/close ().
9622
9623         * domain.c (get_runtimes_from_exe): Add a FIXME.        
9624
9625 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
9626
9627         * marshal.c: Fix support for dynamic methods.
9628
9629         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
9630
9631         * marshal.c (mono_marshal_cleanup): New cleanup function.
9632
9633         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
9634         image mempools.
9635
9636         * class.c (mono_class_init): Fix leaking class->nested_classes.
9637
9638         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
9639
9640         * image.c (mono_image_init): Initialize the new cashes.
9641
9642         * image.c (mono_image_close): Destroy the new cashes.
9643
9644         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
9645
9646         * mempool.c (mono_mempool_strdup): New helper function.
9647
9648         * class-internals.h: Add prototype for mono_loader_unlock ().
9649
9650         * domain.c (mono_jit_info_table_find): Fix a warning.
9651         (mono_debugger_check_runtime_version): Ditto.
9652
9653         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
9654         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
9655         functions to these modules.
9656
9657         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
9658         metadata modules.
9659         
9660         * marshal.c (mono_free_bstr): Fix a warning.
9661
9662         * assembly.c (mono_assembly_open_full): Fix another small leak.
9663
9664         * object.c: Fix some unload leaks in the remoting code.
9665
9666         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
9667         function.
9668
9669         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
9670
9671         * reflection.c: Fix some unload leaks in dynamic assemblies.
9672
9673 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
9674
9675         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
9676         * marshal.h: Add BSTR support on Win32
9677         * icall.c: Add BSTR icalls
9678         * metadata.h: Add BSTR enums
9679
9680 2006-04-28  Miguel de Icaza  <miguel@novell.com>
9681
9682         Work to catch the crash from #76795 and turn it into an
9683         exception.   As I stubbed out pieces of the VisualBasic support,
9684         I found a number of places where the code was failing and I added
9685         checks to those places. 
9686         
9687         * metadata.c (do_mono_metadata_parse_generic_class): Make this
9688         function return a status code.  If we fail to parse the signature
9689         from mono_metadata_parse_generic_inst, return FALSE.
9690
9691         * loader.c (mono_get_method_from_token): If we fail to load the
9692         method (mono_class_get) return NULL.   
9693
9694         * (method_from_memberref): Return NULL if we are unable to parse
9695         the method signature
9696
9697         (mono_loader_error_prepare_exception): Since we now use the
9698         loader_error flag internally to stop processing, and obtaining
9699         exceptions that might be thrown will walk this code path the
9700         proper way of going from a MonoLoaderError into a
9701         MonoException was convoluted.   This new routine encapsulates the
9702         process of turning the error into an exception and *clearing* the
9703         error afterwards.
9704         
9705 2006-04-27  Miguel de Icaza  <miguel@novell.com>
9706
9707         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
9708         with missing assemblies), and to cope with:
9709
9710                 * Missing fieldref from a non-existing assembly.
9711                 * Missing methodref from a non-existing assembly.
9712
9713         The first batch of work to address *some* of the issues from 76661.
9714         
9715         * object.c (mono_class_create_runtime_vtable): If we fail to
9716         initialize the class raise the exception here. 
9717
9718         * metadata.c (mono_class_get_overrides_full): If any methods fail
9719         to load return the failure to the caller.
9720
9721         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
9722         flagging assemblies that failed to load.   
9723
9724         Do not crash if we are unable to load the assembly.
9725
9726         (mono_assembly_close): Do nothing with REFERENCE_MISSING
9727         assemblies. 
9728
9729         * loader.c (mono_loader_set_error_type_load): Change the
9730         convention to always pass unallocated strings, so we make our own
9731         copies (I know our own code had duplicated strings before, but
9732         this keeps the normal conventions).
9733         (method_from_memberref): Call mono_loader_set_error_method_load
9734         for all possible failures of loading the class. 
9735         Remove assert, turn into a loader error.
9736
9737         (mono_loader_error_to_exception): Move this routine from mini
9738         (mini_loader_error_to_exception) there was no need to have that in
9739         mini. 
9740
9741         * class.c (mono_class_from_typeref): If we were not able to load
9742         the assembly with mono_assembly_load_reference, call the
9743         mono_loader_set_error_type_load to register the problem.
9744
9745         (mono_class_setup_fields): If we fail to load the type from
9746         mono_metadata_parse_type_full, call mono_class_set_failure and
9747         break from the loop.
9748
9749         If class->exception_type is set, we do not layout the fields as
9750         that might crash the runtime, and instead return (from breaking
9751         from the previous loop).
9752
9753         (mono_class_setup_vtable): This now returns a boolean indicating
9754         whether the table was properly setup.   The decision is driven by
9755         mono_class_get_overrides_full which might run into non-existing
9756         methods. 
9757         
9758         (mono_class_init): Returns TRUE on success or FALSE if there was a
9759         problem in loading the type (incorrect assemblies, missing
9760         assemblies, methods, etc).
9761
9762         When we call mono_class_setup_fields we also check for a potential
9763         error inside this call (either a class exception or a general
9764         loader exception).
9765
9766         (mono_class_create_from_typedef): If the parent fails to load
9767         (calling mono_class_get_full) return NULL.
9768         
9769         ** Important **
9770
9771         calls to mono_metadata_parse_type_full should be checked
9772         everywhere and set the mono_class_set_failure
9773         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
9774
9775         The current patch checks the places where my manually constructed
9776         tests show the errors are showing up, but we should do it
9777         everywhere. 
9778
9779         ** Important2 **
9780
9781         mono_class_init return values should be tested everywhere, like
9782         the previous case this is something that we should audit
9783         everywhere and not only on the cases exposed by the tests I
9784         created. 
9785
9786 2006-04-26  Miguel de Icaza  <miguel@novell.com>
9787
9788         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
9789         boolean parameter and instead pass the information on `options'
9790         parameter (FileOptions).
9791
9792         * icall.c: Register the new signature for MonoIO.Open.
9793
9794         * debug-helpers.c (dis_one): Trying to understand how coverity
9795         works.  Fix Run 5, item 78.
9796
9797 2006-04-26  Dick Porter  <dick@ximian.com>
9798
9799         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
9800         dereference.
9801
9802 2006-04-25  Martin Baulig  <martin@ximian.com>
9803
9804         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
9805
9806         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
9807         debugger_thread_created().
9808         (debugger_gc_push_all_stacks): Don't handle the main thread in any
9809         special way.
9810         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
9811         (mono_debugger_finalize_threads): New function; undo the effects
9812         of mono_debugger_init_threads().
9813         (mono_debugger_create_all_threads): Removed.
9814
9815 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
9816
9817         * image.c (mono_image_close): Tidy up trace messages.
9818
9819         * assembly.c (mono_assembly_close): Ditto.
9820
9821         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
9822         no longer references an already freed assembly. Fixes #78168.
9823
9824 2006-04-21  Dick Porter  <dick@ximian.com>
9825
9826         * threads.c (mono_thread_detach): Fix reference counting when
9827         detaching threads.
9828
9829 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
9830
9831         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
9832         #78155.
9833
9834 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
9835
9836         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
9837         (mono_type_to_stind): Ditto.
9838
9839         * marshal.c: Use the new helper functions to simplify code.
9840
9841         * image.c (mono_image_close): Add some code for help debug assembly unloading
9842         problems.
9843
9844         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
9845         image mempool.
9846
9847         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
9848         assembly was already loaded in another appdomain. Fixes #78083.
9849
9850 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
9851
9852         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
9853         referenced assemblies.
9854         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
9855
9856         * domain.c (mono_domain_free): Add a trace message.
9857
9858         * appdomain.c (add_assemblies_to_domain): Ditto.        
9859
9860         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
9861         field.  
9862
9863 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
9864
9865         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
9866
9867 2006-04-12  Martin Baulig  <martin@ximian.com>
9868
9869         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
9870         `USE_INCLUDED_LIBGC'.   
9871
9872 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
9873
9874         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
9875         the patch contains ../ and a small directory name later. Hopefully fixes
9876         #78035.
9877
9878 2006-04-10  Martin Baulig  <martin@ximian.com>
9879
9880         Clean up the debugger's thread-handling code.
9881
9882         The debugger's thread-handling code has been moved from
9883         ../mini/debug-debugger.c to threads.c.  We now iterate directly
9884         over the `threads' hash, keep track of exiting threads and also
9885         use proper locking.
9886
9887         We can now debug XSP and XSP based applications with the debugger.
9888
9889         * object-internals.h (MonoThread): Added `gpointer end_stack'.
9890
9891         * threads.h
9892         (MonoThreadCallbacks): Removed; this was only used by the debugger.
9893         (mono_install_thread_callbacks): Likewise.      
9894
9895         * threads.c (mono_thread_callbacks): Removed.
9896         (debugger_thread_created, debugger_thread_exited): New static functions.
9897         (start_wrapper): Call debugger_thread_created().
9898         (thread_cleanup): Call debugger_thread_exited().
9899         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
9900         (mono_debugger_init_threads): New public function.
9901         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
9902         iterate directly over the `threads' hash and also use proper locking.
9903
9904         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
9905
9906         * mono-debug-debugger.h
9907         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
9908
9909 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
9910
9911         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
9912         argument type=array. Fixes #78057.
9913
9914 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
9915
9916         * culture-info-table.h : regenerated. Fixed bug #69652.
9917
9918 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
9919
9920         * loader.c metadata.c: Reapply a variant r59116.
9921         
9922         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
9923
9924         * class.c (mono_class_setup_interface_offsets): New internal function.
9925
9926         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
9927         interfaces too. Fixes #77398.
9928
9929         * reflection.c (encode_cattr_value): Add support for 
9930         parameter type=object, argument type=array.
9931         (load_cattr_value): Ditto. Fixes #77916.
9932
9933         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
9934         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
9935
9936         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
9937         a byval char array and CharSet is Ansi.
9938
9939         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
9940
9941 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
9942
9943         * metadata.c: Add some locking comments.
9944         
9945         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
9946         mempool.
9947         (mono_metadata_free_method_signature): Don't free the signature itself.
9948
9949         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
9950
9951         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
9952         reference the same MonoImage.
9953         (mono_assembly_load_from_full): Add an assert.
9954
9955 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
9956
9957         * image.c (mono_image_close): Don't put the image we are about to free into the
9958         loaded_images_guid_hash.
9959
9960         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
9961         to reduce code duplication.
9962
9963         * marshal.c: Register the native functions called by this module as icalls, to
9964         somewhat centralize the creation of MonoMethodSignature's.
9965
9966         * loader.c (mono_method_signature): Add a cache for method signatures.
9967
9968         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
9969         the parameter attributes of a method.
9970         (mono_metadata_parse_method_signature_full): Refactored the computation of
9971         parameter attributes into a separate function. Also avoid one allocation in
9972         most cases.
9973
9974         * assembly.c (mono_assembly_close): Ditto.
9975
9976         * image.c (mono_image_close): Log trace messages with INFO level.
9977
9978         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
9979
9980         * image.c reflection.c: Correct reference counting of image modules.
9981         
9982         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
9983         of this function from the image mempool.
9984         
9985         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
9986         to allow more cached types to be used.
9987
9988         * mono-debug.c (mono_debug_add_method): Appled patch from
9989         David S. Miller  <davem@sunset.davemloft.net>: Access 
9990         minfo->lexical_blocks[] entry elements using read32().
9991
9992 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
9993
9994         * loader.c (mono_free_method): No longer free the method header for non-dynamic
9995         methods as it is allocated from the mempool.
9996
9997         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
9998         image mempool.
9999
10000         * metadata-internals.h: Add comments describing the reference counting scheme
10001         used for MonoImage and MonoAssembly.
10002
10003         * image.c assembly.c reflection.c: Rework reference counting of images and 
10004         assemblies so they are freed when the runtime is shut down. Free some 
10005         additional memory structures when an image is unloaded.
10006         
10007 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
10008
10009         * class.c loader.c reflection.c: Allocate more data structures in
10010         the image mempool.
10011
10012 2006-03-31  Miguel de Icaza  <miguel@novell.com>
10013
10014         * icall.c
10015         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
10016         build on pre glib 2.4 systems.
10017
10018 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
10019
10020         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
10021
10022         * icall.c: Fix some warnings.
10023
10024 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
10025
10026         * culture-info-table.h : regenerated.
10027
10028 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
10029
10030         * threads.c, object-internals.h, verify.c: changed the culture caching
10031         code to use a normal MonoArray for storage so the GC can keep track of
10032         them easily. Fixed bits of the cache logic, too and simplified the
10033         code.
10034
10035 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
10036
10037         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
10038         thread for non-Boehm GCs.
10039
10040 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
10041
10042         * domain.c, object.c, domain-internals.h: reduce the amount of memory
10043         needed to keep track of the data for static fields.
10044
10045 2006-03-29  Raja R Harinath  <rharinath@novell.com>
10046
10047         Fix #75172
10048         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
10049         for interface classes.  Use 'num_methods' instead.
10050         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
10051         before using '->vtable_size' field.
10052
10053 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
10054
10055         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
10056         doesn't contain managed pointers, so use a normal hashtable.
10057
10058 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
10059
10060         * reflection.c, class-internals.h, domain.c: fixed handling of types
10061         used as values for objects in custom attributes (bug #77915):
10062
10063 2006-03-24  Martin Baulig  <martin@ximian.com>
10064
10065         * class.c (mono_class_setup_fields): Added support for generic
10066         instances; fixes #77580.
10067
10068 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10069
10070         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
10071
10072 2006-03-24  Dick Porter  <dick@ximian.com>
10073
10074         * file-io.c (get_file_attributes): More stat macro breakage.
10075         Fixes bug 77759.
10076
10077 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
10078
10079         * profiler.c: added the file=filename option in the default profiler
10080         to output the profile data to filename.
10081
10082 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10083
10084         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
10085         bug #77877.
10086
10087 2006-03-22  Martin Baulig  <martin@ximian.com>
10088
10089         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
10090         allocated `MonoClassField *' in `fb->handle'.
10091
10092 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
10093
10094         * class.c, image.c, metadata-internals.h: implemented new mechanism to
10095         allocate interface ID to save memory and allow better ID reuse on
10096         appdomain unload. setup_generic_vtable () removal from Martin.
10097
10098 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10099
10100         * object.h, appdomain.c, domain.c, exception.c, icall.c,
10101         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
10102         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
10103         write barriers for reference stores with managed objects accessed with
10104         C structures in the runtime and in embedding programs.
10105
10106 2006-03-20  Raja R Harinath  <rharinath@novell.com>
10107
10108         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
10109         'interface_id' and 'max_interface_id' fields of MonoClasses
10110         representing open generic types.
10111
10112 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
10113
10114         * object.h, object.c, icall.c: added functions to deal with
10115         storing valuetypes that contain references in managed objects.
10116         * reflection.c, string-icalls.c, threads.c, marshal.c: small
10117         fixes and comments around uses of mono_array_addr ().
10118
10119 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
10120
10121         * object.h, icall.c, monitor.c: object.GetHashCode ()
10122         implementation that supports the moving garbage collector.
10123
10124 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
10125
10126         * icall.c, threads-types.h, threads.c: implemented finalizer for
10127         LocalDataStoreSlot.
10128
10129 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
10130
10131         * metadata.c (mono_type_size): Add a fixme.
10132         (mono_type_stack_size): Ditto.
10133
10134         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
10135         'type_forwarders' field.
10136
10137         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
10138         attribute from net 2.0.
10139
10140         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
10141         from class.c.
10142
10143         * class.c (mono_class_setup_fields): Fix a warning.
10144         
10145         * class.c (mono_class_from_name): Add support for assemblyref entries
10146         in the EXPORTEDTYPE table.
10147
10148         * reflection.c: Add support for handling type forwarders under net 2.0.
10149
10150         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
10151         
10152 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
10153
10154         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
10155         overwriting entries in ModuleBuild->types, also clean up the code
10156         a little. Fixes #77774.
10157
10158 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
10159
10160         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
10161         load friend assembly info when present.
10162
10163 2006-03-14  Raja R Harinath  <rharinath@novell.com>
10164
10165         Fix crasher on gtest-158.cs.
10166         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
10167         the return value if the MonoClass we want is yet in an
10168         inconsistent state.
10169         * class.c (mono_class_create_from_typedef): Add an comment
10170         explaining an order dependency between mono_class_setup_parent and
10171         mono_class_setup_mono_type.
10172
10173 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
10174
10175         * class.c: documentation updates and events bug fix.
10176
10177 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
10178
10179         * class.c: some cleanup, locking fixes.
10180
10181 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
10182
10183         * class.c: fix the generics code to setup nested
10184         type info to the instantiated type (bug #77770).
10185
10186 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
10187
10188         * marshal.c: fixed a few type correctness issues.
10189
10190 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10191
10192         * loader.c: the Set/Get/Addrtess array methods should be public.
10193
10194 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
10195
10196         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
10197         
10198         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
10199         info->wrapper.
10200
10201 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
10202
10203         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
10204
10205         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
10206
10207         * mempool.c (mono_mempool_alloc): Speed this up a bit.
10208         (mono_mempool_alloc0): Ditto.
10209
10210 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10211
10212         * socket-io.c:
10213         (create_object_from_sockaddr): it was allocating 4 extra bytes
10214         for the AF_UNIX data. Fixes bug #77747.
10215
10216 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
10217
10218         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
10219
10220 2006-03-09  Dick Porter  <dick@ximian.com>
10221
10222         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
10223         Fixes bug 76966 again.
10224
10225 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10226
10227         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
10228         names from r57532
10229         * appdomain.c: Bumped corlib version to 48 (due to r57532)
10230
10231 2006-03-07  Martin Baulig  <martin@ximian.com>
10232
10233         * object.c
10234         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
10235
10236 2006-03-07  Martin Baulig  <martin@ximian.com>
10237
10238         * class.c
10239         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
10240         regression introduced in r56970; see gtest-252.cs.
10241
10242         * loader.c (mono_get_method_constrained): Correctly handle generic
10243         methods; see gtest-253.cs.
10244
10245 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
10246
10247         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
10248
10249 2006-03-04  Martin Baulig  <martin@ximian.com>
10250
10251         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
10252         compute the parent type at runtime, just like we're already doing
10253         it for interfaces.
10254
10255         * reflection.c
10256         (mono_reflection_bind_generic_parameters): Don't compute the
10257         parent type anymore.
10258
10259         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
10260
10261 2006-03-04  Martin Baulig  <martin@ximian.com>
10262
10263         * mono-debug-debugger.h
10264         (mono_debugger_create_notification_function): Allocate memory at
10265         runtime and return a pointer to it.
10266
10267 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
10268
10269         * assembly.c: Fix windows build.
10270         
10271         * assembly.c: Fix build.
10272
10273         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
10274
10275         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
10276         
10277 2006-03-03  Dick Porter  <dick@ximian.com>
10278
10279         * process.c
10280         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
10281         Check parameters before dereferencing them.  Fixes Aaron's part of
10282         bug 77393.
10283
10284 2006-03-03  Raja R Harinath  <rharinath@novell.com>
10285
10286         Fix performance regression.
10287         * loader.c (find_method_in_class): Add 'from_class' argument.
10288         Rename 'klass' argument to 'in_class'.  The signature is compared
10289         against the method in 'in_class', and the corresponding method is
10290         returned from 'from_class'.
10291         (find_method): Walk both 'in_class' and 'from_class' in parallel.
10292         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
10293         type definition and generic instantiation in parallel.
10294         (mono_get_method_constrained): Update to changes.
10295
10296 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
10297
10298         * threads.c: make sure the domain is correct, too when doing
10299         mono_thread_attach ().
10300
10301 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
10302
10303         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
10304         windows. Fixes #77683.
10305
10306 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
10307
10308         * object.h, *: introduced specific way to set elements of an array
10309         of references to be used as write barrier. Still need to audit the
10310         uses of mono_array_addr.
10311
10312 2006-03-01  Miguel de Icaza  <miguel@novell.com>
10313
10314         * object-internals.h: New field to cache the assmebly name, patch
10315         from Tambet Ingo (tambet@ximian.com)
10316
10317 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10318
10319         * decimal.h, class-internals.h, metadata-internals.h,
10320         file-io.h: mark a few function declarations as internal, to
10321         reduce the number of PLT entries.
10322
10323 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10324
10325         * file-io.c: fix typo in warning message.
10326
10327 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
10328
10329         * loader.c: on unix, lookup the "*A" version of a function
10330         if charset is auto as a second option before failing.
10331
10332 2006-02-28  Raja R Harinath  <rharinath@novell.com>
10333
10334         * class.h (mono_class_inflate_generic_method): Revert to two
10335         argument version.
10336         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
10337         (mono_class_inflate_generic_method_full): Add.
10338         * class.c (mono_class_inflate_generic_method_full): Rename from
10339         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
10340         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
10341         * loader.c, reflection.c: Update to changes.
10342
10343 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
10344
10345         * icall.c: const fixes and small improvements.
10346
10347 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10348
10349         * threadpool.c: for asynchronous connect(), enable the same workaround
10350         for BSD 6 as for the Mac. Fixes bug #77637.
10351
10352 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
10353
10354         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
10355         formatted classes. Fixes #77524.
10356
10357 2006-02-24  Raja R Harinath  <rharinath@novell.com>
10358
10359         * class.c (inflate_generic_type): Add a couple more
10360         micro-optimizations.
10361         (inflate_generic_context): Don't use the 'gmethod' from
10362         'inflate_with'.
10363         (mono_class_inflate_generic_method): If the method has generic
10364         parameters, but the passed-in context doesn't have a 'gmethod',
10365         create one.  Use the possibly simplified generic instantiation
10366         from the declaring class instead of the one passed in.
10367
10368 2006-02-24  Raja R Harinath  <harinath@gmail.com>
10369
10370         Make generic method signature and method header handling lazy.
10371         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
10372         (inflate_generic_header): Likewise.
10373         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
10374         parameter to avoid inflating types.
10375         (mono_get_inflated_method): Empty out.
10376         * class.h (mono_class_inflate_generic_method): Update to changes.
10377         * loader.c (mono_get_method_from_token): Don't parse signature for
10378         generic methods, nor methods of generic classes.
10379         (mono_method_signature): Rename from 'mono_method_signature'.
10380         Inflate signature on demand.
10381         (mono_method_get_header): Inflate method header on demand.
10382         * reflection.c: Update to changes.
10383
10384 2006-02-23  Raja R Harinath  <rharinath@novell.com>
10385
10386         * metadata.c (mono_metadata_inflate_generic_inst): If the
10387         instantiation is closed, don't bother expanding it in the new
10388         context.
10389         * class.c (inflate_generic_class): If the generic instantiation
10390         doesn't change after inflation, return the argument itself.
10391         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
10392         Add bounds checks.
10393         (inflate_generic_context): If neither the generic class nor the
10394         generic method instantiations change, return the original context.
10395         * reflection.c (mono_method_get_object): Do
10396         'mono_get_inflated_method' before accessing the ->klass field.
10397         (inflate_mono_method): Don't create a MonoGenericMethod unless
10398         necessary.
10399         (inflate_method): Don't pass a constructed type as the declaring
10400         type of a methodbuilder.
10401
10402 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
10403
10404         * object.c: fix memory overwrite.
10405
10406 2006-02-22  Dick Porter  <dick@ximian.com>
10407
10408         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
10409         it doesn't work any more.
10410         (mono_threads_request_thread_dump): Fix unused variable warnings.
10411
10412 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10413
10414         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
10415         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
10416         the public header file.
10417
10418 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
10419
10420         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
10421
10422 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
10423
10424         * class-internals.h, object.c: reduce the size of MonoVTable
10425         and store the interface_offsets array at negative offsets.
10426
10427 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
10428
10429         * metadata.c: tweak table descriptors data structures to reduce
10430         size and runtime relocations.
10431
10432 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10433
10434         * marshal.c: fix some types and opcodes to be type-safe
10435         in marshaling wrappers.
10436
10437 2006-02-21  Ankit Jain  <jankit@novell.com>
10438
10439         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
10440
10441 2006-02-21  Raja R Harinath  <rharinath@novell.com>
10442
10443         * metadata.c (get_constraints): Relax debugging checks for monodis.
10444
10445 2006-02-21  Ankit Jain  <jankit@novell.com>
10446
10447         * metadata.c (mono_metadata_load_generic_params): Move the code
10448         checking for ambiguous generic params from here to mono/dis/get.c
10449         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
10450
10451 2006-02-21  Raja R Harinath  <harinath@gmail.com>
10452
10453         Fix assertion triggered when compiling nemerle.
10454         * class.c (mono_get_shared_generic_inst): Rename from
10455         get_shared_inst and make non-static.
10456         * loader.c (mono_get_shared_generic_method): New.  Used to create
10457         the MonoGenericContext-equivalent of a MonoGenericContainer.
10458         (mono_get_method_from_token): Initialize the 'context' field of
10459         the created MonoGenericContainer.
10460         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
10461         * metadata.c (get_constraints): Add sanity check.
10462         * class-internals.h: Add new internal methods.
10463
10464         * reflection.c (verify_safe_for_managed_space): New sanity check.
10465         Currently checks that owner-less generic parameters aren't allowed
10466         in managed space.
10467         (mono_type_get_object): Use it.
10468         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
10469         that are now in mono_type_get_object.
10470         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
10471
10472 2006-02-19  Raja R Harinath  <harinath@gmail.com>
10473
10474         * metadata.c (mono_type_create_from_typespec): Rename from
10475         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
10476         argument and caching of types in the generic container.
10477         (unwrap_arrays, find_generic_param): Remove.
10478         * metadata-internals.h: Update.
10479         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
10480
10481 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
10482
10483         * class.c (mono_class_get_exception_for_failure): Fix a warning.
10484
10485         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
10486         return values. Fixes #77581.
10487
10488         * class.c (mono_fnptr_class_get): Switch name and name_space.
10489
10490         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
10491         classes and add support for [In, Out] attributes.
10492         (mono_marshal_free_asany): Ditto. Fixes #77524.
10493
10494 2006-02-18  Raja R Harinath  <harinath@gmail.com>
10495
10496         * class.c (mono_class_from_generic_parameter): Make more robust to
10497         incomplete MonoGenericContainers from monodis.
10498
10499 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
10500
10501         * class-internals.h: added some more exception types.
10502         * class.c, metadata.c: added a few checks to handle missing
10503         types.
10504
10505 2006-02-17  Raja R Harinath  <rharinath@novell.com>
10506
10507         Use owner-less generic-params some more.
10508         * class.c (my_mono_class_from_generic_parameter): Remove.
10509         (mono_class_from_generic_parameter): Handle null image,
10510         param->name and param->owner.
10511         (mono_class_from_mono_type): Update.
10512         (mono_class_create_from_typespec): Remove 'container' parameter.
10513         If that parameter is non-null, the result is always inflated by
10514         'mono_class_get_full' anyway.
10515         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
10516         parameter.
10517         (mono_class_get_full): Update.
10518
10519         * class.c (inflate_generic_type) [GENERICINST]: If the generic
10520         instance is not open, don't bother inflating.
10521         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
10522         parse metadata for inflated classes.
10523         (_mono_class_get): Change GenericContext* parameter to
10524         GenericContainer*.
10525         (mono_class_create_from_typespec): Likewise.  Simplify, and
10526         implement trivially.  All the cases are handled in
10527         mono_class_from_mono_type.  Don't inflate returned class.
10528         (mono_class_get_full): Delegate GENERICINST optimization to
10529         inflate_generic_type.
10530         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
10531
10532 2006-02-16  Dick Porter  <dick@ximian.com>
10533
10534         * socket-io.c (create_object_from_sockaddr): Fix typo.
10535         (create_sockaddr_from_object): Check array lengths before
10536         potentially accessing items off the end.
10537         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
10538         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
10539         (ves_icall_System_Net_Sockets_Socket_Send_internal)
10540         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
10541         length checks to avoid wraparound overflows.
10542         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
10543         contents of the array of sockets
10544         (hostent_to_IPHostEntry2)
10545         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
10546         Check return value of inet_ntop ().
10547         (addrinfo_to_IPHostEntry): Fix typo
10548
10549 2006-02-16  Raja R Harinath  <rharinath@novell.com>
10550
10551         Type metadata parsing doesn't use generic-instantiation information.
10552         * metadata.c (mono_metadata_parse_array_full): Change
10553         MonoGenericContext* parameter to MonoGenericContainer*.
10554         (mono_metadata_parse_type_full): Likewise.
10555         (mono_type_create_from_typespec_full): Likewise.
10556         (mono_metadata_parse_mh_full): Likewise.
10557         (mono_metadata_parse_generic_inst): Likewise.
10558         (do_mono_metadata_parse_generic_class): Likewise.
10559         (do_mono_metadata_parse_type): Likewise.
10560         * metadata-internals.h: Update to changes.
10561         * class.c (mono_class_find_enum_basetype): Likewise.
10562         (mono_class_setup_fields): Likewise.
10563         (mono_class_create_from_typespec): Likewise.
10564         * loader.c (method_from_methodspec): Likewise.
10565         (mono_get_method_from_token): Likewise.
10566         (mono_method_get_header): Likewise.
10567
10568 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10569
10570         * marshal.c: handle additional GENERICINST case (patch from
10571         Thong Nguyen <tum@veridicus.com>).
10572         Fix a few cases where LDIND_I/STIND_I was used for references.
10573
10574 2006-02-16  Raja R Harinath  <rharinath@novell.com>
10575
10576         * reflection.c (mono_reflection_get_token): Remove unused variable.
10577
10578 2006-02-16  Martin Baulig  <martin@ximian.com>
10579
10580         * reflection.c (mono_reflection_get_token): Add support for fields
10581         in instantiated generic types.
10582
10583         * icall.c
10584         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
10585
10586 2006-02-15  Martin Baulig  <martin@ximian.com>
10587
10588         * icall.c
10589         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
10590         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
10591         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
10592         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
10593
10594 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
10595
10596         * class.c, metadata.c, metadata.h, object.c, icall.c,
10597         marshal.c: changed mono_type_get_underlying_type () to do
10598         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
10599         Fixed handling of instantiated generic valuetypes (bug #75479).
10600
10601 2006-02-15  Raja R Harinath  <rharinath@novell.com>
10602
10603         * metadata.c (mono_metadata_decode_signed_value): Simplify.
10604         Delegate to mono_metadata_decode_value, and work on the returned value.
10605
10606         * icall.c (ves_icall_MonoType_GetGenericArguments):
10607         Add consistency check here too.
10608         
10609 2006-02-15  Ankit Jain  <jankit@novell.com>
10610
10611         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
10612         char/short etc.
10613
10614 2006-02-15  Ankit Jain  <jankit@novell.com>
10615
10616         * metadata.c (mono_metadata_decode_signed_value): New function to decode
10617         signed values, used only for representing lower bounds of arrays.
10618         (mono_metadata_parse_array_full): Use new
10619         mono_metadata_decode_signed_value to decode lower bounds.
10620
10621 2006-02-14  Martin Baulig  <martin@ximian.com>
10622
10623         * reflection.c
10624         (mono_reflection_get_token): Support "MonoGenericMethod" and
10625         "MonoGenericCMethod" and allow generic instances / methods.
10626
10627 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
10628
10629         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
10630         to obtain the terminal size using an ioctl.
10631
10632         * object.c (mono_nullable_init): Revert this as nullable reference
10633         types are not valid.
10634         (mono_nullable_box): Ditto.
10635
10636 2006-02-09  Dick Porter  <dick@ximian.com>
10637
10638         * threads.c (mono_thread_detach): Drop a reference to the thread
10639         we're detaching.
10640
10641 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
10642
10643         * object.c (mono_nullable_init): Handle nullable reference types.
10644         (mono_nullable_box): Ditto. Fixes #77446.
10645
10646 2006-02-07  Martin Baulig  <martin@ximian.com>
10647
10648         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
10649
10650 2006-02-07  Ankit Jain  <jankit@novell.com>
10651
10652         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
10653         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
10654         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
10655         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
10656         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
10657         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
10658
10659 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
10660
10661         * class.c (mono_class_create_generic): Set type_token as well.
10662
10663         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
10664         compatible with MS.
10665
10666 2006-02-02  Martin Baulig  <martin@ximian.com>
10667
10668         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
10669         has never been used so far.
10670
10671 2006-02-02  Martin Baulig  <martin@ximian.com>
10672
10673         * mono-debug-debugger.h: Changed comment at the top of this file;
10674         the header is not installed, but it's safe to #include it from
10675         within the JIT.
10676
10677         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
10678         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
10679
10680 2006-02-02  Martin Baulig  <martin@ximian.com>
10681
10682         * mono-debug.h
10683         (MonoSymbolTable): Removed the `metadata_info' field.
10684
10685         * mono-debug.c
10686         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
10687
10688         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
10689         (mono_debugger_add_builtin_types): Removed.
10690         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
10691         (mono_debugger_create_notification_function): We now operate on a
10692         pre-allocated area; take a `gpointer' and return `void'.
10693
10694         * mono-debug-debugger.c
10695         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
10696         (mono_debugger_add_builtin_types): Removed.
10697
10698 2006-02-02  Martin Baulig  <martin@ximian.com>
10699
10700         * threads.c (mono_debugger_create_all_threads): New public method.
10701
10702 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
10703
10704         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
10705         breaks on several platforms.
10706
10707 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
10708
10709         * assembly.c: the VS.NET build doesn't supply default values for
10710         MONO_ASSEMBLIES and MONO_CFG_DIR.
10711
10712 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
10713
10714         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
10715         helper function.
10716
10717         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
10718
10719         * loader.c (method_from_memberref): Fix a warning.
10720
10721         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
10722
10723         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
10724         with explicit layout. Fixes #77433.
10725
10726 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
10727
10728         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
10729         max_interface_id is initialized before using it. Fixes #77398.
10730         (ves_icall_Type_GetInterfaces): Ditto.
10731
10732 2006-01-30  Raja R Harinath  <rharinath@novell.com>
10733
10734         * metadata.c (mono_metadata_parse_method_signature_full): Don't
10735         allocate memory for parameter attributes when parsing memberref
10736         signatures.
10737         * loader.c (mono_loader_set_error_method_load): Don't warn.
10738         (method_from_memberref): Ensure MissingMethodException gets thrown
10739         if method is not found.  Make warning more informative.
10740
10741 2006-01-29  Raja R Harinath  <harinath@gmail.com>
10742
10743         Fix #77397
10744         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
10745         return true if is byref.
10746         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
10747         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
10748         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10749
10750 2006-01-27  Raja R Harinath  <rharinath@novell.com>
10751
10752         Fix tests/find-method.2.il
10753         * loader.c (find_method, find_method_in_class): Remove is_inflated
10754         argument.  Revert 2006-01-18 change.
10755         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
10756         is generic, search for method in its generic definition.
10757         * class.c (mono_class_setup_vtable_general): Print generic
10758         arguments of generic types in debugging printf.
10759
10760 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
10761
10762         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
10763
10764         * threads.c (mono_threads_request_thread_dump): New helper function.
10765
10766 2006-01-25  Raja R Harinath  <rharinath@novell.com>
10767
10768         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
10769
10770 2006-01-25  Ankit Jain  <jankit@novell.com>
10771
10772         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
10773         move definition to ..
10774         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
10775         
10776 2006-01-25  Ankit Jain  <jankit@novell.com>
10777             Raja R Harinath  <rharinath@novell.com>
10778
10779         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
10780         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
10781         as necessary.
10782
10783 2006-01-25  Martin Baulig  <martin@ximian.com>
10784
10785         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
10786         `MonoDebuggerThread' into debug-debugger.c.
10787
10788 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
10789
10790         * profiler.c: fix printing of data.
10791
10792 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
10793
10794         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
10795           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
10796
10797 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
10798
10799         * object.c: fix deadlock related to string interning.
10800
10801 2006-01-23  Martin Baulig  <martin@ximian.com>
10802
10803         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
10804
10805         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
10806
10807 2006-01-23  Martin Baulig  <martin@ximian.com>
10808
10809         * mono-debug.h: Moved the prototypes of some functions which are
10810         used by the JIT here from mono-debug-debugger.h.
10811
10812 2006-01-21  Martin Baulig  <martin@ximian.com>
10813
10814         * Makefile.am: Don't install mono-debug-debugger.h.
10815
10816 2006-01-21  Martin Baulig  <martin@ximian.com>
10817
10818         * mono-debug-debugger.h: Enforce the private status of this header
10819         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
10820         Moved some stuff from mono-debugger-jit-wrapper.h here.
10821
10822 2006-01-20  Raja R Harinath  <rharinath@novell.com>
10823
10824         * class.c (mono_class_from_typeref): Add a sanity test to help
10825         catch lack of assembly load/search hooks.
10826
10827 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
10828
10829         * marshal.c (emit_struct_conv): Relax the fields with same offset
10830         check even more. Fixes #77230.
10831
10832 2006-01-18  Martin Baulig  <martin@ximian.com>
10833
10834         * loader.c (find_method_in_class): Added `gboolean is_inflated'
10835         argument; if false, we compare the uninstantiated signatures.
10836         (method_from_memberref): Compare the uninstantiated signatures;
10837         fixes #76417.
10838
10839 2006-01-18  Robert Jordan  <robertj@gmx.net>
10840
10841         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
10842         Clear the weak link. Fixes bug #77170.
10843
10844         * gc.c (mono_gchandle_free):
10845         Reflect *-gc.c changes (tiny optimization).
10846
10847 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
10848
10849         * metadata.c (mono_metadata_signature_dup): Applied patch from
10850         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
10851         Fixes #77288.
10852
10853 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
10854
10855         * marshal.c (emit_struct_conv): Allow fields with the same offset when
10856         marshalling from native to managed code. Fixes #77230.
10857
10858 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10859
10860         * threadpool.c: fix problem (Mac only) when more than one asynchronous
10861         connect. Fixes bug #77020.
10862
10863 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
10864
10865         * class.c: fixed id assignement for nested interfaces (bug #77275).
10866         Added also better info for --print-vtable debugging.
10867
10868 2006-01-12  Martin Baulig  <martin@ximian.com>
10869
10870         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
10871         interfaces on-the-fly; fixes #76625.
10872
10873         * class-internals.h
10874         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
10875         don't need that anymore.
10876
10877 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10878
10879         * socket-io.c
10880         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10881         To avoid initing the nested_classes when not needed I turned the
10882         PeerCredData as a toplevel internal class, as it has to be shared
10883         anyways. 
10884
10885         Fixes the CASA issue.
10886
10887 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
10888
10889         * domain.c: Accessors for MonoJitInfo
10890
10891         * profiler-private.h: Add jitinfo to the end jit hook
10892
10893         * profiler.[ch]: Define new hooks, called after jitting which give
10894         the MonoJitInfo that was compiled
10895
10896 2006-01-10  Martin Baulig  <martin@ximian.com>
10897
10898         * class.c (mono_class_setup_events): Add support for generic
10899         classes; fixes #76440.
10900
10901 2006-01-06  Raja R Harinath  <rharinath@novell.com>
10902
10903         Fix #77160.
10904         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
10905         on passed-in method.
10906
10907 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
10908
10909         * object.c (mono_runtime_invoke_array): Add Nullable support.
10910
10911         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
10912
10913 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
10914
10915         * file-io.c: Don't consider sockets as directory and avoid an endless
10916         loop. Fix bug #76966.
10917
10918 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
10919
10920         * object.c (mono_nullable_init): New helper function.
10921         (mono_nullable_box): Ditto.
10922
10923         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
10924
10925         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
10926
10927         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
10928         
10929 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
10930
10931         * class.c (mono_class_is_assignable_from): Make T assignable to 
10932         Nullable<T>.
10933
10934 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
10935
10936         * appdomain.c: Bump corlib version to 46.
10937         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
10938         serialization purpose) and changed ves_icall_System_Reflection_
10939         Assembly_get_code_base signature to accept a boolean (to escape, or 
10940         not, the assembly code base).
10941
10942 2005-12-23  Dick Porter  <dick@ximian.com>
10943
10944         * icall.c: 
10945         * threads-types.h: 
10946         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
10947         CreateEvent icall now returns "created" boolean parameter.
10948
10949 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
10950
10951         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
10952         #76967.
10953
10954         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
10955         when attr_klass is an interface. Fixes #77045.
10956
10957 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
10958
10959         * marshal.c (emit_struct_conv): Fix previous patch.
10960         
10961         * marshal.c (emit_struct_conv): Add a check for fields with the same
10962         offset.
10963
10964 2005-12-20  Raja R Harinath  <rharinath@novell.com>
10965
10966         Fix regression in Mono.C5.
10967         * class.c (mono_class_create_generic): If 'klass' is an interface
10968         set up the interface offsets.
10969         (mono_class_is_assignable_from): Don't throw away generic arguments.
10970
10971 2005-12-19  Raja R Harinath  <rharinath@novell.com>
10972
10973         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
10974         type parameters.
10975
10976 2005-12-15  Raja R Harinath  <rharinath@novell.com>
10977
10978         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
10979         dead store.
10980         (do_mono_metadata_parse_generic_class): Don't pass the current
10981         generic context when parsing the type being instantiated: it
10982         cannot use it, anyway.
10983
10984         * loader.c (method_from_memberref): Don't inflate a signature if
10985         it doesn't contain any type parameters.
10986
10987 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
10988
10989         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
10990
10991 2005-12-14  Martin Baulig  <martin@ximian.com>
10992
10993         * class.c
10994         (mono_type_get_name_recurse): Don't return null for type
10995         parameters and open generic classes.
10996         (mono_class_setup_methods): Don't exclude generic instances.
10997         (mono_get_unique_iid): Use different IDs for different
10998         instantiations of the same generic type.
10999         (mono_class_setup_vtable): Only use setup_generic_vtable() for
11000         open generic instances; create a normal vtable for closed generic
11001         instances.
11002         (mono_class_setup_vtable_general): We're now also called for
11003         closed generic instances.
11004
11005         * reflection.c
11006         (mono_reflection_bind_generic_parameters): Correctly use
11007         mono_metadata_lookup_generic_inst() everywhere.
11008
11009 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
11010
11011         * object.c (mono_class_create_runtime_vtable): Call 
11012         mono_class_setup_vtable ().
11013
11014         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
11015         function.
11016         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
11017         #76959.
11018
11019         * loader.c (mono_loader_set_error_type_load): Print the type load
11020         warnings to the console so they are more visible to the user.
11021         (mono_loader_set_error_method_load): Ditto.
11022
11023         * reflection.c (ensure_runtime_vtable): Revert the last change as it
11024         is still broken.
11025         
11026         * reflection.c (ensure_runtime_vtable): Fix build.
11027
11028         * reflection.c (ensure_runtime_vtable): Disable an optimization which
11029         doesn't work in all cases.
11030
11031 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
11032
11033         * object.c (mono_array_new_full): Treat a single dimensional array
11034         with 0 lower bounds as an szarray. Fixes #76973.
11035
11036         * reflection.c (custom_attr_visible): Really fix this.
11037
11038 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
11039
11040         * reflection.c (custom_attr_visible): Allow nested public attributes
11041         as well.
11042
11043         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
11044         interface check.
11045
11046 2005-12-12  Raja R Harinath  <harinath@gmail.com>
11047
11048         * class.c (set_generic_param_owner): Delete.
11049         (mono_class_create_from_typedef): Don't set ->owner field of
11050         generic parameters to "param containers" of enclosing classes.
11051         * reflection.c (mono_reflection_initialize_generic_parameter):
11052         Likewise.
11053
11054 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
11055
11056         * reflection.c (custom_attr_visible): Fix build.
11057
11058 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
11059
11060         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
11061         private attributes.
11062         
11063         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
11064         handling of null parameter defaults.
11065
11066 2005-12-09  Raja R Harinath  <rharinath@novell.com>
11067
11068         * class.c (mono_class_from_generic_parameter): Don't set
11069         klass->generic_container.
11070         (my_mono_class_from_generic_parameter): Likewise.
11071
11072 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
11073
11074         * reflection.c (load_public_key): Fix a warning.
11075         (method_encode_code): Fix unaligned accesses.
11076
11077 2005-12-07  Martin Baulig  <martin@ximian.com>
11078
11079         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
11080
11081         * reflection.c
11082         (write_generic_param_entry): Encode our custom attrs.
11083
11084         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
11085
11086 2005-12-07  Martin Baulig  <martin@ximian.com>
11087
11088         * reflection.c (encode_new_constraint): Removed; we don't use the
11089         `NewConstraintAttribute' anymore.
11090
11091 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
11092
11093         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
11094         not fire a TypeResolve event when Assembly.GetType () is called.
11095
11096 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
11097
11098         Beginning of support for nullable types in the runtime. Parts of
11099         this patch are from Martin.
11100
11101         * appdomain.c (MONO_CORLIB_VERSION): Bump
11102
11103         * domain.c (mono_init_internal): get the nullable type
11104
11105         * class.c (mono_class_is_nullable): New method
11106         (mono_class_get_nullable_param): New mehod
11107         (mono_class_create_generic): In types T? set cast_class to T
11108
11109         * class-internals.h (MonoDefaults): new nullable default class
11110         (mono_class_get_nullable_param, mono_class_get_nullable_param):
11111         new methods.
11112
11113 2005-12-05  Raja R Harinath  <rharinath@novell.com>
11114
11115         * metadata.c (select_container): New.  Refactor code to select the
11116         appropriate GenericContainer given the type of generic parameter
11117         we are looking for.
11118         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
11119         not a MonoGenericContext.  Use select_container.  Update parameters.
11120         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
11121         and MONO_TYPE_MVAR.
11122         (unwrap_arrays): Remove duplicate tests.
11123         (find_generic_param): Rename from 'has_same_context'.  Now walks a
11124         generic instantiated class to find any arguments that are generic
11125         parameters.
11126         (mono_type_create_from_typespec_full): Use find_generic_param to
11127         avoid evicting some generic instantiations from the typespec
11128         cache.
11129
11130 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
11131
11132         * reflection.c: fixed writing of doubles on ARM FPA.
11133
11134 2005-12-02  Robert Jordan  <robertj@gmx.net>
11135
11136         * icall.c: Fixed EventInfo.ReflectedType (#76829).
11137
11138 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11139
11140         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
11141         least on SUSE 10 they are not the same (on debian, they are just the
11142         same thing).
11143
11144 2005-12-01  Raja R Harinath  <rharinath@novell.com>
11145
11146         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
11147         DeclaringType for VARs and MVARs.
11148         * class.c (set_generic_param_owner): Fix initialization of owner
11149         fields.
11150
11151 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11152
11153         * icall.c: fixed Enum.ToObject() to correctly convert the values.
11154
11155 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11156
11157         * threadpool.c: workaround for a bug that shows up on the Mac:
11158         select()+connect() on a blocking socket is not like it should
11159         be, so we proceed to connect() in that case, wasting the I/O
11160         threadpool thread until connect succeedes. Fixes bug #75436.
11161
11162 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11163
11164         * threadpool.c: fix typo when setting file descriptor states.
11165
11166 2005-11-28  Raja R Harinath  <rharinath@novell.com>
11167
11168         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
11169         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11170         create a temporary signature container.
11171         (mono_metadata_parse_generic_param): Update to changes.
11172         (mono_type_create_from_typespec_full): Update to changes.
11173         * loader.c (method_from_memberref): Don't use a
11174         MonoGenericContainer while parsing a memberref signature.
11175         (method_from_methodspec): Remove dead-store of the 'container'
11176         variable.  It's overwritten before use.
11177
11178         * metadata.c (mono_type_create_from_typespec_full): Make debugging
11179         checks tighter.
11180         (mono_metadata_parse_generic_param): Likewise.
11181         * loader.c (find_method_in_class): Does not need a
11182         MonoGenericContainer.  Use 'mono_method_signature' rather than
11183         'mono_method_signature_full'.
11184         (find_method, mono_get_method_constrained, method_from_memberref):
11185         Update to changes.
11186
11187         * metadata.c (mono_type_create_from_typespec_full): Ensure that
11188         owner-less generic-parameters are never evicted from the typespec
11189         cache.
11190
11191         * loader.c (method_from_memberref): Don't use the current context
11192         when parsing signatures.
11193         (method_from_methodspec, mono_get_method_from_token): Update to changes.
11194
11195         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
11196         side-effects in g_assert.
11197         * loader.c (mono_get_method_from_token): Resolve klass earlier so
11198         that we don't potentially lose information.
11199
11200 2005-11-26  Dick Porter  <dick@ximian.com>
11201
11202         * icall.c:
11203         * threads.c: icalls to implement basic (ie, not named)
11204         System.Threading.Semaphore.
11205
11206 2005-11-24  Dick Porter  <dick@ximian.com>
11207
11208         * process.c
11209         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11210         Use GetProcessId() if it's available.
11211
11212 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
11213
11214         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
11215
11216 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11217             Ankit Jain  <jankit@novell.com>
11218
11219         * loader.c (mono_get_method_from_token): Initialize 'method' field
11220         of all generic parameters before parsing the signature.  Remove
11221         code that "fixed"-up MVAR references.
11222
11223 2005-11-23  Ankit Jain  <jankit@novell.com>
11224
11225         * metadata.c (mono_metadata_has_generic_params):
11226         (mono_metadata_load_generic_param_constraints):
11227         (mono_metadata_load_generic_params): Move duplicate code ...
11228         (mono_metadata_get_generic_param_row): ... here. Returns the
11229         first row-id in GenericParam table for a given owner (token).
11230         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
11231         prototype.
11232
11233 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11234             Ankit Jain  <jankit@novell.com>
11235
11236         * metadata.c (mono_metadata_class_equal): Pass signature_only when
11237         comparing VARs too.
11238         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
11239         type->data.generic_param only if the type is an MVAR.
11240         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
11241         leak owner-less VARs and MVARs into managed space.
11242
11243 2005-11-21  Martin Baulig  <martin@ximian.com>
11244
11245         * class-internals.h
11246         (MonoMethod): Moved the `generic_container' here from
11247         `MonoMethodNormal' since we now also need it for
11248         `MonoMethodPInvoke';
11249         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
11250         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
11251         an union containing both `MonoMethodNormal' and
11252         `MonoMethodPInvoke'.
11253
11254         * loader.c
11255         (mono_get_method_from_token): Allow implementing generic methods
11256         as interncalls.
11257
11258         * threads.c
11259         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
11260         icall.
11261
11262 2005-11-17  Dick Porter  <dick@ximian.com>
11263
11264         * icall.c: 
11265         * process.h: 
11266         * process.c: Split the Process Start_internal icall into
11267         ShellExecuteEx_internal and CreateProcess_internal, which are
11268         called depending on whether UseShellExecute is true.  Fixes bug
11269         76670.
11270
11271         * appdomain.c (MONO_CORLIB_VERSION): Incremented
11272
11273 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
11274
11275         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
11276         'msize' parameters, use the information in 'mspec' instead.
11277         (emit_object_to_ptr_conv): Ditto.
11278
11279         * marshal.c (emit_struct_conv): Handle explicit layout structs with
11280         fields out of order. Fixes #76733.
11281
11282 2005-11-17  Ankit Jain  <jankit@novell.com>
11283
11284         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
11285
11286 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
11287
11288         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
11289           bug #76575.
11290
11291 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11292
11293         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
11294         for types with non-auto layout. Fixes #76717.
11295
11296 2005-11-16  Ankit Jain  <jankit@novell.com>
11297
11298         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
11299         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
11300         if generic_context is null.
11301           (mono_metadata_generic_param_equal): param->owner can be null.
11302           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
11303         null.
11304
11305 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11306
11307         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
11308         the correct value.
11309
11310 2005-11-15  Martin Baulig  <martin@ximian.com>
11311
11312         * object.c (set_value): Use mono_class_from_mono_type() instead of
11313         the hack for generic instances; fixes #76136.
11314
11315 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
11316
11317         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
11318         fields.
11319
11320         * image.c (load_metadata_ptrs): Initialize the new fields.
11321
11322         * reflection.c (create_dynamic_mono_image): Ditto.
11323
11324         * reflection.c (build_compressed_metadata): Use the new fields.
11325
11326         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
11327         icall.
11328
11329         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
11330         icall.
11331         
11332 2005-11-15  Ankit Jain  <jankit@novell.com>
11333             Raja R Harinath  <harinath@gmail.com>
11334
11335         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
11336         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
11337         new per-generic_container cache if the cached MonoType's context matches
11338         the current context.
11339           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
11340         to the expected context.
11341           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
11342
11343 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11344
11345         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
11346         we changed the signature of an icall.
11347         * icall.c: Modify to mono_double_ParseImpl return true/false 
11348         depending on the success, instead of throwing the exception. This will
11349         help us in Double.TryParse methods.
11350         
11351 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
11352
11353         * marshal.c (emit_marshal_object): Throw an exception when
11354         marshalling 'object' instead of crashing. Fixes #76696.
11355
11356 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11357
11358         * class-internals.h: Add prototype for mono_type_get_full_name ().
11359
11360 2005-11-11  Dick Porter  <dick@ximian.com>
11361
11362         * threads.c (mono_thread_manage): Make sure the main thread has
11363         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
11364
11365 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11366
11367         * loader.c (mono_loader_set_error_type_load): Log a warning to the
11368         console about the missing type.
11369         (mono_loader_set_error_method_load): Ditto.
11370
11371 2005-11-09  Miguel de Icaza  <miguel@novell.com>
11372
11373         * mono-config.c (mono_get_config_dir): Set the system defaults if
11374         none is specified.
11375
11376         * assembly.c (mono_set_dirs): New API entry point to set the
11377         assembly and the config directory in one call
11378
11379 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
11380
11381         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
11382         the ftnptr was created from a delegate in a domain other than the
11383         current domain. Fixes #75377.
11384
11385         * exception.h exception.c: Add mono_get_exception_not_supported ().
11386
11387 2005-11-08  Martin Baulig  <martin@ximian.com>
11388
11389         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
11390
11391 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
11392
11393         * security-manager.h: Added definitions to deal with strongname key 
11394         pairs bigger (and smaller) than 1024 bits.
11395         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
11396         adjust wrt the public key length being used.
11397
11398 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
11399
11400         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
11401           Windows build (r51396-51397).
11402
11403 2005-11-03  Martin Baulig  <martin@ximian.com>
11404
11405         * class.c (mono_class_setup_vtable_general): Also add generic
11406         methods to the vtable; fixes #76581.
11407
11408 2005-11-01  Miguel de Icaza  <miguel@novell.com>
11409
11410         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
11411         sure that we lookup GetString method from the System.Text.Encoding
11412         class, not the derived class or we get an empty method.
11413
11414         Fixed class #76612.
11415
11416 2005-10-25  Miguel de Icaza  <miguel@novell.com>
11417
11418         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
11419         if it has been previously set (embedders). 
11420
11421         Make mono_set_rootdir available also on Unix.
11422
11423 005-10-24  Robert Jordan  <robertj@gmx.net>
11424
11425         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
11426
11427 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
11428
11429         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
11430         only calls which are made to native code use this flag.
11431
11432         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
11433
11434 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
11435
11436         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
11437         Add support for FieldBuilders.
11438
11439 2005-10-29  Martin Baulig  <martin@ximian.com>
11440
11441         * mono-debug.c
11442         (mono_debug_using_mono_debugger): New public method; returns
11443         whether we're running inside the debugger.
11444
11445 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
11446
11447         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
11448         for Method/Constructor/FieldBuilders.
11449
11450 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
11451
11452         * reflection.c (module_add_cattrs): Save custom attributes for global methods
11453         and fields as well.
11454
11455 2005-10-26  Martin Baulig  <martin@ximian.com>
11456
11457         * mono-debug-debugger.c
11458         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
11459
11460 2005-10-24  Raja R Harinath  <harinath@gmail.com>
11461
11462         * icall.c (base64_to_byte_array): Don't pass an out-of-range
11463         integer to isspace.
11464
11465 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
11466
11467         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
11468         when passing valuetypes byref. Fixes #76502.
11469
11470 2005-10-19  Jackson Harper  <jackson@ximian.com>
11471
11472         * profiler.c: Don't put a . in front of types that are not in a
11473         namespace.
11474
11475 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
11476
11477         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
11478
11479 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
11480
11481         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
11482         #76436.
11483         (mono_marshal_get_ldflda_wrapper): Fix a warning.
11484
11485 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11486
11487         * assembly.c metadata-internals.h icall.c: Define an additional
11488         parameter for mono_assembly_name_parse_full, so we can avoid creating
11489         S.R.AssemblyName.Version when no version info wasn't passed.
11490         
11491 2005-10-09  Miguel de Icaza  <miguel@novell.com>
11492
11493         * class.c (mono_type_get_full_name): Reimplement method that was
11494         removed. 
11495
11496         * image.c: Some docs
11497
11498 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
11499
11500         * profiler.c (output_newobj_profile): Fix printing of Total memory
11501         on x86.
11502
11503 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
11504
11505         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
11506
11507 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
11508
11509         * threads.c: remove debug output.
11510
11511 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
11512
11513         * threads.c (mono_thread_manage): Fix crashes if more than 64
11514         threads need to be aborted. Hopefully fixes #75899.
11515
11516         * assembly.c (mono_stringify_assembly_name): New helper function.
11517
11518         * class.c: Use mono_stringify_assembly_name instead of the similar
11519         static function.
11520
11521         * assembly.h assembly.c: Add support for calling a postload search 
11522         hook if an assembly cannot be loaded.
11523
11524         * appdomain.c: Register new search hooks which call the AssemblyResolve
11525         events in AppDomain. Fixes #75231
11526
11527 2005-10-07  Martin Baulig  <martin@ximian.com>
11528
11529         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
11530         methods without debug info.
11531
11532 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
11533
11534         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
11535         wrappers.
11536
11537 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11538
11539         * file-io.c: now that we return symlinks, use lstat and, when the file
11540         is a symbolic link, stat, to get the file attributes. Also avoid the
11541         conversion to/from utf16/external.
11542
11543 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
11544
11545         * class.c (mono_class_layout_fields): Compute klass->has_references
11546         correctly if an embedded valuetype is not yet initialized. Fixes
11547         #76331.
11548
11549 2005-10-04  Martin Baulig  <martin@ximian.com>
11550
11551         * metadata.c
11552         (mono_metadata_load_generic_param_constraints): New public
11553         function; splitted the constraints loading out from
11554         mono_metadata_load_generic_params().
11555
11556         * class.c (mono_class_create_from_typedef): Call
11557         mono_metadata_load_generic_param_constraints() after setting up
11558         the type and creating our parent; fixes #75329.
11559
11560 2005-10-04  Martin Baulig  <martin@ximian.com>
11561
11562         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
11563         non-dynamic parent classes.
11564
11565 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
11566
11567         * file-io.c : win32 build fix (ETXTBSY seems not found).
11568
11569 2005-10-04  Martin Baulig  <martin@ximian.com>
11570
11571         * reflection.c
11572         (mono_image_get_methodspec_token): Make the cache actually work;
11573         fixes #75974.
11574
11575 2005-10-04  Martin Baulig  <martin@ximian.com>
11576
11577         * class.c (mono_class_name_from_token): Removed the unneccessary
11578         `MonoGenericContext *' argument.
11579
11580 2005-10-04  Martin Baulig  <martin@ximian.com>
11581
11582         * loader.c
11583         (method_from_methodspec): Make the caching work again; fixes the
11584         performance regression from #76262.
11585
11586 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11587
11588         * file-io.c:
11589         * file-io.h:
11590         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
11591         GetFileSystemEntries that performs the same work but without going
11592         into io-layer, locking, etc.
11593
11594 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
11595
11596         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
11597         ThreadState_Stopped as well. Fixes #76047.
11598
11599 2005-09-29  Martin Baulig  <martin@ximian.com>
11600
11601         * class.c
11602         (inflate_generic_context): If the new context has a `gmethod', set
11603         its `container' that that gmethod's `container'.
11604
11605         * metadata.c
11606         (mono_metadata_parse_generic_param): Simplify things;
11607         `generic_container = generic_context->container;' is just fine.
11608
11609         * loader.c (method_from_methodspec): Code cleanups.
11610
11611 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
11612
11613         * decimal.c: fix warning (and let gcc generate correct
11614         code on ARM with optimizations).
11615
11616 2005-09-28  Martin Baulig  <martin@ximian.com>
11617
11618         * loader.c
11619         (method_from_memberref): Added `MonoGenericContext *class_context'
11620         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
11621         (method_from_methodspec): If we're a memberref, use the enclosing
11622         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
11623
11624 2005-09-28  Martin Baulig  <martin@ximian.com>
11625
11626         * object.c (mono_runtime_invoke_array): Added support for
11627         MONO_TYPE_GENERICINST; fixes #75917.
11628
11629 2005-09-27  Martin Baulig  <martin@ximian.com>
11630
11631         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
11632         `k->byval_arg.type' to determine the actual type.
11633
11634         * loader.c (method_from_methodspec): Removed some hacks.
11635
11636 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
11637
11638         * class-internals.h (mono_field_is_deleted): Do the test for
11639         rtspecialname before we check the actual name of the field. This
11640         prevents us from dereferencing a pointer into the string table,
11641         saving us from accessing a few pages
11642
11643         * *.c: Replace the use of {Enter,Leave}CriticalSection with
11644         macros. This will allow a deadlock debugger to easily be plugged
11645         in.
11646
11647 2005-09-27  Martin Baulig  <martin@ximian.com>
11648
11649         * loader.c (method_from_methodspec): Create a "signature"
11650         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
11651
11652 2005-09-27  Martin Baulig  <martin@ximian.com>
11653
11654         * class.c
11655         (inflate_generic_class): Correctly set the new context's
11656         container.
11657
11658         * loader.c
11659         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
11660         instead of a `MonoGenericContext *'.
11661         (mono_method_signature_full): Take a `MonoGenericContainer *'
11662         instead of a `MonoGenericContext *'.
11663
11664         * metadata.c
11665         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
11666         instead of a `MonoGenericContext *'.
11667         (mono_metadata_parse_method_signature_full): Likewise.
11668
11669 2005-09-26  Martin Baulig  <martin@ximian.com>
11670
11671         * class.c
11672         (mono_class_from_generic_parameter): Set `klass->generic_container'
11673         (mono_class_from_generic_parameter): Likewise.
11674         (mono_bounded_array_class_get): We inherit the generic container
11675         from the element class.
11676
11677         * loader.c
11678         (find_method, find_method_in_class): Take a `MonoGenericContext *'
11679         argument rather than computing it here.
11680         (method_from_memberref): Correctly set the generic context before
11681         parsing the signature.  Fixes #75681.
11682
11683 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
11684
11685         * object.c (mono_class_has_special_static_fields): Fix warnings.
11686
11687 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11688
11689         * assembly.c: Add parse_public_key function, to
11690         par the public keys. Also added mono_assembly_name_parse_full,
11691         to define it the parsed key should be freed or not.
11692         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
11693         to parse a long format assembly name.
11694         * metadata-internals.h: Keep mono_assembly_name_parse_full as
11695         private, since calling it to preserve the key requires
11696         freeing it manually.
11697         
11698 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
11699
11700         * locales.c : removed HAVE_ICU part.
11701
11702 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
11703
11704         * object.c (mono_class_create_runtime_vtable): Avoid calling 
11705         field_is_special_static if the klass has no special static fields.
11706
11707         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
11708         (MonoCachedClassInfo): Likewise.
11709
11710         * object.c (mono_class_has_special_static_fields): New helper function.
11711
11712 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11713
11714         * class.c (mono_class_create_from_typedef): Don't call 
11715         interfaces_from_typedef_full for enums.
11716         (mono_class_create_from_typedef): Compute the base types of enums directly
11717         without calling mono_class_setup_fields ().
11718         (mono_class_find_enum_basetype): New helper function.
11719
11720         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
11721         one place inside the string heap.
11722         
11723 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
11724
11725         * class.c: locking fixes, code cleanups, some docs added.
11726         Allocate some data structures in the image mempool.
11727
11728 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11729
11730         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
11731         the example code.
11732         
11733 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
11734
11735         * class-internals.h, class.c, reflection.c: reduce memory taken by
11736         MonoClass.
11737
11738 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
11739
11740         * metadata.c, metadata.h, loader.h: documentation updates, code and
11741         API cleanups.
11742
11743 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11744
11745         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
11746         the example code.
11747
11748         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
11749         page faults caused by the runtime while reading metadata.
11750
11751 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11752
11753         * socket-io.c: the field names were changed 3 months ago and no one
11754         realized until bug #76077 got filed!
11755
11756 2005-09-20  Martin Baulig  <martin@ximian.com>
11757
11758         * icall.c (assembly_icalls): Removed some unused debugger icalls.
11759
11760 2005-09-20  Martin Baulig  <martin@ximian.com>
11761
11762         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
11763         write the rank into the class entry.
11764
11765 2005-09-20  Martin Baulig  <martin@ximian.com>
11766
11767         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
11768
11769 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
11770
11771         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11772
11773         * icall.c (custom_attrs_defined_internal): New icall.
11774
11775         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
11776         function.
11777         (mono_custom_attrs_construct_by_type): New helper function.
11778
11779 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
11780
11781         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
11782         terminate the resulting string. Fixes #76123.
11783
11784 2005-09-16  Martin Baulig  <martin@ximian.com>
11785
11786         * mono-debug.c
11787         (mono_debug_add_method): Ignore inflated methods for the moment.
11788
11789 2005-09-14  Martin Baulig  <martin@ximian.com>
11790
11791         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
11792
11793 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
11794
11795         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
11796         return a success/failure indication.
11797         (mono_metadata_interfaces_from_typedef_full): Ditto.
11798         (get_constraints): Ditto.
11799
11800 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
11801
11802         * marshal.c (emit_marshal_array): Fix handling of null arrays.
11803         
11804         * marshal.c (emit_marshal_array): Add support for returning string
11805         arrays from delegates. Fixes #76063.
11806
11807         * marshal.c: Use the emit_ldloc/stloc macros where possible.
11808
11809 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
11810
11811         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
11812         icall.
11813
11814 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
11815
11816         * reflection.c icall.c: Fix after mono_get_exception_type_load
11817         signature change.
11818
11819         * assembly.c (mono_assembly_get_assemblyref): New helper function.
11820         (mono_assembly_load_reference): Use the new helper.
11821
11822         * class-internals.h (MonoLoaderError): New structure containing 
11823         information about type loading errors.
11824
11825         * class-internals.h loader.c: Add APIs to store per-thread loader
11826         error information.
11827
11828         * loader.c class.c: Set the loader error if needed.
11829
11830         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
11831
11832 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
11833
11834         * decimal.c: fixed to handle the broken ARM fp format.
11835
11836 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
11837
11838         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
11839         broken.
11840
11841 2005-09-06  Martin Baulig  <martin@ximian.com>
11842
11843         * domain.c (supported_runtimes): Added v2.0.50727.
11844
11845 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
11846
11847         * culture-info.h: reduce the size of some structures.
11848
11849 2005-09-05  Martin Baulig  <martin@ximian.com>
11850
11851         Reflect latest API changes in the August CTP.
11852
11853         * icall.c
11854         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
11855         ("MonoType.HasGenericArguments"): Removed.
11856         ("MonoMethod.BindGenericParameters"): Renamed to
11857         "MakeGenericMethod".
11858         ("MethodBuilder.BindGenericParameters"): Renamed to
11859         "MakeGenericMethod".    
11860
11861 2005-09-05  Martin Baulig  <martin@ximian.com>
11862
11863         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
11864
11865 2005-09-05  Martin Baulig  <martin@ximian.com>
11866
11867         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11868
11869         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
11870         generic_container is non-NULL.
11871
11872 2005-09-05  Martin Baulig  <martin@ximian.com>
11873
11874         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11875
11876         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
11877
11878 2005-08-29  Michal Moskal  <malekith@nemerle.org>
11879
11880         * reflection.c (encode_locals,
11881         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
11882         for large generic types.
11883
11884 2005-09-05  Martin Baulig  <martin@ximian.com>
11885
11886         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11887
11888         * class.c (mono_dup_array_type): New public method.
11889         (mono_metadata_signature_deep_dup): New public method.
11890         (dup_type): Correctly duplicate array and function types.
11891
11892 2005-09-05  Martin Baulig  <martin@ximian.com>
11893
11894         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11895
11896         * reflection.c (get_default_param_value_blobs): Handle generic types
11897         and generic methods.
11898
11899 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
11900
11901         * class.c: Fixed error reporting (method/class were inversed) for 
11902         inheritance demands.
11903         * security-manager.c|h: Added the AppDomain when calling the managed
11904         System.Security.SecurityManager.InheritanceDemand method.
11905
11906 2005-09-01  Raja R Harinath  <rharinath@novell.com>
11907
11908         * reflection.c (encode_marshal_blob): 'marshaltype' and
11909         'marshaltyperef' are alternate sources for the custom marshaler
11910         name.
11911
11912 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
11913
11914         * class.c: fix creation of array classes with rank == 1
11915         (patch by Ankit Jain <jankit@novell.com>).
11916
11917 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
11918
11919         * object.c: fix check for creating the bound data for arrays vs
11920         szarrays.
11921
11922 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11923
11924         * object.c: configuration file name is now based on the executable name,
11925         not the image name. Fixes bug #75931.
11926
11927 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
11928
11929         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
11930         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
11931
11932 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
11933
11934         * rand.c: Use wincrypt.h instead of WinCrypt.h.
11935
11936 2005-08-24  Ankit Jain  <jankit@novell.com>
11937             Raja R Harinath  <rharinath@novell.com>
11938
11939         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
11940           called by it recursively.
11941           (mono_class_init): Remove special case in pending_init handling, since it's
11942           superseded by the fix to mono_class_from_typeref.
11943
11944 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
11945
11946         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
11947         BROKEN_THREAD_START stuff.
11948
11949 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
11950
11951         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
11952         trampoline.
11953
11954         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
11955         
11956         * object.c (mono_delegate_ctor): Replace the original function address with
11957         a delegate trampoline.
11958
11959 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
11960
11961         * icall.c: add boolean argument to base64_to_byte_array and 
11962         InternalFromBase64String to control whether a whitespace-only string
11963         is allowed (or should casue a FormatException to be thrown). We need
11964         this as the behavior has changed between MS.NET 1.x and 2.0, and we
11965         to match the MS behaviour in both profiles.
11966         * appdomain.c: Bump corlib version.
11967
11968 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11969
11970         This patch implements a big portion of publisher policy
11971         support, used to bind assembly versions and redirect
11972         one assembly from version A to version B.
11973
11974         * assembly.c:
11975         New GSList loaded_assembly_bindings, for storing the cached
11976         assembly bindings.
11977         (assembly_binding_maps_name): New static function for checking if a 
11978         assembly binding information maps an assembly name.
11979         (mono_assembly_binding_info_free): New function for freeing
11980         assembly binding information resources.
11981         (get_publisher_policy_info): New static function for retrieving 
11982         assembly binding information from a MonoImage.
11983         (compare_versions): New static function for comparing an assembly
11984         binding information data and the version of an assembly name.
11985         (check_policy_versions): New static function for checking if an
11986         assembly binding info mapping an assembly name is valid for it.
11987         (mono_assembly_load_publisher_policy): New static function for
11988         loading the 'policy.major.minor.MyAssembly' image for an assembly
11989         with an assembly name 'aname'.
11990         (mono_assembly_bind_version): New static function for updating
11991         assembly redirection.
11992         (mono_assembly_apply_binding): New static function for applying
11993         assembly binding.
11994         (search_binding_loaded): New static function for searching 
11995         loaded assembly binding infos in the cache domain.
11996         (mono_assembly_load_full): Don't apply assembly binding for
11997         reflection only assemblies.
11998
11999         * metadata-internals.h: Add MonoAssemblyBindingInfo,
12000         which contains information about assembly binding. Also
12001         declare signature for mono_config_parse_publisher_policy ()
12002         function, used to retrieve pub policy info.
12003         
12004         * mono-config.c:
12005         (publisher_policy_start): New static function used to parse publisher 
12006         policy config files.
12007         (publisher_policy_parser): New static MonoParseHandler containing 
12008         the functions used when parsing config files.
12009         (mono_config_parse_publisher_policy): New function for parsing
12010         publisher policy files.
12011         
12012 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
12013
12014         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
12015
12016         * marshal.c (mono_delegate_free_ftnptr): Ditto.
12017
12018         * object.c (mono_get_addr_from_ftnptr): New helper function.
12019
12020         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
12021
12022         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12023
12024 2005-08-19  Dick Porter  <dick@ximian.com>
12025
12026         * threads.c, threads.h, appdomain.c, appdomain.h,
12027         profiler-private.h, monitor.c, object.c, object-internals.h,
12028         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
12029         store the thread ID, so it can hold a 64 bit value if needed.
12030
12031 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
12032
12033         * reflection.c (mono_reflection_create_dynamic_method): Store the
12034         handle class into the method references as well so ldtoken works in
12035         dynamic methods.
12036
12037         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
12038         types.
12039
12040 2005-08-19  Ankit Jain <jankit@novell.com>
12041
12042         Fix #75847.
12043         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
12044           here rather than using the method signature of a arbitrary function
12045           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
12046           two arguments.
12047           Hack done with Harinath.
12048
12049 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12050
12051         * threadpool.c: disable printing stack traces when we get a exception
12052         in a threadpool thread. I need to do more testing to figure out which
12053         cases actually print this. Fixes bug #75828.
12054
12055 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12056
12057         * icall.c: there might be ignored whitespace after the last '='. This
12058         fixes length computation and bug #75840.
12059
12060 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
12061
12062         * assembly.c (mono_assembly_load_full): Consider .exe extension as
12063         well. Fixes #75809.
12064
12065         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
12066         #75784.
12067         
12068         * reflection.c (create_custom_attr_data): Ditto.
12069
12070 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
12071
12072         * locales.c, culture-info.h : removed RegionLCIDMap.
12073         * culture-info-tables.h : regenerated.
12074
12075 2005-08-16  Martin Baulig  <martin@ximian.com>
12076
12077         * class.c (mono_type_get_name_recurse): Small fix.
12078
12079 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
12080
12081         * locales.c : indentation fixie.
12082
12083 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
12084
12085         * object-internals.h,
12086           locales.h,
12087           locales.c,
12088           culture-info.h,
12089           icall.c : added RegionInfo table support.
12090         * culture-info-table.h : regenerated for region support.
12091
12092 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
12093
12094         * reflection.c (resolve_object): handle all kinds of MonoMethod
12095         including generic ones
12096
12097 2005-08-12  Ankit Jain <jankit@novell.com>
12098
12099         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
12100           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
12101
12102 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
12103
12104         * process.c: Don't close a thread handle when it's NULL. This is a
12105         workaround for bug #75733.
12106
12107 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
12108
12109         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
12110
12111 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
12112
12113         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
12114
12115 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12116
12117         * threadpool.c: if a work item in the thread pool has a callback that
12118         catches a exception, don't propagate it after invoking the callback.
12119         Fixes bug #75336.
12120
12121 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
12122
12123         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
12124
12125         * class-internals.h (MonoCachedClassInfo): Add some new fields.
12126
12127         * class.c (mono_class_init): Load field info lazily in the AOT case.    
12128
12129         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
12130
12131 2005-08-03  Ankit Jain  <jankit@novell.com>
12132
12133         Fix #75683.
12134         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
12135           PInvoke calling convention is 0.
12136
12137 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
12138
12139         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
12140         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
12141
12142 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
12143
12144         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
12145         to handle threads not started by the GC (patch by Michael Meeks
12146         <michael.meeks@novell.com>).
12147
12148 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
12149
12150         * reflection.c: Make buffer used in emitting types larger for some
12151         big generic types (patch by Michal Moskal).
12152
12153 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
12154
12155         * mono-debug.c: Fix some (not all) alignment problems.
12156
12157 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12158
12159         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
12160         Invoke mono_image_load_from_data_full passing the refonly
12161         parameter.
12162
12163         * assembly.c
12164         (mono_assembly_open_from_bundle): Add the refonly argument, 
12165         in order to pass it to other methods it calls to.
12166         (do_mono_assembly_open): Add the refonly argument, in order 
12167         to pass it to other methods it calls to.
12168         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
12169         the refonly parameter to it.
12170
12171         * image.c: Add loaded_images_refonly_hash and
12172         loaded_images_refonly_guid_hash to cache the reflection
12173         only loaded images.
12174         (mono_images_init): Initialize the hash tables used for
12175         caching the reflection only images.
12176         (load_modules): Invoke mono_image_open_full passing the refonly
12177         parameter to load the modules the correct way.
12178         (build_guid_table): Add the refonly argument, to re-build the 
12179         correct hash table.
12180         (do_mono_image_open): Added the refonly argument, in order to
12181         define it for the loaded image.
12182         (mono_image_loaded_full): New function, which receives an
12183         additional parameter to look for the image in the refonly or
12184         non-refonly section.
12185         (mono_image_loaded): Updated, using mono_image_loaded_full.
12186         (mono_image_loaded_by_guid_full): The same case that happens
12187         with mono_image_loaded_full.
12188         (mono_image_loaded_by_guid): Likewise.
12189         (register_image): Use the ref_only variable inside MonoImage
12190         to decide in which hash table store the current image.
12191         (mono_image_open_from_data_full): Rename
12192         mono_image_open_from_data to mono_image_open_from_data_full,
12193         adding the refonly argument, to define the ref_only variable 
12194         inside MonoImage.
12195         (mono_image_open_from_data): Return 
12196         mono_image_open_from_data_full.
12197         (mono_image_open_full): Rename mono_image_open to
12198         mono_image_open_full, receiving the new refonly argument,
12199         to pass it to inner methods.
12200         (mono_pe_file_open): Update this function, to open
12201         a MonoImage as a non-refonly image.
12202         (mono_image_close): Use the refonly variable inside
12203         MonoImage to remove the image from the correct caches.
12204
12205         * image.h: Add the signatures of mono_image_open_full,
12206         mono_image_open_from_data_full, mono_image_loaded_full,
12207         mono_image_loaded_by_guid_full.
12208
12209         * metadata-internals.h: Add the ref_only field to 
12210         MonoImage.
12211         
12212 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12213
12214         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
12215         Fix the last behavior, which used to load the assemblies and
12216         extract MonoReflectionAssemblyName information, instead of
12217         extract it from the metadata tables. Needed for Reflection
12218         Only assemblies.
12219         
12220 2005-07-29  Martin Baulig  <martin@ximian.com>
12221
12222         * mono-debug-debugger.c
12223         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
12224         not initialized.
12225
12226         * mono-debug.c
12227         (mono_debug_address_from_il_offset): Check whether we have
12228         debugging support before attempting to take the lock.
12229         (mono_debug_source_location_from_address): Likewise.
12230         (mono_debug_source_location_from_il_offset): Likewise.
12231         (mono_debug_il_offset_from_address): Likewise.
12232         (mono_debug_address_from_il_offset): Likewise.
12233
12234 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
12235
12236         * class.c (mono_class_from_name_case): Add support for dynamic images.
12237         Fixes #75650.
12238
12239         * object.c (mono_class_compute_gc_descriptor): Add a workaround
12240         for #75479.
12241
12242 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12243         
12244         * reflection.c (mono_method_get_object): Fix warning.
12245
12246 2005-07-28  Martin Baulig  <martin@ximian.com>
12247
12248         * mono-debug.c
12249         (mono_debug_add_wrapper): Also write the wrapper type.
12250
12251 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12252
12253         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
12254         
12255         * class.c (mono_class_init): Avoid reading nested classes if the AOT
12256         data indicates the class has none.
12257
12258 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
12259
12260         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
12261         loader lock with the debugger lock. Prevents deadlocks for beagle.
12262
12263         Beagle can now run on an smp box for a weekend without any
12264         issues. Woohoo!
12265
12266 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
12267
12268         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
12269         in a module. Fixes #75629.
12270
12271 2005-07-26  Martin Baulig  <martin@ximian.com>
12272
12273         * mono-debug.c (mono_debug_add_wrapper): New static method.
12274         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
12275         interncall or a wrapper.
12276
12277         * mono-debug.h (MonoDebugWrapperData): New public typedef.
12278         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
12279         (MONO_DEBUGGER_VERSION): Bump to 51.
12280
12281         * mono-debug-debugger.c
12282         (mono_debugger_add_type): Removed this empty function.
12283         (mono_debugger_add_method): Likewise.
12284
12285 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
12286
12287         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
12288         before accessing method->slot.
12289
12290 2005-07-21  Jb Evain  <jbevain@gmail.com>
12291
12292         * reflection.c (method_encode_clauses/class): Handle filters clauses.
12293         Fixes #75010.
12294
12295 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
12296
12297         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
12298         #75587.
12299
12300 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
12301
12302         * image.h image.c: Add mono_image_get_guid () API function.
12303
12304 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
12305
12306         There were issues when multiple threads tried to load
12307         assemblies. A deadlock was created between assemblies_mutex and
12308         mono_domain_assemblies_lock. This fixes the issue by making the
12309         assembly ref counting be lock free. See bug 75586.
12310         
12311         * image.c (mono_image_close): The add ref function here was using
12312         Interlocked operations while the unref was using a mutex and a
12313         --. I don't think this was ever a bug that would be exposed in a
12314         non-pendantic way (ie, by an embedder doing a ref on one thread
12315         and an unref on another), but for the sake of correctness, this is
12316         now Interlocked.
12317
12318         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
12319         (mono_assembly_load_reference): Call mono_assembly_addref rather
12320         than touching the refcount ourselves.
12321         (mono_assembly_close): Use InterlockedDecrement to unref the
12322         assembly. Don't acquire the lock unless it is actually needed.
12323
12324 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12325
12326         * class.c (mono_class_layout_fields): Fix calculation of has_references
12327         for generic types.
12328
12329 2005-07-12  Martin Baulig  <martin@ximian.com>
12330
12331         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12332
12333         * metadata.c
12334         (mono_type_hash): Provide better hashing for generic instances.
12335         (mono_generic_inst_hash): Improve hashing.
12336         (mono_generic_class_hash): Likewise.
12337
12338         * reflection.c (mymono_metadata_type_hash): Improve hashing for
12339         generic instances.
12340
12341 2005-07-12  Martin Baulig  <martin@ximian.com>
12342
12343         * reflection.c (mono_reflection_create_runtime_class): Remove the
12344         hack for generic type definitions and non-`Run' assemblies.
12345         (mono_reflection_bind_generic_parameters): Also use
12346         `klass->wastypebuilder' to check for TypeBuilders.
12347
12348 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12349
12350         * class.c (mono_class_layout_fields): Fix calculation of has_references
12351         for generic types.
12352
12353         * class.c (inflate_generic_class): Fix a leak.
12354         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
12355         for generic types.
12356
12357 2005-07-11  Martin Baulig  <martin@ximian.com>
12358
12359         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
12360         on error.
12361
12362 2005-07-11  Martin Baulig  <martin@ximian.com>
12363
12364         * loader.c (find_method): Also lookup in
12365         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
12366
12367 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12368
12369         * appdomain.c (mono_domain_unload): Don't free the error message
12370         before passing it to mono_get_exception_...
12371
12372         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
12373         
12374 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
12375
12376         * threads.c: try to better guess an available RT signal (bug #75387).
12377
12378 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12379
12380         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
12381         and CACHE_OBJECT.
12382
12383 2005-07-07  Martin Baulig  <martin@ximian.com>
12384
12385         * class.c (mono_type_get_name_full): Return NULL for
12386         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
12387         fixes #75408.
12388
12389 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12390
12391         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
12392         exit the appdomain as well being aborted.
12393
12394         * threadpool.c: Create all threadpool threads inside the root appdomain, and
12395         change back to the root domain after calling managed code. This enables
12396         appdomains using threadpools to be unloaded.
12397
12398 2005-07-07  Martin Baulig  <martin@ximian.com>
12399
12400         * class-internals.h
12401         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
12402         into `MonoDynamicGenericClass' since we only need it for dynamic
12403         types.
12404
12405         * reflection.c (mono_class_bind_generic_parameters): We don't need
12406         to compute the `parent' here.
12407
12408 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
12409
12410         * culture-info-table.h : regenerated.
12411
12412 2005-07-06  Martin Baulig  <martin@ximian.com>
12413
12414         * icall.c
12415         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
12416
12417         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
12418
12419 2005-07-06  Martin Baulig  <martin@ximian.com>
12420
12421         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
12422         we're doing a signature-only comparision; fixes #74945.
12423
12424 2005-07-06  Martin Baulig  <martin@ximian.com>
12425
12426         * class-internals.h (MonoGenericClass): Moved some things out into
12427         a new `MonoInflatedGenericClass' type.  
12428         (MonoInflatedGenericClass): New type; the `klass' of a
12429         `MonoGenericClass' is now computed lazyly in
12430         mono_get_inflated_generic_class().      
12431
12432         * class.c (mono_get_inflated_generic_class): New public function.
12433         (mono_class_inflate_generic_method): Removed the unused
12434         `MonoClass *' argument.
12435         (setup_generic_vtable): Don't call mono_get_inflated_method() on
12436         all the methods.
12437         (mono_class_create_generic): Make this static and merge it with
12438         mono_class_create_generic_2(); we're now called automatically from
12439         mono_get_inflated_generic_class().
12440
12441         * loader.c (mono_method_signature): Call
12442         mono_get_inflated_method() here.
12443
12444 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
12445
12446         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
12447         type of fields with RVA.
12448
12449         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
12450         for this pseudo class.
12451         (my_mono_class_from_generic_parameter): Likewise.
12452         (mono_class_init): Allow interfaces to have cctors.
12453
12454 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12455
12456         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
12457         lazily for AOT methods.
12458
12459 2005-07-05  Martin Baulig  <martin@ximian.com>
12460
12461         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
12462         returns FALSE for a successful match, not TRUE.
12463
12464 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12465
12466         * loader.c (mono_method_get_index): Optimize this a bit.
12467
12468 2005-07-04  Martin Baulig  <martin@ximian.com>
12469
12470         * class.c
12471         (class_compute_field_layout): Move the check for generic type
12472         definitions into mono_class_layout_fields().  Fixes #74684.
12473         (mono_class_from_generic_parameter): Correctly compute
12474         `klass->parent'; fixes #75457.
12475
12476         * reflection.c (register_assembly, register_module): Make sure
12477         `domain->rejobject_hash' is already created.
12478
12479 2005-07-02  Martin Baulig  <martin@ximian.com>
12480
12481         * class-internals.h
12482         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
12483         `MonoDynamicGenericClass'.      
12484
12485 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
12486
12487         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
12488         returned by a field getter is null, since null is a valid value.
12489
12490 2005-07-01  Martin Baulig  <martin@ximian.com>
12491
12492         * reflection.c (mono_reflection_generic_class_initialize): Update
12493         the `dgclass->fields [i].parent' to the correct class.
12494         (mono_image_get_fieldref_token): Use the declaring type, not the
12495         reflected type.
12496
12497 2005-07-01  Martin Baulig  <martin@ximian.com>
12498
12499         * loader.c (find_method): Also look in the interfaces; fixes #75429.
12500
12501 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
12502
12503         * threads.c (thread_cleanup): assert that thread != NULL
12504         (wait_for_tids_or_state_change): We were using the wrong variable
12505         when accessing wait->threads. `i' was always out of the bounds of
12506         the array.
12507
12508 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12509
12510         * loader.c: map user32 and kernel32 to libMonoSupportW
12511
12512 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
12513
12514         * appdomain.c (unload_thread_main): Mark this as WINAPI.
12515
12516 2005-06-28  Martin Baulig  <martin@ximian.com>
12517
12518         * loader.c (method_from_methodspec): Fix #75334.
12519
12520 2005-06-28  Martin Baulig  <martin@ximian.com>
12521
12522         Fix #74953 - Arrays now implement the generic IList<T> interface
12523         on the 2.0 platform.
12524
12525         * class-internals.h (MonoDefaults): Added `generic_array_class'.
12526
12527         * reflection.c (mono_class_bind_generic_parameters): New public
12528         function; similar to mono_reflection_bind_generic_parameters(),
12529         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
12530
12531         * domain.c (mono_init_internal): Try to initialize.
12532         `mono_defaults.generic_array_class' here; this'll only succeed if
12533         we're using the 2.0 corlib.
12534
12535         * icall.c
12536         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
12537         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
12538         (mono_lookup_internal_call): Added support for nested classes.
12539
12540         * loader.c
12541         (mono_get_method_from_token): Set `result->signature->pinvoke' if
12542         we're an interncall and have generic arguments.
12543
12544         * class.c
12545         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
12546         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
12547         instance of System.Array.InternalArray<T> for arrays, so they
12548         implement the generic IList<T> interface.
12549
12550 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
12551
12552         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
12553         (chastamar@yahoo.com). Fixes #75374.    
12554
12555 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
12556
12557         * culture-info-table.h: regenerated.
12558
12559 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12560
12561         * icall.c: handle spaces correctly for base64 strings.
12562
12563 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
12564
12565         * *.c: Kill some warnings.
12566
12567 2005-06-23  Duncan Mak  <duncan@novell.com>
12568
12569         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
12570         that this builds on Solaris 10 (x86).
12571
12572 2005-06-23  Martin Baulig  <martin@ximian.com>
12573
12574         * class.c
12575         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
12576         generic type definitions.
12577
12578 2005-06-23  Martin Baulig  <martin@ximian.com>
12579
12580         Fix #75331.
12581
12582         * metadata.c (mono_class_get_overrides): Renamed to
12583         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
12584         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
12585         pass it to mono_get_method_full().
12586
12587 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
12588
12589         * reflection.c (mono_reflection_create_runtime_class): take the
12590         mono_domain_lock in this method. Prevents deadlocks
12591
12592 2005-06-22  Martin Baulig  <martin@ximian.com>
12593
12594         * loader.c (method_from_methodspec): Fix #75330.
12595
12596 2005-06-22  Martin Baulig  <martin@ximian.com>
12597
12598         * reflection.c (type_get_qualified_name): Use
12599         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
12600         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
12601         argument; use it if we don't have an assembly name.
12602
12603 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
12604
12605         * object.c: In mono_message_init, set "copy out" flag for in
12606         parameters with the [Out] flag.
12607
12608 2005-06-21  Martin Baulig  <martin@ximian.com>
12609
12610         * class.c
12611         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
12612         and MONO_TYPE_PTR.
12613
12614 2005-06-21  Martin Baulig  <martin@ximian.com>
12615
12616         * class.c (mono_class_init): Don't initialize `class->fields' for
12617         generic instances since they're initialized again in
12618         compute_field_layout(). 
12619         (compute_field_layout): Set the field's `generic_info' here; fix
12620         #75320. 
12621
12622 2005-06-21  Martin Baulig  <martin@ximian.com>
12623
12624         * class-internals.h
12625         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
12626
12627         * metadata.c (mono_metadata_generic_method_equal): Also
12628         distinguish the `generic_class'; fixes #75334.
12629
12630 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12631
12632         * domain.c:
12633         * appdomain.c:
12634         * domain-internals.h:
12635         * reflection.c: 'domain_assemblies' field is now protected by its own
12636         lock. Don't call into managed code to run the AssemblyLoad event if we
12637         now there are no registered delegates for it.
12638
12639 2005-06-20  Martin Baulig  <martin@ximian.com>
12640
12641         * class.c (mono_class_is_assignable_from): Use a custom version of
12642         mono_class_has_parent() to make things work for generic instances;
12643         fix #75300.
12644
12645 2005-06-20  Martin Baulig  <martin@ximian.com>
12646
12647         * loader.c (method_from_methodspec): Apply a patch from
12648         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
12649
12650 2005-06-20  Martin Baulig  <martin@ximian.com>
12651
12652         * class.c (mono_class_init): Reverted Zoltan's last change; it
12653         breaks generics.
12654
12655 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
12656
12657         * threads.c (wait_for_tids_or_state_change): Add missing locking.
12658
12659 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12660
12661         * socket-io.c: fix the index in the socket array for writable/error
12662         sockets. Fixes bug #75306.
12663
12664 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
12665
12666         * class.c (mono_class_init): Allow interfaces to have static ctors.
12667
12668 2005-06-17  Martin Baulig  <martin@ximian.com>
12669
12670         * loader.c (method_from_methodspec): Use `context->container' when
12671         parsing the `gmethod->inst'.
12672
12673 2005-06-17  Martin Baulig  <martin@ximian.com>
12674
12675         * class.c (mono_type_get_name_recurse): Don't add the assembly
12676         name for type arguments.
12677
12678 2005-06-15  Martin Baulig  <martin@ximian.com>
12679
12680         * reflection.c (mono_image_get_inflated_method_token): Encode
12681         correct klass; fixes #75260.
12682
12683 2005-06-13 Michal Moskal <malekith@nemerle.org>
12684
12685         * icall.c: Make GetCorrespondingMethod/Constructor take
12686         MonoReflectionMethod method not MonoMethod. Removed
12687         MonoType.GetCorrespondingField, and make
12688         MonoGenericType.GetCorrespondingField take name not
12689         MonoClassField.
12690
12691 2005-06-13  Michal Moskal <malekith@nemerle.org>
12692
12693         * reflection.c (field_encode_signature, encode_locals):
12694          Make sizes of buffers for types larger (for big generic types).
12695          (create_generic_typespec,
12696          mono_reflection_sighelper_get_signature_local,
12697          mono_reflection_sighelper_get_signature_field):
12698          Add asserts for too small buffers.
12699
12700 2005-06-15  Martin Baulig  <martin@ximian.com>
12701
12702         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
12703         if our parent is not a dynamic type.
12704
12705 2005-06-15  Martin Baulig  <martin@ximian.com>
12706
12707         * class-internals.h (MonoTypeNameFormat): New enum.
12708
12709         * class.c
12710         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
12711         (mono_type_get_full_name): Removed.
12712         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
12713         argument instead of the boolean's.
12714
12715         * icall.c (ves_icall_System_MonoType_getFullName):
12716         Added `gboolean assembly_qualified'.    
12717
12718         * reflection.h
12719         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
12720
12721         * reflection.c (mono_reflection_parse_type): Parse the new type
12722         name format.
12723
12724 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12725
12726         * icall.c: no need to convert from utf16 to utf8 and then back again
12727         after the call to GetLogicalDrives.
12728
12729 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12730
12731         * icall.c: frombase64. Fix problems exposed by new tests.
12732
12733 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12734
12735         * icall.c: added internal calls for converting char [] and strings in
12736         base64 into byte [].
12737
12738 2005-06-10  Martin Baulig  <martin@ximian.com>
12739
12740         * class.c (mono_class_create_generic_2): Read the nested classes
12741         from the metadata rather than from `gklass->nested_classes' since
12742         `gklass' might not be initialized yet.
12743
12744 2005-06-09  Duncan Mak  <duncan@novell.com>
12745
12746         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
12747         all public headers. Fixes #74919.
12748
12749 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
12750
12751         * domain.c: The key for proxy_vtable_hash is now a pointer
12752         array. Added new GHashFunc and GCompareFunc functions for this.
12753
12754         * class.h: The list of interfaces in MonoRemoteClass is known in
12755         advance and can't grow (we create a new MonoRemoteClass if needed),
12756         so now the interface array can be allocated together with
12757         MonoRemoteClass.
12758         
12759         * object.c: Added a new method create_remote_class_key.
12760         Fixed mono_remote_class so it does not depend on
12761         mono_upgrade_remote_class.
12762         Removed extend_interface_array.
12763         Added new method clone_remote_class(), which makes a copy of a remote
12764         class and adds a new interface or class to it.
12765         mono_upgrade_remote_class() now creates a new remote class (or gets
12766         it from the cache) if an vtable upgrade is needed. In this way
12767         we make sure that other objects sharing the same remote class
12768         don't get the new vtable with unwanted interfaces.
12769         
12770         * object-internals.h:
12771         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
12772         
12773         * marshal.c: Track changes in mono_upgrade_remote_class().
12774
12775 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
12776         * icall.c: Add runtime methods for obtaining members of inflated
12777         class, which were created from supplied non-inflated members. It
12778         is used in internal Get{Method,Constructor,Field} methods in
12779         System.Type
12780
12781 2005-06-09  Martin Baulig  <martin@ximian.com>
12782
12783         * reflection.c
12784         (mono_reflection_bind_generic_method_parameters): Fix #75169.
12785
12786 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12787         * reflection.c (mono_image_basic_init): Define
12788         Version in MonoDynamicAssembly. 
12789         
12790 2005-06-08  Martin Baulig  <martin@ximian.com>
12791
12792         Fix #75136.
12793
12794         * loader.c
12795         (mono_method_signature_full): New public method; takes a
12796         `MonoGenericContext *'.
12797         (find_method): Use mono_method_signature_full() and pass the
12798         klass'es context to it.
12799
12800         * class.c (mono_class_is_inflated_method): Use
12801         mono_method_signature_full() and pass the context to it.
12802
12803 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
12804
12805         * object.c: add proper locking in mono_remote_class_vtable(),
12806         fixes possible memory corruption.
12807
12808 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
12809
12810         * marshal.c (mono_remoting_marshal_init): set
12811         initialized after initialization.
12812
12813 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12814
12815         * locales.c : hush.
12816
12817 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
12818
12819         * object.c (extend_interface_array): fix really silly
12820         memory corrupting / comparison bug.
12821
12822 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12823
12824         * reflection.c: Functions added to support the creation
12825         of CustomAttributeData, which includes Attribute data
12826         used by ReflectionOnly methods.
12827
12828         * reflection.h:  mono_reflection_get_custom_attrs_data and
12829          mono_custom_attrs_data_construct added (functions exposed).
12830
12831          * icall.c: Added mono_reflection_get_custom_attrs_data
12832          as icall.
12833         
12834 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
12835
12836         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
12837         lupus's request.
12838
12839 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
12840
12841         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
12842
12843         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
12844         dynamic DllImportAttribute.
12845
12846         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
12847         dynamic DllImportAttribute.
12848
12849         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
12850         Fixes #75162.
12851
12852 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12853
12854         * threads.c: avoid segfault when an unstarted thread is aborted.
12855
12856 2005-06-05  KornĂ©l Pál <kornelpal@hotmail.com>
12857
12858         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
12859         Returns the name and version of the runtime for reporting.
12860
12861 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12862
12863         * appdomain.c: bump corlib version.
12864         * object-internals.h: new field in MonoReflectionAssembly.
12865
12866 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12867
12868         * object-internals.h: Carlos forgot to add this field.
12869
12870 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12871
12872         * icall.c: Added create_version to create instances
12873         of Version of MonoReflectionAssemblyName. This change helps
12874         the AssemblyName tests to keep running fine.
12875         
12876 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
12877   
12878         * object.c (mono_method_return_message_restore): A somehow less
12879         intrusive fix for #75138.
12880
12881 2005-06-03  Raja R Harinath  <rharinath@novell.com>
12882
12883         * object.c (mono_method_return_message_restore): Fix computation
12884         of expected number of out args.
12885
12886 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
12887
12888         * reflection.c (mono_image_get_method_info): Fix the case when the
12889         charset is empty.
12890
12891 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
12892
12893         * object.c: Added missing null check in
12894           mono_method_return_message_restore.
12895
12896 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
12897
12898         * reflection.c (mono_image_get_method_info): Handle the case when
12899         dllentry is empty.
12900
12901 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
12902
12903         * object.c: When creating the vtable for a proxy, take into account
12904         all inherited interfaces, not only the ones registered in
12905         iclass->interfaces. This fixs bug #74996.
12906         Also, in mono_method_return_message_restore, verify that the array
12907         of out args has the expected lengh.
12908
12909 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12910
12911         * socket-io.c: update the timeout in Poll when the call is interrupte.
12912
12913 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12914
12915         * socket-io.c: support abort/suspend in Select_internal after last
12916         change.
12917
12918 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12919
12920         * threadpool.c: remove warning.
12921
12922 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12923
12924         * icall.c:
12925         * socket-io.[ch]: Select_internal uses poll() now when available, thus
12926         removing the 1024 limit from select(). Runtime part of the fix for
12927         bug #71203.
12928
12929 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12930
12931         * socket-io.c: when resolving the addresses for the same
12932         host returned by gethostname(), get the local IPs from the interface
12933         list. Loopback addresses are discarded if the are interfaces up with
12934         non-loopback ones. Fixes bug #63265.
12935
12936 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
12937
12938         * appdomain.c, verify.c, object-internals.h, reflection.c:
12939         bumped corlib number to 36, and added new extra_flags field
12940         to ReflectionMethodBuilder and friends.  Fixes #75060.
12941
12942 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
12943
12944         * gc.c: register a new weak link only if the object is non-null
12945         (fixes bug#75047).
12946
12947 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12948
12949         * culture-info.h : short time pattern too.
12950
12951 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12952
12953         * culture-info.h : expand long time pattern string length.
12954
12955 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12956
12957         * culture-info-table.h : update (more French date format; #72788).
12958
12959 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
12960
12961         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
12962         the method is static. Fixes #75029.
12963
12964 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
12965
12966         * reflection.c: Update the table_idx field of method builders after
12967         saving the module, since it can change. This is a workaround for
12968         bug #74914. 
12969
12970 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12971
12972         * culture-info-table.h : update (additional French date format).
12973
12974 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
12975
12976         * icall.c (ves_icall_type_Equals): Revert last change.
12977         
12978         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
12979
12980         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
12981
12982 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
12983
12984         * class-internals.h: Added executioncontext_class field to 
12985         MonoDefaults structure.
12986         * domain.c: Cache System.Threading.ExecutionContext class in 
12987         mono_defaults.
12988         * object.c: Capture the ExecutionContext for asynchroneous calls in
12989          mono_async_result_new.
12990         * object-internals.h: Added execution_context and original_context 
12991         fields to MonoAsyncResult. Added execution_context to MonoThread.
12992         * security-manager.c|.h: Added mono_get_context_capture_method to 
12993         return the capture method (if required by the security manager or by
12994         the framework version used).
12995         * threadpool.c: Apply capture (if present) ExecutionContext in 
12996         mono_async_invoke and revert to original context after it completes.
12997
12998 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
12999
13000         * culture-info-table.h : updated (real hacky solution for zh-CHT).
13001
13002 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
13003
13004         * culture-info-table.h : zh-CHT related workaround.
13005
13006 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13007
13008         * marshal.c (emit_marshal_custom): Add some error checking and call the
13009         methods in the ICustomMarshaler interface. Fixes #74875.
13010         
13011         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
13012         native->managed wrappers.
13013
13014 2005-05-12  Martin Baulig  <martin@ximian.com>
13015
13016         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
13017         here and use the loader lock.
13018
13019         * mono-debug.c: Properly lock when the debugger is not attached.
13020         (mono_debug_init): Release the initial lock if we're not running
13021         in the debugger.
13022
13023 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13024
13025         * marshal.c (emit_marshal_custom): Pass through NULL values without
13026         calling the custom marshalling routines.
13027
13028         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
13029         conversion in structures. Fixes #74882.
13030
13031 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
13032
13033         * culture-info-table.h : zh-* cultures were missing.
13034
13035 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
13036
13037         * threads.c: Added a new event background_change_event which is signaled
13038         when a thread changes its background mode.
13039         Moved here several checks previously done in managed code. The checks
13040         require the thread lock, and using the thread lock in managed code
13041         can result in deadlocks.
13042         Merged Start_internal and Thread_internal into a single method. Now 
13043         Thread_internal does all work of creating and starting a thread.
13044         Added icalls for setting and getting the state of the object. Moved from
13045         managed code to avoid locking there.
13046         Added wait_for_tids_or_state_change() which is called instad of
13047         wait_for_tids when waiting for non-backround threads to end. This method
13048         will return if one of the threads ends or the background_change_event
13049         is signaled.
13050         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
13051         the background mode. This method signals the background_change_event
13052         event.
13053         * icall.c:
13054         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
13055         removed Start_internal.
13056         
13057 2005-05-11  Martin Baulig  <martin@ximian.com>
13058
13059         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
13060         to order of some fields to get proper alignment on 64-bit machines.
13061
13062 2005-05-11  Martin Baulig  <martin@ximian.com>
13063
13064         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
13065         changes as they're broken and completely fuck up the debugger.
13066
13067         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
13068
13069 2005-05-10  Martin Baulig  <martin@ximian.com>
13070
13071         * reflection.c (mono_reflection_generic_class_initialize): Don't
13072         call mono_class_setup_parent() here.
13073
13074 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13075
13076         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
13077         send/receive timeout use an integer in milliseconds. We were using a
13078         struct timeval.
13079
13080 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13081
13082         * locales.c:
13083         (internal_get_cultures): reserve the first slot of the array for the
13084         InvariantCulture, which will be filled in managed code.
13085
13086 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
13087
13088         * reflection.c (mono_image_fill_module_table): Initialize the
13089         GENERATION field as well.
13090
13091 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13092
13093         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
13094         Monitor.Enter on the object.
13095
13096 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
13097
13098         * threads.c: Enable the wait for running threads when exiting.
13099         * icall.c: Suspend all threads before exiting.
13100
13101 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
13102
13103         * assembly.c (mono_assembly_load_reference): Fix warning.
13104
13105 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13106
13107         * threadpool.c: changed the default number of threads per cpu. From now
13108         on, the default will be 20 + (5 * number of cpus) instead of 50.
13109
13110 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
13111
13112         * loader.c (mono_method_get_signature_full): Add locking here.
13113
13114 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
13115
13116         * appdomain.c: Moved methods for parsing and freeing assembly
13117         names to assembly.c.
13118         * assembly.c, domain-internals.h: Created public methods for parsing
13119         assembly names. Fixed mono_assembly_load_with_partial_name:
13120         it now finds the best match, taking into account the version,
13121         token and culture specified in the partial name. Also return
13122         the latest version if no version information is specified.
13123
13124 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
13125
13126         * threadpool.c: replace check for SocketAsyncCall class.
13127
13128 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13129
13130         * threadpool-internals.h:
13131         * Makefile.am: added threadpool-internals.h
13132
13133         * threadpool.c: call mono_unhandled_exception on exceptions not handled
13134         that happen in threadpool threads (tested on MS).
13135         (mono_thread_pool_remove_socket): new function that dispatch any pending
13136         AIO call on a socket that is closing. By now only epoll really needs it,
13137         as select/poll wake up when the socket closes.
13138
13139
13140         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
13141
13142 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
13143
13144         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
13145
13146 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
13147
13148         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
13149
13150 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
13151
13152         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
13153         has an abort request, convert it into a suspend request.
13154
13155 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
13156
13157         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
13158         warning for the usage of `UnmanagedFunctionPointerAttribute' which
13159         is not supported yet.
13160
13161 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13162
13163         * image.c: register assemblies loaded from data (bundles) in the loaded
13164         assemblies hash. Fixes bug #74772.
13165
13166 2005-04-29  Martin Baulig  <martin@ximian.com>
13167
13168         * class.c (mono_type_get_name_recurse): Update to the new naming
13169         schema from the latest .NET 2.x beta2.
13170         (mono_class_setup_vtable_general): If we're a generic instance,
13171         copy the vtable from our generic type definition and inflate all
13172         the methods in it.
13173
13174         * loader.c (find_method): Update to the new naming schema from the
13175         latest .NET 2.x beta2.
13176
13177 2005-04-29  Raja R Harinath  <harinath@gmail.com>
13178
13179         * class.c (mono_class_init): Add a mono_loader_unlock to the
13180         #74734 fix.
13181
13182 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
13183
13184         * icall.c (ves_icall_System_Environment_Exit): Remove the 
13185         suspend_all_other_threads () call for the time being, since it can hang.
13186
13187         * threads.c (mono_thread_manage): Similarly, disable the waiting for
13188         the background threads to exit, since it can also hang.
13189
13190         * class.c (mono_class_init): Applied patch from Ankit Jain 
13191         (radical@gmail.com). Avoid pending init errors when a field refers
13192         to a nested class using a typeref. Fixes #74734.
13193
13194         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
13195         this for dynamic modules.
13196
13197 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13198
13199         * threads.c: don't wait for threads that are in the process of aborting
13200         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
13201         and waiting for background threads to finish. This makes xsp and
13202         mod-mono-server exit without random length delays and/or hangs.
13203
13204 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13205
13206         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
13207
13208 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
13209
13210         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
13211         dynamic types to prevent infinite loops. Fixes #74727.
13212
13213         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
13214         ..._is_assignable_to.
13215
13216 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
13217
13218         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
13219
13220 2005-04-25  Martin Baulig  <martin@ximian.com>
13221
13222         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
13223
13224         * domain.c
13225         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
13226
13227         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
13228
13229         * reflection.c (build_compressed_metadata): Set metadata header
13230         version to 2.0.
13231
13232 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
13233
13234         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
13235         number into an integral and a decimal part. Fixes #70473.
13236
13237         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
13238
13239 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
13240
13241         * culture-info-table.h : reflected the latest locale-builder output.
13242
13243 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13244
13245         * threadpool.c: check for SuspendRequested too when deciding if
13246         mono_thread_interruption_checkpoint should be called.
13247
13248 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13249
13250         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
13251         * threads.c: remove interruption_mutex and use Interlocked instead. When
13252         suspending all the threads, wait for all the suspended events at once.
13253         If we're shutting down and get an APC that is going to be queued,
13254         call mono_thread_execute_interruption immediately, as the thread might
13255         be sleeping on a pthread condition or mutex.
13256
13257         * icall.c: call mono_runtime_set_shutting_down before suspending the
13258         threads.
13259
13260         Fixes bug #74693. And now xsp is happier when exiting.
13261
13262 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
13263
13264         * loader.c (mono_stack_walk): Fix #74690.
13265
13266 2005-04-22  Martin Baulig  <martin@ximian.com>
13267
13268         * mono-debug.h (MonoDebugMethodJitInfo): Added
13269         `MonoDebugMethodJitInfo *jit'.
13270
13271         * mono-debug.c (mono_debug_read_method): Cache the
13272         MonoDebugMethodJitInfo in `address->jit'.
13273         (mono_debug_free_method_jit_info): New public method.
13274
13275 2005-04-22  Martin Baulig  <martin@ximian.com>
13276
13277         * class.c (mono_class_is_assignable_from): Disallow
13278         type parameter -> interface.
13279
13280 2005-04-21  Dick Porter  <dick@ximian.com>
13281
13282         * threads.c (mono_thread_create): Turn an assertion into an error.
13283
13284 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
13285
13286         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
13287         
13288         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
13289         Fix some gcc 4.0 warnings.
13290
13291 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
13292
13293         * file-io.c: fix alt dir separator char on unix systems
13294         and cleanup (fixes bug #71214).
13295
13296 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
13297
13298         * marshal.c: Use CALLVIRT instead of CALL when dispatching
13299         a call to a remote domain, since the method may be an
13300         interface method in the client domain. This fixes bug #74192.
13301
13302 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13303
13304         * threadpool.c: recv/send are now performed before going back to managed
13305         code to save one transition.
13306
13307 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13308
13309         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
13310
13311         * metadata/threadpool.c: removed hack to workaround the bug above.
13312
13313         Fixes bug #74618.
13314
13315 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
13316
13317         * reflection.c reflection.h: Fix handling of parameter defaults in
13318         dynamic methods. Also fixes handling of parameter attributes.
13319         Fixes #74609.
13320
13321         * mono-debug.c (mono_debug_close_image): Fix warning.
13322
13323 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13324
13325         * socket-io.h: replaced old unused field with new 'blocking'.
13326         * threadpool.c: restore socket blocking state on windows(tm).
13327
13328 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
13329
13330         * icall.c: don't return the codebase in the AssemblyName[] returned by
13331         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
13332         * object-internals.h: Removed FIXME (fields were presents) and fixed
13333         versioncompat declaration.
13334
13335 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13336
13337         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
13338         not closed, so don't cleanup when it happens.
13339
13340 2005-04-13  Chris Toshok  <toshok@ximian.com>
13341
13342         * mono-debug-debugger.h: change prototype for
13343         mono_debugger_lookup_type.
13344
13345         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
13346         this function, although it should probably be named
13347         mono_debugger_init_type.
13348
13349 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13350
13351         * threadpool.c: fix non-AIO case.
13352
13353 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
13354
13355         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
13356         the built-in profiler to measure just JIT compilation times.
13357
13358 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13359
13360         * threadpool.c: the epollfd might be closed by another thread at
13361         any time, so ignore EBADF at treat it as a "we're closing" sign.
13362
13363 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13364
13365         * threadpool.c: release the semaphores with a count equals to the number
13366         of working threads in both IO and regular pools. Fixed typo that messed
13367         up the count of IO pool threads. Don't initialize the pipe handles if
13368         we're using epoll.
13369
13370 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13371
13372         * threadpool.c: some systems don't like a NULL when deleting the socket
13373         from epoll.
13374
13375 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13376
13377         * threadpool.c: fix semaphore allocation.
13378
13379 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13380
13381         * threadpool.c: added epoll() based implementation for asynchronous IO
13382         that is used instead of the default poll() when available.
13383         It can be disabled by setting MONO_DISABLE_AIO.
13384
13385 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13386
13387         * threadpool.c: windows needs 'closesocket' and instead of returning
13388         0 when the stream is closed while in select, it returns -1. Fixes bug
13389         #74573.
13390
13391 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
13392
13393         * class.c (class_compute_field_layout): Fix the regression caused by
13394         the previous try.
13395
13396 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13397
13398         * threadpool.c: separate pool for socket async. IO.
13399         * threadpool.h: mono_max_worker_threads is not a global any more.
13400
13401 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
13402
13403         * class.c (class_compute_field_layout): Fix #74549.
13404
13405 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13406
13407         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
13408         use 2 connected sockets instead.
13409
13410 2005-04-08  Miguel de Icaza  <miguel@novell.com>
13411
13412         * mono-config.c: Add new entry point for mkbundle
13413         mono_config_parse_memory. 
13414
13415 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13416
13417         * threadpool.c: removed another unused function.
13418
13419 2005-04-08  Ankit Jain  <radical@corewars.org>
13420
13421         * reflection.c (get_default_param_value_blobs): Add 'types'
13422         parameter to get the types encoded in the constant table.
13423         (mono_param_get_objects): Use the type from the constant table,
13424         not the type of the parameter, when creating default values.
13425         Handle null default values correctly.
13426
13427 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13428
13429         * file-io.c:
13430         * file-io.h:
13431         * threadpool.c:
13432         * threadpool.h:
13433         * icall.c:
13434         * socket-io.c: removed dead code for async IO.
13435
13436 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13437
13438         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
13439
13440         * threadpool.c: intercept socket async. calls and pass them to a thread
13441         that is polling and dispatching the job items to the threadpool as
13442         socket become ready. Fixes bugs #71217, #71933.
13443
13444         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
13445         between char and short/ushort arrays.
13446
13447         * socket-io.c: remove dead code.
13448
13449 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13450
13451         * locales.c,
13452           icall.c : removed InternalToUpper_Comp() and
13453           InternalToLower_Comp().
13454
13455 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13456
13457         * char-conversions.h : The tables were incorrectly generated. Should
13458           be generated against invariant culture.
13459
13460 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
13461
13462         * object.c (mono_runtime_invoke_array): Fix return value when 
13463         passing pre-created valuetype objects to ctors.
13464
13465         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
13466         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
13467         Fixes #74338.
13468
13469 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
13470
13471         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
13472         only used with --security and hides the wrong corlib version error.
13473
13474 2005-03-30  Joshua Tauberer  <tauberer@for.net>
13475
13476         * class.c: Changed mono_class_name_from_token so that types
13477         outside of a namespace don't have an initial period.  Improved
13478         the g_warning message used in _mono_class_get when loading
13479         fails.
13480         * assembly.c: In mono_assembly_load_reference, when an assembly
13481         can't be found, "No such file or directory" is misleading and
13482         unhelpful because a few paths were checked for the presence of
13483         the assembly.  When that happens (ENOENT), display a nicer
13484         message indicating the directories that were searched.  In all
13485         cases, the warning is made easier to read for non-hackers.
13486
13487 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
13488
13489         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
13490         project/solution.
13491         * appdomain.h|domain.c: Removed inline from functions.
13492         * appdomain.c: Reduced warnings when compiling on windows.
13493         * icall.c: Fixed output_debug declaration to gunichar2*.
13494         * mono-config.c: Reduced warnings when compiling on windows.
13495         * rand.c: Added missing "windows.h". Added missing return value.
13496         * rawbuffer.c: Added missing winsock2.h for windows.
13497         * sysmath.h: Added mono-compiler.h header to allow/ease 
13498         compilation with non-GCC compilers.
13499         * threads.c: Fixed declarations to compile with VS.NET C compiler.
13500         Removed cast warnings.
13501
13502         Adapted from the work of J Lothian (for VC6).
13503
13504 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
13505
13506         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
13507         from default_path.
13508
13509 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
13510
13511         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
13512         the 2.0 profile.
13513
13514 2005-03-27  Raja R Harinath  <harinath@gmail.com>
13515
13516         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
13517         has to be in $(exec_prefix).  $(prefix) is for arch-independent
13518         stuff, and it would probably use $(prefix)/share rather than
13519         $(prefix)/lib.
13520
13521 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13522
13523         * console-io.c: added 2 includes that might be missing.
13524
13525 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
13526
13527         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
13528         profile.
13529
13530         * reflection.c (create_custom_attr): Allocate the params array using
13531         alloca so it gets GC tracking.
13532
13533 2005-03-23  Chris Toshok  <toshok@ximian.com>
13534
13535         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
13536         out some spew.
13537
13538 2005-03-24  Raja R Harinath  <rharinath@novell.com>
13539
13540         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
13541         changes to pick up any changes in prefix, etc.
13542
13543 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
13544
13545         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
13546         
13547         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
13548         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
13549
13550 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
13551
13552         * class-internals.h object-internals.h class.c reflection.c: Extend the
13553         mono_lookup_dynamic_token () function to return the class of the
13554         token as well. 
13555
13556         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
13557         well. Fixes #73848.
13558
13559 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
13560
13561         * security-manager.c: Skip inheritance checks for intra-corlib
13562         class inheritance and method overrides. This skips a lot of checks
13563         and (anyway) permissions cannot work until corlib is loaded.
13564
13565 2005-03-23  Martin Baulig  <martin@ximian.com>
13566
13567         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
13568         MONO_TYPE_GENERICINST.  
13569
13570 2005-03-23  Martin Baulig  <martin@ximian.com>
13571
13572         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
13573
13574 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13575
13576         * class.c: added locking comments to some functions.
13577         Cache the interface offsets arrays (saves about 20 KB
13578         of runtime memory in a typical app).
13579         Reduce the time overhead in mono_class_setup_supertypes ().
13580
13581 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
13582
13583         * icall.c: speedup and fix leaks in GetMethodsByName and
13584         GetPropertiesByName.
13585
13586 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13587
13588         * reflection.c: some locking fixes.
13589
13590 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13591
13592         * metadata.c: added missing break in case statement.
13593
13594 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
13595
13596         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
13597         typedbyref return values. Fixes #73941.
13598
13599 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
13600
13601         * security-manager.c|h: Added demandunmanaged method and 
13602         suppressunmanagedcodesecurity class to MonoSecurityManager.
13603         Renamed aptc class to allowpartiallytrustedcallers.
13604
13605 2005-03-17  Martin Baulig  <martin@ximian.com>
13606
13607         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
13608
13609 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13610
13611         * file-io.c: disabled file async. IO using aio_*. It uses the
13612         threadpool now. Workaround for bug #73718.
13613
13614 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13615
13616         * assembly.h, mono-config.c: added code to deal with bundled configs
13617         for bundled assemblies.
13618
13619 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
13620
13621         * *.c, private.h: cleanup, removing old private.h header file.
13622
13623 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
13624
13625         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
13626         and throw_on_unmappable_char attributes.
13627
13628 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
13629
13630         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
13631         _ProcessName_internal.
13632
13633 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
13634
13635         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
13636         #73631.
13637
13638         * icall.c threads.c threads-types.h: Remove slothash icalls as they
13639         are no longer used.
13640
13641 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
13642
13643         * object.c (compute_class_bitmap): Add support for generics. Fixes
13644         #73527.
13645
13646 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
13647
13648         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
13649
13650 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13651
13652         * filewatcher.c: commented out the code for windows watcher, as we don't
13653         use it (we use the managed implementation instead).
13654
13655 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
13656
13657         * object-internals.h (MonoThread): Remove 'unused1' field.
13658
13659         * appdomain.c: Bump corlib version.
13660
13661         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
13662
13663         * reflection.c (mono_reflection_create_runtime_class): Remove the
13664         AssemblyBuilder.Save optimization since it causes too many problems.
13665
13666 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
13667
13668         * exception.c|h: Added mono_get_exception_reflection_type_load to
13669         create a ReflectionTypeLoadException object.
13670         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
13671         to return NULL is a InheritanceDemand fails during reflection. Updated
13672         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
13673         ReflectionTypeLoadException if an InheritanceDemand fails during 
13674         reflection. Added icall mapping for GetLinkDemandSecurity.
13675         * security-manager.c|h: Added ves_icall_System_Security_
13676         SecurityManager_GetLinkDemandSecurity internal call to return the
13677         class and methods permissions set for a LinkDemand. Removed unused
13678         fields in MonoSecurityManager.
13679
13680 2005-03-10  Martin Baulig  <martin@ximian.com>
13681
13682         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
13683         it's a generic instance.
13684
13685 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
13686
13687         * reflection.c (mono_get_object_from_blob): Applied patch from
13688         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
13689
13690         * class.c (mono_class_is_assignable_from): Another try at fixing 
13691         #73469 without breaking anything.
13692
13693 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
13694
13695         * class.c: (mono_class_is_assignable_from): Revert the last changes
13696         since they don't work with generics.
13697         
13698         * class.c (mono_class_is_assignable_from): Fix build bustage.
13699
13700         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
13701         the managed IsAssignableFrom method. Fixes #73469.
13702
13703         * reflection.c (mono_reflection_call_is_assignable_from): New helper
13704         function.
13705
13706 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
13707
13708         * object.c (mono_load_remote_field_new): Fix returning uninitialized
13709         memory when the remoting callback does not sets the out arguments.
13710         Fixes #73007.
13711
13712         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
13713         by mistake.
13714
13715         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
13716
13717         * object-internals.h (MonoStackFrame): Sync with managed object layout.
13718
13719         * appdomain.c: Bump corlib version.
13720
13721 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
13722
13723         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
13724         function.
13725
13726         * threads.c (mono_thread_attach): Detect threads which are not started
13727         by the GC pthread wrappers.
13728
13729 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
13730
13731         * icall.c: Added new icall for RNG.
13732         * rand.c|h: Added new icall to open the RNG. This allows to share a 
13733         single handle on Linux to access /dev/urandom and fix #73183.
13734
13735 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
13736
13737         * object.c: setting the new vtable in a transparent proxy object must
13738         not change the GC descriptor.
13739
13740 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13741
13742         * object.c: fixed compilation without GCJ support.
13743         * reflection.c: for runtime-created types ensure klass->has_references
13744         is correct (bug #73215).
13745
13746 2005-03-02  Martin Baulig  <martin@ximian.com>
13747
13748         * class.c (mono_class_is_assignable_from): Make this work if
13749         `oklass' is a generic instance; fixes #72831.
13750
13751 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
13752
13753         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
13754         with hasthis set.
13755         
13756         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
13757
13758         * marshal.c: Reorganize native->managed marshalling code to also use
13759         the emit_marshal_... functions.
13760
13761 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
13762
13763         * object.c: typed allocs have issues with bitmap sizes > 30,
13764         so check for max_set >= 30.
13765
13766 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
13767
13768         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
13769         managed code. Fixes #73012.
13770
13771         * metadata.h (MonoMarshalSpec): Add elem_mult field.
13772
13773         * metadata.c reflection.c: Load/Emit elem_mult as well.
13774         
13775         * metadata.h (MonoMarshalSpec): Add comment.
13776
13777         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
13778
13779         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
13780         num_elem to -1 if not given.
13781
13782         * object-internals.h (MonoReflectionMarshal): Add has_size field.
13783
13784         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
13785         given values.
13786
13787 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
13788
13789         * null-gc.c (mono_gc_free_fixed): Was not compilable.
13790
13791 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
13792
13793         * reflection.c (encode_marshal_blob): Encode param_num field as well.
13794
13795         * object-internals.h (MonoReflectionMarshal): Add param_num field.
13796
13797 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
13798
13799         * object.c: generalized the reference bitmap creation
13800         and added hooks for the new GC.
13801         * class-internals.c: removed the gc_bitmap field from MonoClass.
13802
13803 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13804
13805         * domain.c: help the compiler to produce better code
13806         in mono_jit_info_table_find ().
13807
13808 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
13809
13810         * object.c: make all allocations look typed.
13811
13812 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13813
13814         * socket-io.c: load Mono.Posix if it's not loaded already
13815         (fixes bug#73033).
13816
13817 2005-02-24  Martin Baulig  <martin@ximian.com>
13818
13819         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
13820         * reflection.c (dup_type): Likewise.
13821
13822 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
13823
13824         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
13825         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
13826
13827 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13828
13829         * domain.c, threads.c, object-internals.h: make the critical thread
13830         local vars use the fast access mode (even when we're compiled in
13831         a lib). Provide accessors to be used by the jit during codegen.
13832
13833 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13834
13835         * appdomain.c: Changed hook functios behavior to include
13836         support for the reflection only assemblies. Some icalls were changed
13837         to support the mentioned assemblies too. Signatures of static methods
13838         try_assembly_resolve and real_load now have an additional parameter:
13839         refonly.
13840
13841         * assembly.c: General changes to mono_assembly_ methods to support
13842         reflection only api. Functions mono_assembly_open, mono_assembly_load,
13843         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
13844         suffix, to support an additional gbool parameter to specify whether
13845         the assembli is reflection only or not. Created some new hook functions 
13846         to add support for reflection only assemblies. Signatures of static 
13847         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
13848         have now an additional parameter: refonly.
13849
13850         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
13851         indicating whether the assembly is reflection only or not.
13852
13853         * exception.c: Add mono_get_exception_invalid_operation.
13854
13855         * icall.c: Throw an InvalidOperationException when trying to invoke
13856         a property/method/event, or trying to set/get the value of a field.
13857         Also add an icall to retrieve the ref_only flag to the
13858         MonoReflectionAssembly.
13859
13860 2005-02-23  Chris Toshok  <toshok@ximian.com>
13861
13862         Part of fix for #72827.
13863         * mono-debug.c (mono_debug_add_method): add lexical block data to
13864         the info we write.  Kind of a hack at the moment - we copy the
13865         lexical block info from the MonoDebugMethodInfo to the
13866         MonoDebugMethodJitInfo here, before writing it.
13867         (mono_debug_read_method): read the lexical block info.
13868
13869         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
13870
13871         * debug-mono-symfile.h: add lexical block support.
13872
13873         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
13874         support.
13875
13876 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
13877
13878         * loader.c (mono_lookup_pinvoke_call): Fix warning.
13879
13880         * object.c (mono_runtime_free_method): Call mono_free_method () and
13881         put the TODOs there.
13882
13883         * loader.c (mono_free_method): Free up most memory allocated for 
13884         dynamic methods.
13885
13886 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
13887
13888         * reflection.c: properly flag a Type argument to a
13889         named custom attr value (bug #72248).
13890
13891 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13892
13893         * reflection.c: reduce code duplication in named custom
13894         attribute encoding.
13895
13896 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
13897
13898         * reflection.c: properly encode custom attrs of type object
13899         (bug #72649).
13900
13901 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
13902
13903         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
13904
13905 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
13906
13907         * socket-io.c: load System.dll if it's not loaded already
13908         (bug #72850 and #70477).
13909
13910 2005-02-21  Martin Baulig  <martin@ximian.com>
13911
13912         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
13913         generic instances.
13914
13915 2005-02-21  Martin Baulig  <martin@ximian.com>
13916
13917         * reflection.c (mono_image_build_metadata): We also need to
13918         "fixup" the MethodImpl table after we computed the final method
13919         indices.  Call fixup_methodimpl() to do that.
13920         (fixup_methodimpl): New private method.
13921
13922 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
13923
13924         * assembly.c: special case mscorlib.dll (bug#72536),
13925         patch from Carlos Alberto Cortez.
13926
13927 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
13928
13929         * threads-types.h threads.c: Fix build bustage.
13930
13931         * threads.c: Use a union for long<->double conversions.
13932
13933         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
13934         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
13935
13936         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
13937         containing the checkpoint call with NOT_TAKEN.
13938         
13939         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
13940         checkpoint before pushing the arguments, so they won't have to be
13941         spilled to stack.
13942
13943 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13944
13945         * domain.c, assembly.c, domain-internals.h: make some data
13946         const and relocation-free.
13947
13948 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
13949
13950         * object.c, appdomain.c, class-internals.h: introduce the
13951         MonoClassRuntimeInfo structure to hold the info needed to
13952         use a class at runtime. Made mono_class_vtable() lock-free
13953         for all the appdomains.
13954
13955 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
13956
13957         * metadata-internals.h, image.c: introduce a per-image mempool to
13958         be used for memory that has the same lifetime as the image.
13959
13960 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
13961
13962         * domain.c: In mono_init_internal(), instead of selecting the first
13963         runtime version supported by an executable, get a list of all
13964         supported versions and select the one for which an mscorlib exists
13965         (since even if the runtime supports a given version, it doesn't mean
13966         that the framework for that version is installed).
13967         Modified get_runtimes_from_exe to support this behavior.
13968         In supported_runtimes, added information about additional system
13969         assembly versions.
13970         
13971         * assembly.c: Added support for more than one system assembly version
13972         per runtime version. Updated the assembly list.
13973         In mono_assembly_remap_version, removed the initial version check,
13974         since we don't know to which version we need to compare until we
13975         get the version set on which the assembly is based.
13976         Moved the code for loading corlib into the new method
13977         mono_assembly_load_corlib(), so it can be used by the initialization
13978         code.
13979         
13980         * domain-internals.h: Updated data structures and added declaration
13981         for mono_assembly_load_corlib.
13982
13983 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
13984
13985         * reflection.c (resolve_object): Fix the creation of the signature in 
13986         the SignatureHelper case.
13987
13988         * assembly.c (mono_assembly_remap_version): Fix binary search.
13989         
13990 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
13991  
13992         * class.c: Added inheritance check when a method is overloaded (from a
13993         virtual method or when implementing an interface) and when a class is
13994         inherited. Added functions to set a failure for a class and to 
13995         retreive the exception from a failure.
13996         * class-internals.h: Added fields to MonoClass to keep the exception
13997         information status for inheritance (or other exceptions) to be thrown
13998         later (i.e. not at load time).
13999         * object.c: Throw the inheritance SecurityException when a type is to 
14000         be created with either class or method inheritance violations.
14001         * reflection.c|h: Fix when getting declsec from a class. Removed 
14002         unrequired code for class. Improved sanity in parameter naming.
14003         * security-manager.c|h: Added functions to check for class and method
14004         inheritance.
14005
14006 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14007
14008         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
14009         and has_finalize in dynamic types as well.
14010
14011 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
14012
14013         * culture-info-table.h : fixed currency format for en-GB (and so on).
14014
14015 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
14016
14017         * gc.c: ensure the GC handles never have 0 as a value.
14018
14019 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14020
14021         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
14022         a pointer to a struct to unmanaged code. Fixes #72625.
14023
14024 2005-02-16  Martin Baulig  <martin@ximian.com>
14025
14026         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
14027
14028 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14029
14030         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
14031
14032 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14033
14034         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
14035
14036         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
14037         UnmanagedFunctionPointerAttribute, use it for determining calling convention
14038         etc. Fixes #71471.
14039
14040         * reflection.c (mono_custom_attrs_get_attr): New helper function.
14041
14042         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
14043
14044 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
14045
14046         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
14047         changes to make the current context a field in MonoThread.
14048
14049 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14050
14051         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
14052         the last change.
14053         
14054         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
14055         extracted from mono_marshal_get_native_wrapper.
14056
14057         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
14058         to create wrappers around native functions.
14059
14060         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
14061         delegates for arbitrary function pointers. Fixes #71472.
14062
14063 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14064
14065         * threads.c: cleaned up the code a little.
14066
14067 2005-02-15  Martin Baulig  <martin@ximian.com>
14068
14069         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
14070         the data table.
14071
14072         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
14073         allocate larger chunks if needed.
14074
14075 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14076
14077         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
14078         in by mistake.
14079
14080 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
14081
14082         * domain.c: keep the domains in an array and ensure the domain ids
14083         are kept small, so they can be used as indexes to domain-specific data
14084         with a small memory overhead.
14085
14086 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14087
14088         * icall.c: Handle byref types in Type icalls. Fixes #72544.
14089
14090 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
14091
14092         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
14093
14094 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
14095
14096         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
14097
14098         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
14099         values.
14100
14101         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
14102         
14103 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
14104
14105         * domain-internals.h: add the hashtable here.
14106
14107         * class-internals.h: Remove `info' from MonoMethod
14108
14109         * domain.c: Add a new hashtable, jit_trampoline_hash
14110
14111 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14112
14113         * object.c: don't set the value of static fields
14114         (fixes bug#72494).
14115
14116 2005-02-11  Martin Baulig  <martin@ximian.com>
14117
14118         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
14119         (mono_debug_add_method): Silently ignore the method if it's too big.
14120         (mono_debug_add_type): Likewise.
14121
14122 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
14123
14124         * threads.c, appdomain.c: remove #ifdefs from the code.
14125
14126 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
14127
14128         * metadata-internals.h: Added flags to MonoAssembly to cache the most
14129         common security informations. This allows us to stay in unmanaged code
14130         when doing LinkDemand and it's special cases (except for the first 
14131         time for initialization). The flags a very much used with --security.
14132         * reflection.c|h: Added code to get declarative security attributes 
14133         for LinkDemand and InheritanceDemand. This required to refactor the
14134         existing code for Demand.
14135         * security-manager.c|h: Added new method fields for the special cases
14136         of LinkDemand.
14137
14138 2005-02-10  Martin Baulig  <martin@ximian.com>
14139
14140         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
14141         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
14142
14143 2005-02-10  Martin Baulig  <martin@ximian.com>
14144
14145         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
14146         debugging code; this is almost a complete rewrite.
14147
14148         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
14149
14150 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14151
14152         * domain.c, object.h: expose mono_string_equal () and 
14153         mono_string_hash ().
14154         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
14155         it's implemented in managed code.
14156
14157 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14158
14159         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
14160         lo leak objects between appdomains.
14161
14162 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14163
14164         * assembly.c: old compilers compilation fix from 
14165         robertj@gmx.net (Robert Jordan).
14166
14167 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
14168
14169         * class-internals.h: Little reminder for the future.
14170
14171         * debug-helpers.c: Fix up wrapper_type_names
14172
14173 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14174
14175         * image.c, metadata-internals.h: when loading an image from a file,
14176         mmap all of it and use the same codepaths as when using a
14177         in-memory image: the code is simpler and we use less memory
14178         (both writable and readonly).
14179
14180 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14181
14182         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
14183         API to alloc runtime data structures that need to be tracked by the
14184         GC and contain pointers.
14185         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
14186         make the code more readable and eventually use a different GC.
14187
14188 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
14189
14190         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
14191         for out arguments.
14192         
14193 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
14194
14195         * object.c: In release_type_locks(), don't release the cctor lock
14196         if it has already been released. This fixes a crash in the
14197         thread5 test.
14198
14199 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14200
14201         * gc.c, marshal.c, icall.c: register a delegate for finalization
14202         only when the native function pointer has been allocated for it.
14203
14204 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14205
14206         * object.c: cleaned up some code, allocate objects that are
14207         pointer free with the atomic malloc variant. Allocate memory
14208         for static data from the mempool if it's pointer-free.
14209         Allocate the bounds array at the end of the array data, when needed.
14210         * object-internals.h, object.h: move a private function in a private
14211         header.
14212         * class.c: handle missing case in tracking references in fields.
14213
14214 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14215
14216         * class.c, class-internals.h: keep track if a type has
14217         reference fields in either the instance or static fields.
14218
14219 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
14220
14221         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
14222         and renamed to MonoRuntimeInfo. Added fields to store the expected
14223         framework assembly version. Changed mono_get_framework_version and
14224         mono_get_runtime_version for a single mono_get_runtime_info method.
14225         
14226         * assembly.c: Added method to remap system assembly versions to the
14227         current executing runtime version. Removed old mapping code.
14228         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
14229         
14230         * icall.c, reflection.c: Track api changes.
14231
14232 2005-02-06  Miguel de Icaza  <miguel@novell.com>
14233
14234         * loader.c (method_from_memberref): Improve error reporting,
14235         produce the class name instead of the typeref/typedef index. 
14236
14237 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
14238
14239         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
14240
14241 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14242
14243         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
14244         stdcall and charset name mangling.  Reorganize the code and add
14245         some tracing stuff.
14246
14247 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14248
14249         * monodiet.c: More iters!
14250
14251         * marshal.c: Iter usage.
14252
14253         * icall.c: Iter usage.
14254
14255         * object.c: Use iters.
14256
14257         * debug-helpers.c: More iters
14258
14259 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14260
14261         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
14262         under win32.
14263
14264 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14265
14266         * mono-debug-debugger.c: use iters
14267
14268         * class.c, class-internals.h: mono_class_setup_events is static
14269         now
14270
14271         * All callers: use iters
14272
14273 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14274
14275         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
14276         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
14277
14278 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14279
14280         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
14281
14282         * marshal.h: Add prototypes for ldfld/stfld_remote.
14283
14284         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
14285         this is called during startup.
14286         
14287 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
14288
14289         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
14290         MonoThreadsSync struct private in monitor.c. Changed the way
14291         MonoThreadsSync is allocated so it's faster and there is no
14292         need to keep track of it with a finalizer and it uses less memory.
14293         This also finally allows us to allocate mono objects as ptrfree when
14294         there are no reference fields.
14295
14296 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
14297
14298         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
14299         disappearing link to the GC interface and use them to simplify
14300         the gchandles code.
14301
14302 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14303
14304         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
14305         stfld_remote which call mono_load/store_field_new. This allows methods
14306         calling ldfld/stfld wrappers to be AOTed.
14307
14308         * console-io.c: Include sys/filio.h under solaris.
14309         
14310         * console-io.c: Include curses.h if needed correctly.
14311
14312 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14313         
14314         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
14315         method->klass as well.
14316
14317         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
14318
14319         * class.c (mono_class_init): Switch on lazy initialization of 
14320         methods.
14321
14322         * class.c (mono_class_get_finalizer): Handle the case when the 
14323         finalizer is inherited.
14324
14325 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14326
14327         * console-io.c: <curses.h> is needed by term.h on solaris.
14328
14329 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
14330
14331         * icall.c, class-internals.h, monodiet.c, class.c: Remove
14332         mono_class_setup_properties where possible. Remove this ftn from
14333         the header file, and make it static.
14334
14335 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14336
14337         * loader.c: Add missing setup_... call.
14338
14339         * class.c: Add missing setup_... calls.
14340
14341         * class.c (mono_class_init): Switch on lazy initialization of 
14342         the generic vtable.
14343         
14344         * class.c (mono_class_init): Fix generics broken by the recent changes.
14345
14346         * monodiet.c (handle_type): Add missing setup_... calls.
14347
14348         * class.c: Back out garbage in previous patch.
14349         
14350         * class.c: Add missing setup_... calls.
14351
14352         * class.c (mono_class_get_method_from_name_flags): Avoid calling
14353         mono_class_setup_methods () if possible.
14354
14355         * class-internals.h (MonoClass): Add 'has_cctor' flag.
14356
14357         * class-internals.h (MonoCachedClassInfo): New structure.
14358
14359         * class.c: Initialize properties and events fields of MonoClass lazily.
14360
14361         * class.c: Add infrastructure for lazily initializing the methods and
14362         vtable fields of MonoClass. Not yet used.
14363
14364         * class.c (mono_class_get_finalizer): New helper function.
14365
14366         * class.c: Add infrastructure for loading some class related data from
14367         an AOT file.
14368
14369         * object.c: Add infrastructure for initializing the vtable from data
14370         in the AOT file.
14371
14372         * gc.c (run_finalize): Use mono_class_get_finalizer ().
14373
14374         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
14375         appropriate initialization function before accessing parts of the
14376         MonoClass structure.
14377
14378         * marshal.c: Fix warnings.
14379         
14380         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
14381
14382         * mono-debug-debugger.c (get_exception_message): Use 
14383         mono_class_get_method_from_name_flags ().
14384
14385 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
14386
14387         * reflection.c, appdomain.c: Replace a few manual searches that
14388         Zoltan missed. (Paolo approved this part of my initial patch).
14389
14390 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
14391
14392         * profiler.c: disable recording statistical events at report time.
14393
14394 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14395
14396         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
14397         to byteswap arrays of enum values, too (bug #72080).
14398
14399 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
14400
14401         * appdomain.c (set_domain_search_path): Allow this to be called if
14402         domain->setup is not yet set.
14403
14404         * loader.c (mono_method_get_index): New helper function.
14405
14406         * loader.c reflection.c: Use mono_method_get_index ().
14407
14408         * class.c (mono_class_get_method_from_name_flags): New helper method.
14409
14410         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
14411         this.
14412
14413         * class.c (mono_class_get_cctor): New helper method.
14414
14415         * string-icalls.c object.c class.c marshal.c reflection.c: Use
14416         mono_class_get_method () to look up methods.
14417
14418 2005-02-01  Miguel de Icaza  <miguel@novell.com>
14419
14420         * console-io.c: Fix the build, this should work on Windows.
14421
14422 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
14423
14424         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
14425         be set to null to keep things valid
14426
14427 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14428
14429         * icall.c: added Console 2.0 icalls.
14430         * Makefile.am: added console-io.[ch]
14431         * console-io.[ch]: internal calls for Console 2.0 API.
14432
14433 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14434
14435         * class.c: make sure we consider all the interfaces
14436         when calculating max_interface_id (bug found by
14437         Jeroen Frijters running ikvm).
14438
14439 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
14440
14441         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
14442         valuetype fields to null.
14443
14444         * object.c (set_value): Ditto. Fixes #71669.    
14445
14446 2005-01-31  Martin Baulig  <martin@ximian.com>
14447
14448         * metadata.c (mono_metadata_has_generic_params): New public
14449         function; checks whether something is a generic method.
14450
14451 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
14452
14453         * appdomain.c: fix infinite recursion when adding assemblies.
14454
14455 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
14456
14457         * object.c: Fix small typo to return all items for Environment.
14458         GetCommandLineArgs.
14459
14460 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14461
14462         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
14463         reflection.c: more domain and assembly-unload related fixes
14464         and memory leaks plugs.
14465
14466 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
14467
14468         * 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.
14469
14470 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
14471
14472         * loader.c (mono_method_signature): Make this method lazy
14473         (mono_get_method_from_token): Don't computate the signature here.
14474
14475         Doing this saves quite a bit of memory. I got 90 kb on starting up
14476         monodoc. It should also save some disk reads on startup.
14477
14478         * *: MonoMethod->signature might be NULL now. You *MUST* use
14479         mono_method_signature.
14480
14481 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
14482
14483         * object.c (mono_runtime_get_main_args): Return an array from the
14484         current domain here. Fixes #71938.
14485
14486 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
14487
14488         * monitor.c: formatting changes to comply with the
14489         mono coding style and remove #ifdefs from the code.
14490
14491 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14492
14493         * metadata.c, private.h: remove some unneeded data
14494         and use a more compact representation for table schemas.
14495
14496 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
14497
14498         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
14499         to get a better distribution in hash tables.
14500         * *.c: use mono_aligned_addr_hash() where appropriate.
14501         * assembly.c: make var static.
14502
14503 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
14504
14505         * domain-internals.h: Put MonoJitInfo on a diet.
14506
14507         * domain.c: Fix a warning.
14508
14509 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14510
14511         * gc.c: rework the gc handles code to reuse handles
14512         when freed.
14513
14514 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14515
14516         * domain.c: fixed long standing bug in mono_string_equal() which
14517         was brought to light with the ldstr changes.
14518
14519 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
14520
14521         * reflection.c: Remove warning by adding missing include for marshal.h
14522
14523 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14524
14525         * domain.c, object.c: change the ldstr_table to hold
14526         MonoString* as keys: makes the runtime isinterned lookup
14527         faster and simplifies memory management.
14528
14529 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
14530  
14531         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
14532         possible to add imperative security checks before calling the icall.
14533         * reflection.c: Return security attributes on the original MonoMethod
14534         (and not the wrapped one). This fix permissions on icalls.
14535
14536 2005-01-25  Dick Porter  <dick@ximian.com>
14537
14538         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
14539         the check for mktime() support actually test the mktime() return
14540         value.  "Fixes" bug 71682, though the output is still different to
14541         MS.
14542
14543 2005-01-25  Martin Baulig  <martin@ximian.com>
14544
14545         * class.c (mono_class_is_assignable_from): Make this work for
14546         generic instances.
14547
14548 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
14549
14550         * marshal.c (mono_string_utf8_to_builder)
14551         (mono_string_builder_to_utf16): We might not have ownership of the
14552         string. In thise case, we need to create a new buffer.
14553
14554         * object-internals.h (mono_stringbuilder_capacity): sb->str might
14555         be null, in which case, use the default capacity.
14556
14557 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14558
14559         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
14560         GC events to the profiler.
14561
14562 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14563
14564         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
14565         if you don't want the GC to run.
14566
14567 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
14568
14569         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
14570         start providing a GC API and keeping different implementations in
14571         their own file.
14572         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
14573
14574 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
14575
14576         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
14577         mmap rather than allocating a huge buffer.
14578         (mono_debug_close_mono_symbol_file): Free the buffer allocated
14579         above.
14580
14581 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
14582
14583         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
14584         and CheckExecutionRights.
14585         * reflection.c|h: Keep the index of the declarative security to be 
14586         used, instead of the pointer, when AOT compiler is used. Also add 
14587         class initialization when requesting demands.
14588         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
14589         CheckExecutionRights. Both properties are now FALSE by default, and
14590         unmodifiable, unless the --security option is used.
14591
14592 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14593
14594         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
14595         reflection.c: properly refcount images and assemblies, many leaks fixed.
14596
14597 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14598
14599         * threadpool.c: increase the timeout for threads in the thread pool to
14600         10s.  Fixes bug #67159.
14601
14602 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14603
14604         * class-internals.h: Sun's compiler insists on explicit
14605         signed on bit fields to handle then correctly.
14606
14607 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14608
14609         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
14610         Make the size of the array fit only the number of invalid path
14611         chars that we have.
14612
14613         * class.c (_mono_class_get): Improve the error reporting when a
14614         class referenced is not found, to assist debugging. 
14615
14616 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
14617
14618         * threads.c: fix off-by-one error.
14619         * domain.c: free data allocated in the domain.
14620
14621 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * reflection.c (mono_method_body_get_object): Fill out exception info
14624         as well.
14625
14626         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
14627         structure.
14628         
14629 2005-01-19  Martin Baulig  <martin@ximian.com>
14630
14631         * loader.c (mono_get_method_constrained): Make this work again.
14632
14633 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
14634
14635         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
14636         guint16 to match the managed side.
14637
14638         * reflection.c (mono_reflection_body_get_object): Fill out local
14639         variables array.
14640
14641         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
14642         as well.
14643
14644         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
14645         'local_var_sig_token'.
14646
14647 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
14648
14649         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
14650         System.Drawing.
14651
14652         * reflection.c (mono_method_body_get_object): Handle abstract and
14653         runtime methods.
14654
14655 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
14656
14657         * marshal.c, loader.c, class-internals.h, reflection.c:
14658         store the emthod data for a wrapper in an array instead of a list.
14659
14660 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
14661
14662         * marshal.c: change the code to allocate memory more
14663         conservatively for method wrappers.
14664
14665 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
14666
14667         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
14668         fields from MonoClass to the marshal info structure where they belong.
14669
14670 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14671
14672         * class.c, object.c, class-internals.h, marshal.c: rearrange
14673         some fields and tweak some types to lower memory usage.
14674
14675 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
14676
14677         * threads.c (signal_thread_state_change): Handle the case when the
14678         target thread is the current thread.
14679
14680         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
14681
14682         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
14683         emit_ptr_to_object_conv. 
14684
14685         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
14686         marshalling. Fixes #71352.
14687
14688 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14689
14690         * metadata.h, blob.h: move table enum to blob.h so it can be included
14691         in any header.
14692         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
14693         cut the size of MonoImage/MonoDynamicImage.
14694
14695 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
14696
14697         * profiler.c (mono_profiler_install_simple): Fix default arguments.
14698
14699 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
14700
14701         * reflection.c, reflection.h, icall.c: add a function to check
14702         if an attribute type is defined for a metadata object.
14703
14704 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
14705
14706         * object-internals.h: Added some needed fields from StringBuilder class.
14707         * marshal.c: Set the maxCapacity when creating a StringBuilder.
14708
14709 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
14710
14711         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
14712         threads before shutting down the runtime.
14713
14714         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
14715
14716 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14717
14718         * object-internal.h, threads.c: implement stacksize and 
14719         parameterized thread start functionality (requires
14720         matching corlib). Marked broken code for later removal.
14721
14722 2005-01-12  Martin Baulig  <martin@ximian.com>
14723
14724         * class-internals.h (MonoGenericClass): Moved the `initialized'
14725         flag to MonoDynamicGenericClass, removed `init_pending'.
14726         (MonoGenericInst): Added `is_reference' flag.
14727
14728 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
14729
14730         * reflection.c (mono_image_create_pefile): Only set the pe_offset
14731         inside the MSDOS header. Fixes #71201.
14732
14733         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
14734         gc thread.
14735         (mono_domain_finalize): Ditto.
14736
14737 2005-01-12  Martin Baulig  <martin@ximian.com>
14738
14739         * class.c (mono_get_shared_generic_class): Use the cache for
14740         non-dynamic generic classes.
14741
14742         * class-internals.h (mono_class_create_generic_2): Removed
14743         function prototype, this function is now static inside class.c.
14744
14745         * class.c (mono_class_create_generic_2): Made this static, only
14746         call it from mono_class_init() and mono_class_setup_parent().
14747         (collect_implemented_interfaces_aux): Call mono_class_init() on
14748         the interfaces we collect.
14749         (mono_class_setup_vtable): Call mono_class_init (class->parent).
14750
14751 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
14752
14753         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
14754         it a real thread handle.
14755
14756         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
14757         MonoJitExceptionInfo, since each catch clause needs its own variable.
14758         
14759 2005-01-11  Dick Porter  <dick@ximian.com>
14760
14761         * image.c (mono_pe_file_open): New variant on mono_image_open()
14762         that does not set up the CLI metadata; used for FileVersionInfo so
14763         it can get the data for windows binaries too.
14764         
14765         * process.c (process_read_string_block): Don't read off the end of
14766         the StringTable block.
14767
14768         These both fix bug 70766.
14769
14770 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
14771
14772         * gc.c: set some fields to NULL at GC cleanup time.
14773         * threads.c: if we quit the main thread, call exit ().
14774
14775 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
14776
14777         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
14778
14779 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
14780
14781         * threads.h, threads.c, object.c: added accessor and settor for
14782         main_thread. Handle it specially when exiting from it: wait
14783         for other foreground threads to exit.
14784
14785 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
14786
14787         * process.c, verify.c: remove some bloat.
14788
14789 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
14790
14791         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
14792         the calling convention to cdecl under win32.
14793
14794 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
14795
14796         * object.c (mono_object_get_size): New function to get the size of
14797         an object instance.
14798
14799         * profiler.c (simple_allocation): Use above.
14800
14801 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
14802
14803         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
14804         ves_icall_System_AppDomain_getRootDomain (as it's not required to
14805         get an appdomain by it's id and we can't assume the root's id is 0).
14806         * domain-internals.h: Change the function prototype to match.
14807         * icall.c: Change the icall table for AppDomain.
14808
14809 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
14810
14811         * locales.c (string_invariant_compare_char): Only compute
14812         GUnicodeTypes in the case where we need them.  Test for ordinality
14813         first and return if so.
14814
14815         From the commit:
14816
14817                 /*
14818                  * FIXME: here we must use the information from c1type and c2type
14819                  * to find out the proper collation, even on the InvariantCulture, the
14820                  * sorting is not done by computing the unicode values, but their
14821                  * actual sort order.
14822                  */
14823
14824 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
14825
14826         * loader.c: for P/Invoke methods, allow the "Internal" shared
14827         library name to refer to the calling process symbol namespace.
14828
14829 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
14830
14831         * Makefile.am: Add the security manager to the build.
14832         * security-manager.c|h: New. Initialization of the security manager.
14833
14834 2005-01-07  Dick Porter  <dick@ximian.com>
14835
14836         * threads.c: 
14837         * monitor.c: Update thread state during Monitor and WaitHandle
14838         waits.  Fixes bug 71031.
14839
14840 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * reflection.c (property_encode_signature): Correctly handle when the
14843         property has no methods.
14844
14845 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
14846
14847         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
14848         
14849         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
14850         fields from mb, not rmb. Fixes #71017.
14851
14852         * marshal.c (emit_ptr_to_str_conv): Add support for 
14853         ByValTStr -> string conversion. Fixes #71015.
14854
14855         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
14856
14857         * mempool.c (mono_mempool_contains_addr): New helper function.
14858
14859 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
14860
14861         * metadata.c (mono_metadata_compute_size): Fix size calculation of
14862         HasSematics encoded fields.
14863         
14864         * metadata.c (mono_type_to_unmanaged): Improve error message for 
14865         invalid string marshalling.
14866
14867         * metadata.c: Fix warnings.
14868         
14869 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14870
14871         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
14872         profiler support.
14873
14874 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
14875
14876         * domain.c object.c domain-internals.h: Revert part of r38077 since the
14877         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
14878         tests.
14879
14880 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
14881
14882         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
14883         so methods containing these can be AOTed.
14884
14885 2005-01-03  Martin Baulig  <martin@ximian.com>
14886
14887         * loader.c (find_method): Removed the hack for generic instances.
14888         (method_from_memberref): If our parent is a generic instance, pass
14889         its generic type definition to find_method() and then inflate the
14890         method.
14891         (mono_get_method_constrained): Pass the generic type definition to
14892         find_method() and inflate the method later.
14893
14894         * class-internals.h (MonoStats): Added `generic_class_count'.
14895
14896         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
14897         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
14898
14899         * reflection.c (mono_custom_attrs_from_params): Don't ignore
14900         generic type definitions.
14901
14902 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
14903
14904         * loader.c icall.c: Fix warnings.
14905
14906 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
14907
14908         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
14909         blittable types. Fixes #70864.
14910
14911 2004-12-29  Martin Baulig  <martin@ximian.com>
14912
14913         * icall.c
14914         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
14915
14916         * reflection.c (mono_method_get_object): Create a
14917         "System.Reflection.MonoGenericMethod" for inflated methods; don't
14918         call mono_get_inflated_method().
14919
14920         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
14921
14922 2004-12-27  Martin Baulig  <martin@ximian.com>
14923
14924         * class-internals.h (MonoMethod): Added `is_inflated' flag.
14925         (MonoMethodInflated): Added `inflated' field.
14926
14927         * class.c (mono_class_inflate_generic_method): Don't really
14928         inflate the method here; just set the `is_inflated' flag in the
14929         MonoMethod.
14930         (mono_class_get_inflated_method): Actually inflate the method here
14931         if it's not already inflated; we use the MonoMethodInflated's new
14932         `inflated' field as a cache.
14933
14934 2004-12-26  Martin Baulig  <martin@ximian.com>
14935
14936         * class.c
14937         (inflate_generic_class): Moved some code out of inflate_generic_type().
14938         (mono_class_inflate_generic_method): If we're already inflated,
14939         inflate the context and use the declaring method; ie. make sure
14940         the declaring method of an inflated method is always the generic
14941         method definition.
14942         (mono_class_create_from_typedef): Create
14943         `class->generic_container->context->gclass'.
14944
14945 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
14946
14947         * metadata-internals.h, marshal.c, reflection.c: More
14948         MonoGHashTable->GHashTable.
14949
14950         * domain-internals.h, class.c: Change MonoGHashTable's into
14951         GHashTables for some cases where no gc stuff is used
14952
14953         All users: update apis
14954
14955 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
14956
14957         * metadata.c (builtin_types): Make this `const'. Makes this get
14958         put into the shareable section.
14959         (mono_metadata_init): Casts to make gcc happy.
14960
14961 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
14962
14963         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
14964
14965 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
14966
14967         * icall.c: Added an internal call to retrieve the position and length
14968         of assembly-level declarative security attributes (RequestMinimum, 
14969         RequestOptional and RequestRefuse). This is used by the Assembly class
14970         to re-create the corresponding permission sets.
14971
14972 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
14973
14974         * marshal.c: fix the stelemref wrapper to be type correct
14975         (and faster).
14976
14977 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
14978
14979         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
14980         to do key & 0x7fffffff. Hashtable already does this. It just
14981         results in longer code.
14982
14983 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
14984
14985         * appdomain.c: Bump corlib version.
14986         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
14987         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
14988         * reflection.c|h: Add functions to get declarative security infos
14989         (blob position and length) for assemblies, classes and methods.
14990
14991 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
14992
14993         * reflection.c: sort the constant table (bug #70693).
14994
14995 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
14996
14997         * object-internals.h, threads.c, domain.c: add accessors for
14998         the MonoThread and MonoDomain tls keys.
14999
15000 2004-12-18  Martin Baulig  <martin@ximian.com>
15001
15002         * class.c (inflate_generic_type): If we're inflating a generic
15003         instance, set `ngclass->context->container = context->container';
15004         ie. the container we inflated into.
15005
15006         * metadata.c (mono_metadata_parse_generic_param): Reflect above
15007         inflate_generic_type() changes.
15008
15009 2004-12-17  Martin Baulig  <martin@ximian.com>
15010
15011         * class-internals.h
15012         (MonoGenericClass): Replaced `MonoType *generic_type' with
15013         `MonoClass *generic_class'.  Removed `dynamic_info'; if
15014         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
15015         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
15016
15017 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
15018
15019         * exception.c (mono_exception_from_token): New helper function.
15020
15021 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
15022
15023         * assembly.c (mono_assembly_load_with_partial_name): Call 
15024         mono_assembly_loaded before invoking the preload hooks. Fixes
15025         #70564.
15026
15027         * object-internals.h (MonoThread): Change culture_info and 
15028         ui_culture_info into an array.
15029
15030         * threads.c: Cache culture info objects from more than one appdomain.
15031
15032         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
15033         current UI culture.
15034
15035 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
15036
15037         * threads.h threads.c appdomain.c: Clear the culture_info field of
15038         all threads during unloading if they point to an object in the dying
15039         appdomain.
15040
15041 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
15042
15043         * culture-info.h (TextInfoEntry): New struct
15044         * object-internals.h: sync with managed
15045         * locales.c: fill the `text_info_data' field
15046         * culture-info-tables.h: update
15047
15048 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
15049
15050         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
15051         collector.
15052
15053 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
15054
15055         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
15056         (ves_icall_ModuleBuilder_getMethodToken): Ditto
15057
15058 2004-12-12  Martin Baulig  <martin@ximian.com>
15059
15060         * mono-debug-debugger.c (write_type): If we're an enum and the
15061         builtin types have already been initialized, call mono_class_init().
15062
15063 2004-12-11  Martin Baulig  <martin@ximian.com>
15064
15065         * metadata.c (mono_metadata_load_generic_params): Added
15066         `MonoGenericContainer *parent_container' argument; automatically
15067         compute `container->is_method'; pass the correct owner to
15068         get_constraints().      
15069
15070         * reflection.c (compare_genericparam): Sort the GenericParam table
15071         according to increasing owners. 
15072
15073 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
15074
15075         * profiler.c: allow disabling the default profiler.
15076
15077 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
15078
15079         * decimal.c, icall.c: allow disabling System.Decimal support.
15080
15081 2004-12-09  Marek Safar <marek.safar@seznam.cz>
15082
15083         * reflection.c: Add support for null attribute arguments.
15084
15085 2004-12-09  Martin Baulig  <martin@ximian.com>
15086
15087         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
15088         names to get rid of compiler warnings.
15089
15090 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15091
15092         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
15093         mono_marshal_load_type_info (). Fixes #69625.
15094         (mono_marshal_get_ptr_to_struct): Likewise.
15095
15096 2004-12-08  Martin Baulig  <martin@ximian.com>
15097
15098         * mono-debug.h: Bumped version number to 47.
15099
15100         * mono-debug-debugger.c
15101         (mono_debugger_event_handler, mono_debugger_event): Take two
15102         guint64 arguments insteed of a gpointer and a guint32.  
15103
15104 2004-12-08  Martin Baulig  <martin@ximian.com>
15105
15106         * debug-mono-symfile.h
15107         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
15108         `address' to `native_offset'.
15109
15110 2004-12-08  Martin Baulig  <martin@ximian.com>
15111
15112         * class.c (mono_class_create_from_typespec): Only inflate if we
15113         either have `context->gclass' or `context->gmethod'.
15114
15115 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15116
15117         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
15118
15119         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
15120
15121         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
15122
15123         * reflection.c (mono_assembly_get_object): Remove the workaround put
15124         in for the release.
15125         
15126         * appdomain.c: Use the corlib_internal field from MonoAssembly.
15127
15128         * appdomain.c: Bump corlib version.
15129
15130         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
15131         be visible in other appdomains.
15132
15133 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
15134
15135         * threads.c: Interlocked inc and dec for longs were messed up,
15136         use a KISS based impl for this. Fixes 70234
15137
15138 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
15139
15140         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
15141
15142 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15143
15144         * icall.c: fix to follow policy not to allow struct
15145         arguments in icalls.
15146
15147 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15148
15149         * process.c: make the patch that handles spaces in file paths work
15150         on mono/windows too.
15151
15152 2004-12-06  Martin Baulig  <martin@ximian.com>
15153
15154         * class.c (mono_class_create_generic): Call
15155         mono_class_setup_supertypes() if we're dynamic.
15156         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
15157
15158 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
15159
15160         * object-internals.h: Add new fields to MonoThread.
15161
15162         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15163
15164         * icall.c threads-types.h threads.c: Add new icalls.
15165
15166         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
15167
15168         * object-internals.h (MonoReflectionAssembly): Sync object layout with
15169         managed side.
15170
15171         * appdomain.c: Bump corlib version.
15172
15173         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
15174         internal assemblies. Fixes #69181.
15175
15176 2004-12-05  Martin Baulig  <martin@ximian.com>
15177
15178         * class.c (mono_class_inflate_generic_signature): Make this a
15179         no-op if `context' is NULL or we don't have any type parameters;
15180         also copy `sentinelpos'.        
15181
15182 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
15183
15184         * image.c: Add unbox_wrapper_cache.
15185
15186         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
15187
15188         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
15189         function generator.
15190         
15191         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
15192         Fixes #70173.
15193
15194         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
15195         
15196 2004-12-04  Martin Baulig  <martin@ximian.com>
15197
15198         * loader.c (mono_method_get_signature_full): New public function;
15199         like mono_method_get_signature(), but with an additional
15200         `MonoGenericContext *' argument.
15201
15202         * class.c (mono_class_inflate_generic_signature): Formerly known
15203         as inflate_generic_signature(); make this public.
15204
15205 2004-12-04  Martin Baulig  <martin@ximian.com>
15206
15207         * metadata.c
15208         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
15209         instead of a `MonoGenericContainer *'.  
15210         (mono_metadata_parse_array_full): Likewise.
15211         (mono_metadata_parse_signature_full): Likewise.
15212         (mono_metadata_parse_method_signature_full): Likewise.
15213         (mono_metadata_parse_generic_inst): Likewise.
15214         (mono_metadata_parse_generic_param): Likewise.
15215         (mono_metadata_parse_mh_full): Likewise.
15216         (mono_type_create_from_typespec_full): Likewise.
15217
15218 2004-12-03  Martin Baulig  <martin@ximian.com>
15219
15220         * class-internals.h (MonoGenericContainer): Replaced the
15221         `MonoGenericContext * pointer with a `MonoGenericContext'
15222         structure and made it the first element.
15223
15224 2004-12-03  Martin Baulig  <martin@ximian.com>
15225
15226         * class.c
15227         (inflate_generic_type): Set the `context->container' when creating
15228         a new MonoGenericContext.
15229         (mono_class_inflate_generic_method): Likewise.
15230         (mono_class_create_from_typespec): Just use `context->container'
15231         to get the container.
15232
15233         * loader.c (method_from_methodspec): Set `context->parent' from
15234         `context->container' - and if that's a method container, use its
15235         parent.  Also set the `context->container' when creating a new
15236         MonoGenericContext.
15237         (mono_get_method_from_token): Use just `context->container' to get
15238         the container.
15239
15240         * metadata.c (do_mono_metadata_parse_generic_class): Also set
15241         `gclass->context->container'.
15242
15243         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
15244         the `context->container' when creating a new MonoGenericContext.
15245
15246 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
15247
15248         * reflection.c (compare_genericparam): Sort params with identical
15249         owner by their number. Fixes gen-111 on sparc.
15250
15251 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15252
15253         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
15254         around the domain changes.
15255
15256         * appdomain.c (mono_domain_unload): Handle the case when the thread
15257         calling Unload is itself being aborted during unloading. Fixes #70022.
15258
15259         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
15260
15261         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
15262         checkpoint_func as an icall so it gets a wrapper.
15263         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
15264         in the cross-appdomain wrappers too.
15265
15266         * threads.c (mono_thread_has_appdomain_ref): Make this public.
15267
15268         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
15269
15270         * reflection.c: Fix some memory leaks.
15271         
15272 2004-12-02  Martin Baulig  <martin@ximian.com>
15273
15274         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
15275
15276         * metadata.c (generic_class_cache): New static hashtable.
15277         (mono_metadata_lookup_generic_class): New public method.
15278
15279 2004-12-02  Martin Baulig  <martin@ximian.com>
15280
15281         * class.c (mono_class_create_from_typedef): Call
15282         mono_class_setup_parent() and mono_class_create_mono_type() before
15283         parsing the interfaces.
15284
15285 2004-12-02  Martin Baulig  <martin@ximian.com>
15286
15287         * metadata.c (generic_inst_cache): New static hashtable.
15288         (mono_metadata_lookup_generic_inst): New public function.
15289         (mono_metadata_inflate_generic_inst): New public function.
15290         (mono_metadata_parse_generic_inst): New public function.
15291         (do_mono_metadata_parse_generic_class): Use the new
15292         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
15293         since this'll also use the cache.
15294
15295         * reflection.c (mono_reflection_bind_generic_method_parameters):
15296         Use mono_metadata_lookup_generic_inst() to use the new cache.
15297
15298         * class.c (inflate_mono_type): Use
15299         mono_metadata_inflate_generic_inst() to inflate a generic
15300         instance; this'll also use the new cache.
15301
15302         * loader.c (method_from_methodspec): Use
15303         mono_metadata_parse_generic_inst() and
15304         mono_metadata_inflate_generic_inst() rather than parsing it
15305         manually, so we can use the new cache.
15306
15307 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15308
15309         * threads.c (wait_for_tids): Do not incorrectly free threads when 
15310         the wait times out.
15311
15312 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
15313
15314         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
15315         iter->args based on whether parameters are passed in registers (i.e.
15316         MONO_ARCH_REGPARMS is defined)
15317
15318 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
15319
15320         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
15321         the exception message. Fixes #70070.
15322         (method_from_methodspec): Fix warnings.
15323
15324 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15325
15326         * process.c: (complete_path) return the path quoted
15327
15328 2004-12-01  Martin Baulig  <martin@ximian.com>
15329
15330         * class-internals.h (MonoGenericInst): New structure.
15331         (MonoGenericClass): Replaced `type_argc', `type_argv' and
15332         `is_open' with `MonoGenericInst *inst'.
15333         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
15334         `is_open' with `MonoGenericInst *inst'.
15335
15336 2004-11-30  Martin Baulig  <martin@ximian.com>
15337
15338         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
15339
15340         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
15341         to `generic_class_cache'.
15342
15343         * metadata.c
15344         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
15345         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
15346         (mono_generic_inst_is_valuetype): Renamed to
15347         mono_generic_class_is_valuetype().
15348
15349         * class-internals.h
15350         (MonoGenericInst): Renamed to MonoGenericClass.
15351         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
15352         (MonoClass): Renamed `generic_inst' to `generic_class'.
15353         (MonoGenericContext): Renamed `ginst' to `gclass'.
15354
15355         * object-internals.h
15356         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
15357
15358         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
15359         mono_reflection_generic_class_initialize().
15360
15361         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
15362         now known as "System.Reflection.MonoGenericClass".
15363         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
15364
15365 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
15366
15367         * class-internals.h: Added a flag field to MonoClass to cache the
15368         declarative security attributes actions associated with the class.
15369         * domain-internals.h: Added booleans to MonoJitInfo to cache the
15370         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
15371         applicable to the JITted method.
15372         * reflection.c|h: Added functions to extract (as flags) which security
15373         actions are available (declaratively) for a method, class or assembly.
15374         * metadata.c|h: Added functions to search the declarative security
15375         table in the metadata.
15376         
15377 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
15378
15379         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
15380         EXPORTEDTYPES are already in the class name cache, so there is no
15381         need to add extra code here to look at them. Just removes a bit of
15382         cruft.
15383
15384         (ves_icall_System_Environment_get_TickCount): No need for #if
15385         WINDOWS. We already have the code in io-layer.
15386
15387 2004-11-28  Martin Baulig  <martin@ximian.com>
15388
15389         * loader.c
15390         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
15391         Fixes gen-112.cs.
15392
15393 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
15394
15395         * assembly.c (do_mono_assembly_open): Instead of having a
15396         conditional WITH_BUNDLE, incorporate support for bundles here, by
15397         having a global `bundles' variable holding a pointer to the actual
15398         bundles. 
15399
15400         (mono_register_bundled_assemblies): New API call used by the
15401         bundle code. 
15402
15403         See mkbundle.1 for details.
15404         
15405 2004-11-27  Martin Baulig  <martin@ximian.com>
15406
15407         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
15408         the vtable for generic methods.
15409
15410 2004-11-26  Martin Baulig  <martin@ximian.com>
15411
15412         * metadata.c
15413         (mono_metadata_generic_method_hash): New public function.
15414         (mono_metadata_generic_method_equal): Likewise.
15415
15416         * class-internals.h
15417         (MonoGenericContainer): Added `GHashTable *method_hash'.
15418
15419         * reflection.c (ReflectionMethodBuilder): Added
15420         `MonoGenericContainer *generic_container'.
15421         (reflection_methodbuilder_to_mono_method): Don't create a new
15422         MonoGenericContainer each time we're called.
15423         (mono_reflection_bind_generic_method_parameters): Use
15424         `container->method_hash' to cache the results so we don't create a
15425         different method if we're called several times with the same
15426         arguments.
15427
15428         * loader.c (method_from_methodspec): Use the new
15429         `container->method_hash' here, too.
15430
15431 2004-11-26  Martin Baulig  <martin@ximian.com>
15432
15433         * class.c (inflate_generic_signature): Correctly compute
15434         `res->has_type_parameters'.
15435         (mono_class_vtable): Use the `has_type_parameters' flag to
15436         determine whether we're a generic method.
15437
15438         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
15439
15440 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
15441
15442         * object.c (mono_runtime_run_main): Fix a small memory leak.
15443
15444 2004-11-25  Martin Baulig  <martin@ximian.com>
15445
15446         * class.c (set_generic_param_owner): Fixed the loop.
15447
15448 2004-11-25  Martin Baulig  <martin@ximian.com>
15449
15450         * object.c (mono_class_vtable): Don't create any JIT wrappers for
15451         generic methods.
15452
15453 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
15454
15455         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
15456         names. Fixes #69787.
15457
15458 2004-11-24  Martin Baulig  <martin@ximian.com>
15459
15460         * class.c (mono_class_create_generic_2): If we don't have a
15461         `ginst->parent', inflate `gklass->parent' to get our parent.
15462
15463 2004-11-24  Martin Baulig  <martin@ximian.com>
15464
15465         * reflection.c (compare_genericparam): Correctly sort the
15466         GenericParam table; fixes #69779.
15467
15468 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
15469
15470         * reflection.c: When writing a PE file, don't create a huge
15471         buffer in memory. Just write the arrays we have to the file.
15472         This reduces memory usage.
15473
15474         * metadata-internals.h: MonoDynamicStream pefile is no longer used
15475         globally.
15476
15477 2004-11-17  Martin Baulig  <martin@ximian.com>
15478
15479         * class.c (mono_class_init): Don't setup `class->parent' for
15480         dynamic instances; moved this to mono_class_generic_2().
15481         (mono_class_create_generic): Also set `klass->inited' for dynamic
15482         generic instances.
15483         (mono_class_create_generic_2): Don't do anything for dynamic
15484         generic instances.  Set `klass->parent' here and also call
15485         mono_class_setup_parent() here. 
15486
15487         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
15488         `MonoType *parent' argument; set `ginst->parent' before calling
15489         mono_class_create_generic_2(), so we set the correct parent.
15490
15491 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
15492
15493         * reflection.c: allow getting attributes from ModuleBuilder
15494         (used by ikvm).
15495
15496 2004-11-17  Martin Baulig  <martin@ximian.com>
15497
15498         * class.c (mono_class_create_from_typedef): If a type parameter is
15499         inherited from an outer class, set its owner to that class.
15500
15501 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
15502
15503         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
15504           for (int*) written size. This fixes bug #69592.
15505
15506 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
15507
15508         * icall.c: Added IsAuthenticodePresnet internal call.
15509         * image.c|h: New function that check a MonoImage for an Authenticode
15510         signature in the certificate PE data directory.
15511         * security.c|h: New internal call to ask the runtime if an 
15512         Authenticode signature seems referenced in the PE header.
15513
15514 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
15515
15516         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
15517
15518         * reflection.c (mono_image_create_pefile): Free the assembly streams
15519         after writing out the assembly file.
15520
15521         * object.c (mono_runtime_run_main): Fix small memory leak.
15522
15523         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
15524         property access modifiers. Fixes #69389.
15525
15526 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
15527
15528         * domain.c, object.c, object-internals.h, domain-internals.h,
15529         object.h, marshal.c: keep dynamic code info per domain.
15530
15531 2004-11-15  Martin Baulig  <martin@ximian.com>
15532
15533         * class.c (mono_type_get_name_recurse): Put type arguments in
15534         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
15535         see bug #68387.
15536
15537 2004-11-15  Martin Baulig  <martin@ximian.com>
15538
15539         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
15540         (mono_class_setup_vtable): When computing `the_cname' for a
15541         generic instance, don't include the namespace since we'd otherwise
15542         add it twice.
15543
15544 2004-11-15  Martin Baulig  <martin@ximian.com>
15545
15546         * class.c (mono_class_create_generic): Changed return type to void.
15547         (mono_class_create_generic_2): New public function; setup
15548         `class->method', `class->field' and `class->interfaces' here
15549         instead of in mono_class_init().
15550
15551         * class.h (mono_class_create_generic): Moved to class-internals.h.
15552
15553 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
15554
15555         * reflection.c (mono_image_create_pefile): take a file HANDLE.
15556         rather than writing to memory, write to this file. Right now,
15557         we are just writting into a buffer, and copying that. However
15558         we can avoid the buffer later.
15559
15560         (mono_dynamic_stream_reset): new function
15561
15562         * icall.c, object-internals.h: update for the above.
15563
15564 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
15565
15566         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
15567         have been using gc'd memory. First it is slower, unlikely
15568         the comment in the source code said, secondly, it increases
15569         our footprint to do it in the gc.
15570
15571         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
15572         the method so that it does not have to copy to managed code.
15573
15574 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
15575
15576         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
15577
15578 2004-11-12  Martin Baulig  <martin@localhost>
15579
15580         * reflection.c (mono_image_create_token): Allow generic method
15581         definitions here, since they may appear in an `.override'; see
15582         gen-98/gen-99 for an example.
15583
15584 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
15585
15586         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
15587         #69365.
15588
15589         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
15590         descriptive.
15591
15592 2004-11-11  Martin Baulig  <martin@ximian.com>
15593
15594         * class.c (mono_class_setup_vtable): In an explicit interface
15595         implementation, the method name now includes the arity.
15596
15597 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * object.c (mono_array_full_copy): Fix warning.
15600
15601 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
15602
15603         * appdomain.c: Removed look_for_method_by_name(). Use the new method
15604         mono_class_get_method_from_name() instead.
15605         
15606         * class-internals.h: Added two new types of wrappers. 
15607         Added MonoRemotingTarget enum. Added new trampoline function type, which
15608         takes an additional MonoRemotingTarget value as parameter, so it is
15609         possible to request a trampoline for a specific target.
15610         
15611         * class.c: Added new mono_class_get_method_from_name() method.
15612         
15613         * class.h: In MonoRemoteClass, we can have now to vtables, one for
15614         general remoting sinks and one specific for cross domain calls.
15615         
15616         * debug-helpers.c: Added new wrapper names.
15617         
15618         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
15619         of a remote class.
15620         
15621         * image.c: Porperly delete value objects form the remoting invoke hashtable.
15622         
15623         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
15624         with several other methods (mono_marshal_get_xappdomain_dispatch,
15625         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
15626         and others) can generate a fast remoting wrapper for cross domain calls.
15627         More information can be found in docs/remoting.
15628         Other changes: Removed mono_find_method_by_name, and used
15629         mono_class_get_method_from_name instead.
15630         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
15631         is stored in the remoting invoke hashtable.
15632         
15633         * marshal.h: published the new method for getting the xdomain wrapper,
15634         and also added a method for getting the adequate wrapper for a given
15635         method and target.
15636         
15637         * object-internals.h, object.c: Added a couple of methods for capying and
15638         cloning arrays.
15639         Modified mono_install_remoting_trampoline, which takes the new remoting
15640         trampoline that has a remoting target as parameter.
15641         mono_class_proxy_vtable now also takes a remoting target as parameter, and
15642         will return the most suitable vtable for the target.
15643         Added mono_remote_class_vtable, which returns the vtable of a remote class
15644         (which can be the normal remoting vtable or the xdomain vtable).
15645         
15646         * threads.c: the xdomain invoke and dispatch wrappers must also be
15647         protected against interruptions.
15648
15649 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15650
15651         * icall.c: use memmove in BlockCopyInternal when the source and
15652         destination arrays are the same.
15653
15654 2004-11-09  Martin Baulig  <martin@ximian.com>
15655
15656         * class-internals.h (MonoGenericContainer): Removed `method' and
15657         `signature', replaced them with `is_method' and `is_signature'
15658         flags.  Added `context'.
15659
15660         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
15661         instead of a `MonoGenericContainer *'.
15662
15663         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
15664         for dynamic type parameters.
15665         (mono_metadata_load_generic_params): Setup `container->context'.
15666
15667         * reflection.c (mono_reflection_setup_generic_class): Setup
15668         `tb->generic_container->context'.
15669         (do_mono_reflection_bind_generic_parameters): Use
15670         mono_class_inflate_generic_type() to correctly inflate types,
15671         rather than using our own hack just for MONO_TYPE_VAR.
15672
15673 2004-11-09  Martin Baulig  <martin@ximian.com>
15674
15675         * class.c (mono_class_inflate_generic_method): Small fix; don't
15676         crash here.
15677
15678         * icall.c
15679         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
15680         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
15681         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
15682         (ves_icall_Type_BindGenericParameters): Likewise.
15683         (ves_icall_Type_get_IsGenericInstance): Likewise.
15684         (ves_icall_Type_GetGenericParameterPosition): Likewise.
15685         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
15686         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
15687         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
15688
15689 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
15690
15691         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
15692         assembly versions and public key tokens. Fixes #69113.
15693
15694 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
15695
15696         * metadata.c: fix bug introduced with the type cache changes
15697         on 2004-11-06.
15698
15699 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
15700
15701         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
15702         the MonoClass pointer instead of the token in exception clauses.
15703         * reflection.c: updates for the above and make the code not depend
15704         on the structure of MonoExceptionClause.
15705
15706 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
15707
15708         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
15709         Add support for dynamic assemblies. Fixes #69114.
15710
15711         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
15712
15713 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
15714
15715         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
15716         since most only those methods use it. the code member of
15717         MonoMethodPInvoke was dead, so that can be removed too. Also,
15718         remove inline_count (again, not used), and move slot so that it
15719         can share bits with some other flags. This saves 8 bytes in the
15720         structure and gives us about 50 kb back for mcs helloworld.cs
15721
15722         * *.[ch]: Do naming changes for the above.
15723
15724         * loader.c (mono_method_get_header): Lazily init the header
15725         on first access.
15726         (mono_get_method_from_token): don't init the header here
15727         (mono_free_method): the header may never be allocated
15728
15729         Overall, this saves 150 kb of unmanaged allocations
15730         for mcs helloworld.cs. That accounts for 10% of the unmanaged
15731         memory at runtime.
15732         
15733         * loader.c, loader.h (mono_method_get_header): new accessor.
15734
15735         * *.[ch]: use the above method. Prepares us to lazily load
15736         the header.
15737
15738         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
15739         three warnings, which are actual bugs (see 69206).
15740
15741         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
15742         unused. Saves a cool 4 bytes / method.
15743
15744 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
15745
15746         * metadata.c (builtin_types): Add types for System.Object here.
15747         (mono_metadata_parse_type_full): Cache MonoType*'s that are
15748         for a class or valuetype from klass->this_arg or klass->byval_arg.
15749
15750         On mcs for a hello world, this gets us down from 21836 MonoType's
15751         to 14560.
15752
15753         (mono_metadata_free_type): Account for the above change.
15754
15755 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
15756
15757         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
15758         exception instead of asserting if name is null.
15759         (ves_icall_System_AppDomain_GetData): Ditto.
15760
15761 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
15762
15763         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
15764         EnumBuilder.
15765
15766         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
15767         Return NULL when the domain does not have entry_assembly set.
15768
15769         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
15770         Add a 'resource_modules' argument.
15771         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
15772
15773         * reflection.c (mono_reflection_create_runtime_class): Move setting
15774         of wastypebuilder here, so mono_get_type_object () returns a MonoType
15775         for enums too.
15776
15777         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
15778         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
15779         Throw an ArgumentNullException if 'ptr' is null.
15780
15781         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
15782         assemblies here. Fixes #69020.
15783
15784 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
15785
15786         * reflection.c (build_compressed_metadata): Fix the previous patch for
15787         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
15788         the stack.
15789
15790 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
15791
15792         * assembly.c (mono_assembly_names_equal): Allow a match if one of
15793         the cultures is false. Fixes #69090.
15794
15795         * reflection.c (build_compressed_metadata): Fix invalid memory read 
15796         detected by valgrind.
15797         
15798         * reflection.c (mono_reflection_get_type): Avoid triggering a 
15799         TypeResolve multiple times for the same type. Fixes #65577.
15800
15801 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
15802
15803         * marshal.c: Avoid using ldftn to call managed functions. It is
15804         much slower than just a call.
15805
15806         * reflection.c (mono_module_get_object): free the basename we
15807         allocate here from glib.
15808         
15809         * reflection.c (ensure_runtime_vtable): make sure to free
15810         overrides.  Also, we were allocating an array of MonoMethod not an
15811         array of MonoMethod*.
15812
15813         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
15814
15815         * image.c (mono_image_close): free image->guid here.
15816
15817 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
15818
15819         * reflection.c: Fix some spec conformance issues with the PE file
15820         structures so mcs compiled apps run on the Net 2.0 beta.
15821
15822 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
15823
15824         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
15825         Implement this. Fixes #67264.
15826
15827         * debug-helpers.h debug-helpers.c marshal.c: Move 
15828         mono_find_method_by_name to debug-helpers.c.
15829
15830 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
15831
15832         * object.c (mono_release_type_locks): type_initialization_hash is
15833         a GHashTable.
15834
15835         * reflection.c object.c object-internals.h: Fix warnings.
15836
15837         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
15838         without accessors. Fixes #61561.
15839
15840         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
15841         application base from the root domain if not set. Fixes #65641.
15842         (mono_runtime_init): Fix warning.
15843
15844 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15845
15846         * appdomain.c: call mono_thread_pool_init.
15847         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
15848         of worker threads based on the number of CPUs and the environment
15849         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
15850         for non-windows (windows) systems.
15851
15852 2004-10-27  Chris Toshok  <toshok@ximian.com>
15853
15854         * mono-debug-debugger.c (write_class): don't call mono_class_init
15855         here, as even with the check for (!klass->init_pending), we get
15856         into a situation where we're hitting cycles in class
15857         initialization.  Fixes #68816.
15858
15859 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
15860
15861         * image.c: Avoid overwriting values in the loaded_images_hash when an
15862         assembly is loaded multiple times. Fixes #61152.
15863
15864         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
15865         so multiple satellite assemblies for the same name can be loaded.
15866         Fixes #68259.
15867
15868         * mono_domain_assembly_preload: Actually return the loaded assembly, 
15869         not NULL.
15870
15871         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
15872         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
15873
15874         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
15875         pending finalizers are not invoked after the appdomain has been 
15876         unloaded. Fixes #67862.
15877
15878 2004-10-22  Martin Baulig  <martin@ximian.com>
15879
15880         * mono-debug-debugger.c
15881         (mono_debugger_runtime_invoke): Don't box valuetypes.
15882
15883 2004-10-22  Chris Toshok  <toshok@ximian.com>
15884
15885         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
15886         don't hide private methods.
15887
15888 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
15889
15890         * icall.c: Allows the runtime to "share" (when known) the public key
15891         token of an assembly. This avoid the need to recalculate the token 
15892         (from the public key) in managed code.
15893
15894 2004-10-21  Chris Toshok  <toshok@ximian.com>
15895
15896         * debug-helpers.c (append_class_name): argh, revert last patch.
15897         
15898 2004-10-21  Chris Toshok  <toshok@ximian.com>
15899
15900         * debug-helpers.c (append_class_name): use '+' as the delimiter,
15901         not '/', so that it matches what the debugger uses to look up
15902         methods.
15903
15904 2004-10-21  Martin Baulig  <martin@ximian.com>
15905
15906         * mono-debug-debugger.c (mono_debugger_throw_exception): New
15907         public method; this is called each time an exception is thrown and
15908         allows the debugger to use exception catch points.
15909
15910 2004-10-21  Martin Baulig  <martin@ximian.com>
15911
15912         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
15913         the stack pointer and the exception object in some struct and pass
15914         that to the debugger.
15915
15916 2004-10-21  Chris Toshok  <toshok@ximian.com>
15917
15918         * mono-debug-debugger.c (do_write_class): add instance/static
15919         event support.  We don't expose "raise" or "other" yet.
15920         (event_is_static): new method.
15921
15922 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
15923
15924         * mono-debug-debugger.c
15925         (mono_debugger_handle_exception): Remove
15926         bogus return value for fussy compilers.
15927
15928 2004-10-20  Martin Baulig  <martin@ximian.com>
15929
15930         * mono-debug-debugger.c
15931         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
15932         (mono_debugger_handled_exception): Likewise.
15933
15934 2004-10-20  Martin Baulig  <martin@ximian.com>
15935
15936         * mono-debug-debugger.h (MonoDebuggerEvent): Added
15937         MONO_DEBUGGER_EVENT_EXCEPTION.
15938
15939         * mono-debug-debugger.c (mono_debugger_handle_exception): New
15940         public function to send the debugger a notification for an
15941         exception and inform it about a catch/finally clause.
15942
15943 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
15944
15945         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
15946         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
15947         fix 2.95 build. 
15948
15949         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
15950
15951 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
15952
15953         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
15954         marshalled as [In,Out]. Fixes #58325.
15955
15956 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
15957
15958         * reflection.c (mono_method_body_get_object): Implement some fields.
15959
15960 2004-10-12  Martin Baulig  <martin@ximian.com>
15961
15962         * reflection.c (mono_reflection_bind_generic_parameters): Small
15963         fix, correctly retrieve our parent from a generic instance.
15964
15965 2004-10-12  Martin Baulig  <martin@ximian.com>
15966
15967         * metadata.c (mono_metadata_generic_param_equal): We always have
15968         an owner.
15969
15970         * class.c
15971         (mono_class_from_generic_parameter): We need to have an owner.
15972         (my_mono_class_from_generic_parameter): Likewise.
15973
15974         * reflection.c (mono_reflection_setup_generic_class): Renamed to
15975         mono_reflection_create_generic_class() and added a new
15976         mono_reflection_setup_generic_class().  
15977         (mono_reflection_initialize_generic_param): If we're a nested
15978         generic type and inherited from the containing class, set our
15979         owner to the outer class.
15980
15981 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
15982
15983         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
15984
15985         * reflection.c (mono_method_body_get_object): New function to create
15986         a MethodBody object.
15987
15988         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
15989
15990 2004-10-11  Martin Baulig  <martin@ximian.com>
15991
15992         * metadata.c (_mono_metadata_type_equal): Renamed to
15993         do_mono_metadata_type_equal() and made static.
15994
15995 2004-10-11  Martin Baulig  <martin@ximian.com>
15996
15997         * appdomain.c: Bump corlib version number to 28.
15998
15999 2004-10-10  Martin Baulig  <martin@ximian.com>
16000
16001         * class-internals.h
16002         (MonoGenericInst): Added `MonoGenericContainer *container'.
16003         (MonoGenericMethod): Likewise.
16004         (MonoGenericContext): Likewise.
16005         (MonoGenericParam): Added `MonoGenericContainer *owner'.
16006
16007         * metadata.c
16008         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
16009         (do_mono_metadata_parse_generic_inst): Likewise.
16010         (mono_metadata_parse_type_full): New public method.  This is the actual
16011         mono_metadata_parse_type() implementation - with an additional
16012         `MonoGenericContainer *' argument.
16013         (mono_metadata_parse_array_full): Likewise.
16014         (mono_metadata_parse_signature_full): Likewise.
16015         (mono_metadata_parse_method_signature_full): Likewise.
16016         (mono_metadata_parse_mh_full): Likewise.
16017         (mono_type_create_from_typespec): Likewise.
16018         (mono_metadata_interfaces_from_typedef_full): New public method;
16019         this is similar to the other _full() methods, but we take a
16020         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
16021         (mono_metadata_parse_generic_param): Take an additional
16022         `MonoGenericContainer *' argument and lookup the MonoGenericParam
16023         from that container.
16024         (mono_metadata_generic_param_equal): New static method to compare
16025         two type parameters.
16026         (_mono_metadata_type_equal): New static method; takes an
16027         additional `gboolean signature_only' argument - if true, we don't
16028         compare the owners of generic parameters.
16029         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
16030         with a TRUE argument - do a signature-only comparision.
16031
16032         * loader.c: Use the new _full() methods and pass the
16033         MonoGenericContainer to them.
16034
16035         * object-internals.h (MonoReflectionTypeBuilder): Added
16036         `MonoGenericContainer *generic_container' field.
16037         (MonoReflectionMethodBuilder): Likewise.
16038
16039 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
16040
16041         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
16042         case initial images of dynamic assemblies.
16043
16044         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
16045
16046         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
16047
16048         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
16049         length of event->other array.
16050         (typebuilder_setup_events): Ditto.
16051
16052         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
16053         'assembly_by_name' and add an 'assemblies' list.
16054
16055         * assembly.h assembly.c: Add a new search hook for determining whenever
16056         an assembly is already loaded. Use this instead of searching in the
16057         loaded_assemblies list.
16058
16059         * domain.c appdomain.c: Implement the new search hook so loaded 
16060         assemblies are now scoped by appdomain. Fixes #67727.
16061
16062 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
16063
16064         * threads.c (mono_thread_attach): Initialize synch_lock field so
16065         mono_thread_detach works again.
16066
16067         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
16068         'lib' too. Fixes #63130.
16069
16070 2004-10-06  Jackson Harper  <jackson@ximian.com>
16071
16072         * culture-info-tables.h: regenerated.
16073
16074 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
16075
16076         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
16077         implemented by other interfaces in the result. Fixes #65764.
16078         
16079         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16080         Handle unloadable modules without crashing.
16081
16082         * image.c (load_modules): Revert the previous patch since modules must
16083         have a fixed index inside the array.
16084         
16085         * image.c (load_modules): Don't include native modules in the modules
16086         array.
16087
16088 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
16089
16090         * reflection.h: Add param_defaults field.
16091
16092         * reflection.c: Add support for parameter defaults in dynamic methods.
16093         Fixes #64595.
16094
16095         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
16096         an empty string when a type has no namespace. Fixes #64230.
16097
16098 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
16099
16100         * tabledefs.h: Added "internal" security actions to support non-CAS
16101         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
16102         Note: they do not seems to be used anymore in 2.0 (new metadata format)
16103
16104 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
16105
16106         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
16107         constructor of abstract class. Fixes #61689.
16108
16109 2004-10-04  Martin Baulig  <martin@ximian.com>
16110
16111         * class-internals.h (MonoGenericContainer): New type.
16112         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
16113         `MonoGenericContainer *generic_container'.
16114         (MonoClass): Replaced `gen_params' and `num_gen_params' with
16115         `MonoGenericContainer *generic_container'.
16116
16117         * metadata.c (mono_metadata_load_generic_params): Return a
16118         `MonoGenericContainer *' instead of a `MonoGenericParam *';
16119         removed the `num' argument.
16120
16121 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
16122
16123         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
16124         for dynamic images.
16125
16126         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
16127         machine fields.
16128
16129         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
16130
16131         * reflection.c: Save pe_kind and machine values into the generated
16132         image file.
16133
16134         * appdomain.c: Bump corlib version number.
16135
16136         * object-internals.h: Reorganize layout of LocalBuilder.
16137
16138         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
16139         New helper function.
16140
16141         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
16142         created MonoType for dynamic types. Fixes #66180.
16143
16144 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
16145
16146         * threadpool.c: the ares hashtable needs a critical section around it.
16147         this prevents some nasty segfaults
16148
16149 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
16150
16151         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
16152         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
16153         bug 67324).
16154         
16155 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16156
16157         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
16158         
16159 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
16160
16161         * image.c: Always canonicalize image file names, to avoid loading
16162         the same assembly twice when referenced using a relative path.
16163
16164 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16165
16166         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
16167
16168         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
16169
16170         * marshal.c: Fix warnings.
16171
16172 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
16173
16174         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
16175         attempting to marshal the delegate_trampoline as the method_addr.
16176         This patch has a static hashtable of marshalled delegates so that 
16177         we can map delegate_trampoline addresses back to delegates.  This
16178         allows a delegate passed to managed code to be passed back into native
16179         code.  Fixes #67039
16180
16181 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16182
16183         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
16184
16185         * reflection.c (method_encode_code): Align method headers properly.
16186         Fixes #66025.
16187
16188 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16189
16190         * marshal.c: In the runtime invoke wrapper, reset the abort
16191         exception if it is cached. This avoids the automatic rethrowal of 
16192         the exception after the catch of the wrapper. Also check for pending
16193         interruptions before calling the managed method. This is done using
16194         the new method emit_thread_force_interrupt_checkpoint, since the
16195         normal checkpoint method is ignored when running the invoke wrapper.
16196         * object.c: If the abort exception is rethrown, set the abort_exc
16197         field of the thread, so it will be rethrown aftere every catch.
16198         * threadpool.c: Only run an interruption checkpoint if what has been
16199         requested is a stop of the thread (aborts will be ignored).
16200         * threads.c: By default, a thread will now never be interrumped while
16201         running the runtime invoke wrapper (this ensures that runtime_invoke
16202         will always return to the caller if an exception pointer is provided).
16203         There is a new special method mono_thread_force_interruption_checkpoint()
16204         to force an interruption checkpoint even if running a protected
16205         wrapper, which is used by the same runtime invoke wrapper to do a check
16206         at a safe point.
16207
16208 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16209
16210         * object.c, object-internals.h: Implemented mono_release_type_locks,
16211         which releases the cctor locks held by a thread.
16212         * threads.c, threads.h: In thread_cleanup, release cctor locks held
16213         by a thread. Added mono_thread_exit() method to be used to safely stop
16214         a thread.
16215
16216 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16217
16218         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16219         Move null check before dereference.  Avoid indexing beyond the end
16220         of the 'modules' array.
16221
16222 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16223
16224         * metadata-internals.h (MonoImage): Add module_count field.
16225         * image.c (load_modules): Set image->module_count.
16226         (mono_image_load_file_for_image): Use image->module_count.
16227         * reflection.c (mono_image_load_module): Append to image->modules array 
16228         of dynamic assembly.
16229         (mono_module_get_object): Fix loop to actually increment index.
16230         Use image->module_count.
16231         * assembly.c (mono_assembly_load_references): Use image->module_count.
16232         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
16233         Likewise.
16234
16235 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16236
16237         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
16238         Avoid assert on generic types.
16239
16240 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
16241
16242         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
16243
16244         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
16245
16246         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
16247         function to convert a MarshalSpec structure to its managed counterpart.
16248
16249         * reflection.c: Fix warnings.
16250         
16251         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
16252         field.
16253
16254         * icall.c (mono_create_icall_signature): Fix build.
16255
16256 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
16257
16258         * icall.c: Add MakePointType icall.
16259
16260         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
16261         warnings.
16262
16263 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16264
16265         * threadpool.c: reuse allocated slots in the queue.
16266
16267 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
16268
16269         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
16270
16271         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
16272
16273         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
16274         previous change.
16275
16276         * tabledefs.h: Add constants for pinvoke attributes BestFit and
16277         ThrowOnUnmappableChar.
16278
16279         * icall.c (ves_icall_Type_GetPacking): New icall.
16280
16281 2004-09-24  Martin Baulig  <martin@ximian.com>
16282
16283         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
16284
16285 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16286
16287         * appdomain.c:
16288         (mono_domain_set): allow setting a domain that is being unloaded.
16289         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
16290         being unloaded.
16291
16292 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16293
16294         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
16295         the GetCustomAttributes icall.
16296
16297 2004-09-23  Martin Baulig  <martin@ximian.com>
16298
16299         * object-internals.h (MonoReflectionGenericParam): Replaced
16300         'has_ctor_constraint', `has_reference_type' and `has_value_type'
16301         with `guint32 attrs'.
16302
16303 2004-09-23  Martin Baulig  <martin@ximian.com>
16304
16305         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
16306
16307 2004-09-23  Martin Baulig  <martin@ximian.com>
16308
16309         * object-internals.h (GenericParameterAttributes): New enum.
16310
16311 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16312
16313         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
16314         
16315         * class.c (init_events): Fill out event->other field.
16316
16317         * class.c: Fix warnings.
16318
16319         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
16320
16321 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
16322
16323         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
16324         walk which doesn't supply the IL offset.
16325
16326 2004-09-22  Martin Baulig  <martin@ximian.com>
16327
16328         * reflection.c (mono_reflection_setup_internal_class): If we're
16329         System.ValueType, System.Object or System.Enum, set
16330         `klass->instance_size' and create the vtable.
16331         (mono_reflection_create_internal_class): If we're an enum type,
16332         get the base class from our current corlib.
16333
16334 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
16335
16336         * reflection.h (MonoResolveTokenError): New type.
16337
16338         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
16339         icall.
16340
16341         * icall.c: Add an 'error' argument to the ResolveToken icalls.
16342
16343 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
16344
16345         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
16346         Support also calling constructors, but only for already allocated objects.
16347
16348 2004-09-17  Geoff Norton <gnorton@customerdna.com>
16349
16350         * reflection.c (type_get_qualified_name): If the klass is null
16351         return the typename to avoid a NullRefEx.
16352         (encode_cattr_value): Get the qualified name of the boxed type,
16353         not the underlying enumtype.  Fixes #62984.
16354
16355 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
16356
16357         * marshal.c: Fix problems with previous checkin.
16358
16359 2004-09-21    <vargaz@freemail.hu>
16360
16361         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
16362         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
16363
16364         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
16365
16366 2004-09-21  Geoff Norton <gnorton@customerdna.com>
16367
16368         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
16369         should only return a type for pointers, arrays, and passbyref types.
16370         Fixes bug #63841.
16371
16372 2004-09-21  Martin Baulig  <martin@ximian.com>
16373
16374         * domain.c (mono_debugger_check_runtime_version): New public
16375         function.
16376
16377         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
16378
16379 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
16380
16381         * reflection.c: Added missing sort to the declarative security 
16382         attributes table. MS implementation stops seeing the attributes if the
16383         token number regress in the table (as shown by ildasm and permview).
16384
16385 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
16386
16387         * object-internals.h (MonoReflectionModule): Add 'token' field.
16388         
16389         * reflection.c (mono_reflection_get_token): Add support for Module
16390         and Assembly.
16391         (mono_module_get_object): Set 'token' field.
16392         (mono_module_file_get_object): Set 'token' field.
16393
16394         * icall.c: Add new Assembly and Module icalls.
16395
16396         * appdomain.c: Bump corlib version.
16397
16398 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
16399
16400         * loader.h loader.c class.h class.c: Add helper functions for obtaining
16401         tokens of metadata objects.
16402
16403         * reflection.h reflection.c (mono_reflection_get_token): New function
16404         to obtain the token of a metadata object.
16405
16406         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
16407
16408 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
16409
16410         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
16411         
16412         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
16413
16414 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
16415
16416         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
16417         * object-internals.h: Added 3 MonoArray* members to MonoReflection
16418         AssemblyBuilder to access the permissions set in the class lib.
16419         * reflection.c: Added security attributes encoding step in 
16420         mono_image_build_metadata.
16421         * tabledefs.h: Added new security actions defined in 2.0:
16422         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
16423
16424 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16425
16426         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
16427         macro parameter.
16428
16429 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16430  
16431         * locales.c: nullify the ICU_collator member of CompareInfo when it is
16432           finalized. There where random SIGSEVs at program termination, when
16433           an object being finalized was trying to do a string comparison and
16434           the current culture was already finalized.
16435  
16436 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16437
16438         * threads.c: call thread_cleanup before finishing the thread if we get
16439         there.
16440
16441 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
16442
16443         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
16444         assemblies from the parent. Fixes #65665.
16445
16446 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
16447
16448         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
16449         modifiers.
16450
16451 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
16452
16453         * reflection.h: add prototype for mono_get_dbnull_object
16454         * reflection.c: add prototypes for get_default_param_value_blobs 
16455         and mono_get_object_from_blob for fussier compilers
16456
16457 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
16458  
16459         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
16460         false deadlock checks in class initialization.
16461  
16462 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
16463
16464         * image.c (mono_image_addref): Fix comment.
16465
16466         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
16467         possible.
16468
16469 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
16470
16471         * reflection.c (mono_param_get_objects): Modified to return
16472         ParameterInfo.DefaultValue object.
16473
16474         (get_default_param_value_blobs):
16475         (mono_get_object_from_blob):
16476         (mono_get_dbnull_object): New helper routines. 
16477
16478         * object.c (mono_get_constant_value_from_blob): New helper routine
16479         carved out from get_default_field_value ()
16480
16481         * object-internals.h (mono_get_constant_value_from_blob): Added
16482         function declaration.
16483
16484 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
16485
16486         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
16487         referenced assemblies. Fixes #62135.
16488
16489         * exception.h exception.c (mono_get_exception_file_not_found2): New
16490         helper function.
16491
16492 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
16493
16494         * class.h class.c: Add mono_type_get_underlying_type ().
16495
16496 2004-09-09  Geoff Norton <gnorton@customerndna.com>
16497
16498         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
16499         Fix GetTypes() to support dynamically created assemblies.
16500
16501 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
16502
16503         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
16504         
16505         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
16506         previous patch.
16507
16508         * reflection.h reflection.c loader.c: Allow dynamic construction of
16509         pinvoke methods. Fixes #65571.
16510         
16511         * reflection.c (mono_reflection_get_type): Revert previous change since
16512         it causes regressions.
16513
16514 2004-09-08  Martin Baulig  <martin@ximian.com>
16515
16516         * class.c (class_compute_field_layout): Don't call
16517         mono_class_layout_fields() for open generic instances.
16518
16519 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
16520         * threads.c appdomain.c: fix typo in GC macro
16521
16522 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16523
16524         * threads.c: don't call mono_thread_detach() in start_wrapper(),
16525         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
16526
16527 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
16528
16529         * image.c (mono_image_close): Applied patch from 
16530         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
16531         assembly is loaded multiple times from data.
16532         
16533         * image.c (mono_image_open): Fix warning.
16534
16535 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16536
16537         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
16538         once. Fixes #58334.
16539         
16540         * reflection.c (mono_reflection_create_runtime_class): Initialize
16541         klass->nested_classes. Fixes #61224.
16542
16543 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
16544
16545         * threads.c: sched_yield() on exit, to allow threads to quit.
16546
16547 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16548
16549         * object.c (mono_unhandled_exception): Remove leftover debug code.
16550
16551 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
16552
16553         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
16554
16555 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16556
16557         * marshal.c (emit_marshal_array): Really null terminate string arrays.
16558         
16559         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
16560
16561 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16562
16563         * marshal.c (emit_marshal_array): Null terminate string arrays.
16564         
16565         * marshal.c (raise_auto_layout_exception): Fix warning.
16566
16567         * reflection.c (mono_param_get_objects): Initialize the default value
16568         with DBNull.Value, not null. Fixes #62123.
16569
16570 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
16571
16572         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
16573         throw an exception with a cute explanation.
16574
16575 2004-09-06  Dick Porter  <dick@ximian.com>
16576
16577         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
16578         Close the new process's thread handle, as we don't use it.  The
16579         handle stays around forever otherwise.
16580
16581 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16582
16583         * object.c (arith_overflow): Fix warning.
16584
16585         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
16586         calling conventions in method refs. Fixes #65352.
16587
16588         * reflection.c: Fix warnings.
16589
16590 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
16591
16592         * icall.c: Add a new icall for Array.Clear
16593
16594 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
16595
16596         * object.c: When allocating an array, we have to throw
16597         an overflow exception if any of the lengths are < 0.
16598
16599 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16600
16601         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
16602         properly. Also move implementation of string array marshalling to 
16603         managed code. Fixes #42316.
16604
16605 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16606
16607         * assembly.c: provide more information when loading an assembly fails.
16608
16609 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16610
16611         * filewatcher.c: don't expect the development fam package to be
16612         installed.
16613
16614 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
16615
16616         * marshal.c: Make a copy of the signature cookie since it will be
16617         freed by the caller.
16618         
16619         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
16620
16621         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
16622
16623         * metadata.c (mono_metadata_free_marshal_spec): New function to free
16624         marshal specs.
16625
16626         * marshal.c: More refactoring.
16627         
16628         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
16629         smaller functions.
16630
16631 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
16632
16633         * object.c: In mono_message_invoke, fill the output parameter array after
16634           calling the managed method (it was done before the call). This fixes
16635           bug #59299.
16636
16637 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
16638
16639         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
16640         as well.
16641
16642 2004-09-02  Martin Baulig  <martin@ximian.com>
16643
16644         * class.c (mono_class_instance_size): Don't allow generic type
16645         definitions or open generic instances.
16646         (mono_class_array_element_size): If we're a value type, call
16647         mono_class_instance_size() on the original class.
16648
16649         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
16650         handle generic instances.
16651
16652         * mono-debug-debugger.c (write_type): Handle generic instances
16653         like classes.
16654
16655 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
16656
16657         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
16658         the allocation request fails. Fixes #65089.
16659
16660         * object.c (mono_runtime_free_method): Do not call mono_free_method.
16661         
16662         * object.c (mono_runtime_free_method): New function to free a dynamic
16663         method.
16664
16665         * marshal.c (mono_delegate_free_ftnptr): New function to free the
16666         delegate trampoline.
16667
16668         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
16669         with hasthis as dynamic,
16670
16671         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
16672
16673         * domain.c (mono_jit_info_table_remove): New function to remove an
16674         entry from the jit info table.
16675
16676         * class-internals.h (MonoMethod): Add 'dynamic' field.
16677
16678         * loader.c: Fix warnings.
16679
16680 2004-09-01  Martin Baulig  <martin@ximian.com>
16681
16682         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
16683         instead of mono_debugger_lock() because the latter one is a no-op
16684         unless running in the debugger.
16685
16686 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
16687
16688         * class.c (class_compute_field_layout): Classes with auto-layout or
16689         reference fields are not blittable.
16690         
16691 2004-09-01  Dick Porter  <dick@ximian.com>
16692
16693         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
16694         mono_image_get_filename() to get the assembly location.
16695
16696         * icall.c:
16697         * metadata.h: Fix compile warnings
16698
16699 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
16700
16701         * class.c (class_compute_field_layout): System.Object is blittable.
16702
16703         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
16704         as in/out. Fixes #59909.
16705
16706 2004-09-01  Martin Baulig  <martin@ximian.com>
16707
16708         * metadata.h (MONO_TYPE_ISREFERENCE): Call
16709         mono_metadata_generic_inst_is_valuetype() if we're a generic
16710         instance to check whether our underlying type is a reference type.
16711
16712 2004-09-01  Martin Baulig  <martin@ximian.com>
16713
16714         * metadata.c (mono_type_size): If we're a generic instance, call
16715         mono_class_value_size() for value types.
16716
16717 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
16718
16719         * marshal.c: Implement more custom marshalling functionality. Fixes
16720         #64915.
16721
16722 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
16723
16724         * mono-debug.c, debug-mono-symfile.c: add some locking love.
16725
16726 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
16727
16728         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
16729
16730         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
16731
16732         * icall.c: Fix some warnings.
16733
16734         * threads.c (abort_appdomain_thread): Fix unref errors.
16735         (mono_thread_current): Fix THREAD_DEBUG define.
16736
16737 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
16738
16739         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
16740
16741         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
16742
16743 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
16744
16745         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
16746         string arrays.
16747
16748 2004-08-28  Martin Baulig  <martin@ximian.com>
16749
16750         * metadata.c
16751         (mono_metadata_generic_inst_is_valuetype): New public function.
16752
16753         * metadata.h (MONO_TYPE_ISSTRUCT): Call
16754         mono_metadata_generic_inst_is_valuetype() if we're a generic
16755         instance to check whether our underlying type is a valuetype.
16756
16757 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
16758
16759         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
16760         #63768.
16761
16762 2004-08-25  Martin Baulig  <martin@ximian.com>
16763
16764         * loader.c (mono_get_method_from_token): Abstract methods can also
16765         be generic and thus have type parameters.
16766
16767         * metadata-internals.h
16768         (MonoDynamicImage): Added `GPtrArray *gen_params'.
16769
16770         * reflection.c (mono_image_get_generic_param_info): Don't create a
16771         metadata row, just add an entry to the `gen_params' array.
16772         (build_compressed_metadata): Sort the `gen_params' array and then
16773         actually create the metadata.
16774
16775 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16776
16777         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
16778
16779 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
16780
16781         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
16782
16783 2004-08-24  Martin Baulig  <martin@ximian.com>
16784
16785         * class.cs (mono_class_is_subclass_of): Like an interface, a
16786         generic instance also derives from System.Object.
16787
16788 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
16789
16790         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
16791         custom modifiers to be in any order. Fixes #61990.
16792
16793 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
16794
16795         * object.c: Register mono_object_new_fast icall.
16796         
16797         * object.c (mono_class_get_allocation_ftn): Return to calling
16798         mono_object_new_fast, since it seems faster to compute the object 
16799         size in unmanaged code than passing it as a parameter.
16800
16801         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
16802
16803         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
16804         this function with Boehm as the oom handler, so we don't have to check
16805         the result of GC_malloc.
16806
16807         * object.c: Remove checks for oom.
16808
16809         * object.h object.c (mono_class_get_allocation_ftn): New function to
16810         return the icall which can be used to allocate an instance of a given
16811         class. 
16812
16813         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
16814
16815         * class-internals.h: Add 'enabled' field.
16816
16817 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
16818
16819         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
16820
16821 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
16822         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
16823         value 0x0010.
16824
16825 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
16826
16827         * appdomain.c: use the Tls function for appdomain too,
16828         at Zoltan's request. Actually return in mono_context_get
16829
16830         * appdomain.c, profiler.c, threads.c: use __thread
16831
16832 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
16833
16834         * appdomain.c threads.c: Call GC_CreateThread on windows.
16835
16836         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
16837         multiple libraries since this don't work on windows.
16838
16839 2004-08-18  Martin Baulig  <martin@ximian.com>
16840
16841         * class-internals.h
16842         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
16843         MonoMethodHeader.
16844
16845         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
16846         MonoMethodNormal since we also need it for abstract and interface
16847         methods.
16848
16849         * reflection.c
16850         (build_compressed_metadata): Sort the GenericParam table.
16851         (mono_image_create_token): Added `gboolean create_methodspec'
16852         argument; this is false when generating a MethodImpl token.
16853         (reflection_methodbuilder_to_mono_method): Abstract and interface
16854         methods may also have generic parameters.
16855
16856 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
16857
16858         * appdomain.c: thread local alloc
16859
16860 2004-08-17  Martin Baulig  <martin@ximian.com>
16861
16862         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
16863
16864         * icall.c
16865         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
16866         argument.
16867
16868         * class.c (mono_type_get_full_name): New public function.
16869         (mono_type_get_name): Don't include the type arguments.
16870
16871 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
16872
16873         * Makefile.am: Build static versions of libmetadata and libmonoruntime
16874         for inclusion into the mono executable.
16875
16876 2004-08-16  Martin Baulig  <martin@ximian.com>
16877
16878         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
16879         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
16880
16881 2004-08-14  Martin Baulig  <martin@ximian.com>
16882
16883         * class.c (dup_type): Also copy the `byref' field.
16884
16885 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
16886
16887         * reflection.c (create_dynamic_mono_image): Revert the last change 
16888         since it breaks bootstrap.
16889
16890 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
16891
16892         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
16893
16894         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
16895         not free them with g_free.
16896
16897 2004-08-11  Martin Baulig  <martin@ximian.com>
16898
16899         * reflection.c (mono_reflection_setup_internal_class): Also call
16900         mono_class_setup_mono_type() if we already have a `tb->type.type'.
16901
16902 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
16903
16904         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
16905         called during default (first) AppDomain creation. Keep track of
16906         Evidence when loading assemblies.
16907
16908 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
16909
16910         * opcodes.c, opcodes.h: reduce runtime relocations.
16911
16912 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
16913
16914         * culture-info.h, locales.c: fixes and chages to sue the new
16915         optimized format of the locale data.
16916         * culture-info-tables.h: regenerated.
16917
16918 2004-08-06  Geoff Norton <gnorton@customerdna.com>
16919         
16920         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
16921
16922 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
16923
16924         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
16925         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
16926         * domain-internals.h: icall declaration.
16927         * icall.c: icall registration.
16928         * object-internals.h: New fields in MonoAssembly for CAS.
16929
16930 2004-08-05  Duncan Mak  <duncan@ximian.com>
16931
16932         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
16933         CEE_LDELEM_ANY.
16934
16935 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
16936
16937         * reflection.c: fix to deal with object[] arrays in custom ctors
16938         (bug #62550).
16939
16940 2004-08-05  Martin Baulig  <martin@ximian.com>
16941
16942         * class.c (mono_class_array_element_size): Added support for
16943         generic instances and correctly handle "recursive" types.
16944
16945 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
16946
16947         * assembly.c: Fix warnings.
16948
16949 2004-08-04  Martin Baulig  <martin@ximian.com>
16950
16951         * class.c
16952         (mono_type_get_name_recurse): Added `gboolean include_arity'
16953         argument specifying whether or not we should include the generic
16954         arity in the type name.
16955         (_mono_type_get_name): New static function.
16956         (mono_class_setup_vtable): If we're a generic instance, don't
16957         include the generic arity in the names of explicit method
16958         implementations.        
16959
16960 2004-08-03  Martin Baulig  <martin@ximian.com>
16961
16962         * class.c (mono_type_get_name_recurse): Enclose the generic type
16963         arguments in `<', '>'.
16964
16965 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
16966
16967         * gc.c: make GC warning messages use the trace API, they are just
16968         noise to most of the users.
16969
16970 2004-08-03  Martin Baulig  <martin@ximian.com>
16971
16972         * debug-mono-symfile.c (read_string): Correctly read the string.
16973
16974 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
16975
16976         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
16977         
16978         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
16979         icalls.
16980         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
16981
16982 2004-07-30  Martin Baulig  <martin@ximian.com>
16983
16984         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
16985         Reflect latest symbol writer changes.   
16986
16987 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
16988
16989         * object.c: always create an object if null is passed
16990         to Invoke() where a valuetype is expected.
16991
16992 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
16993
16994         * marshal.c (mono_marshal_init): make managed
16995         signatures match native ones better for 64bits.
16996
16997 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16998
16999         * appdomain.c: hack to build correctly the private bin path on windows.
17000         Fixes bug #61991.
17001
17002 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
17003
17004         * assembly.c: Load mscorlib from the correct framework directory
17005           (mono/<version>/mscorlib.dll).
17006         * appdomain.h: Added prototypes for new functions.
17007         * internals.h: Added some prototypes.
17008         * domain.c: When initializing the runtime, get from the executable and
17009           the configuration files the runtime version that the app supports.
17010           Added support methods for reading app.exe.config. Added list of versions
17011           supported by the JIT. Added two new methods: mono_init_from_assembly,
17012           which initializes the runtime and determines the required version from
17013           the provided exe file, and mono_init_version, which initializes
17014           the runtime using the provided version.
17015         * icall.c: Get machine.config from version-specific directory.
17016         * reflection.c: When generating an image, embed the version number
17017           of the current runtime.
17018
17019 2004-07-28  Dick Porter  <dick@ximian.com>
17020
17021         * socket-io.c
17022         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
17023         returned sockaddr size before creating the remote address object.
17024         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
17025         61608.
17026
17027 2004-07-28  Dick Porter  <dick@ximian.com>
17028
17029         * locales.c (string_invariant_compare_char): Fix invariant char
17030         compares between upper and lower cases.  Fixes bug 61458.
17031
17032 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
17033         
17034         * marshal.c: actually cache stelem.ref wrappers.
17035         
17036 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
17037
17038         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
17039         sections and remove the mono_cli_rva_map () function.
17040
17041 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17042
17043         * debug-mono-symfile.c: fix one more endianess issue, from a patch
17044         by Geoff Norton (<gnorton@customerdna.com>).
17045
17046 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17047
17048         * class.c: fix class loads for pointer types (typeof(int) !=
17049         typeof(int*)).
17050
17051 2004-07-27  Martin Baulig  <martin@ximian.com>
17052
17053         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
17054         reading the debugging information from an external ".mdb" file.
17055
17056 2004-07-24  Martin Baulig  <martin@ximian.com>
17057
17058         * reflection.c (mono_image_get_type_info): Only write a class
17059         layout entry if we actually have a size or a packing size.
17060
17061 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17062
17063         * reflection.c (type_get_fully_qualified_name): 
17064         insert cast to get type checking of ?: with non-gcc compilers
17065
17066 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17067
17068         * rand.c: use g_getenv for both lookups of
17069         MONO_EGD_SOCKET
17070
17071 2004-07-17  Martin Baulig  <martin@ximian.com>
17072
17073         * reflection.c (mono_reflection_bind_generic_method_parameters):
17074         Set `gmethod->reflection_info'.
17075
17076 2004-07-17  Martin Baulig  <martin@ximian.com>
17077
17078         * class.c (mono_class_create_from_typedef): Insert the newly
17079         created class into the hash table before computing the interfaces
17080         since we could be called recursively.
17081
17082 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
17083
17084         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
17085         function to implement stelem.ref in managed code
17086         * class-internals.h, debug-helpers.c: a new wrapper type
17087         for the above.
17088
17089 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17090
17091         * gc.c: allow GC handles to work even when no GC is compiled in.
17092         Fix part of bug #61134 (GetAddrOfPinnedObject).
17093
17094 2004-07-13  Peter Williams  <peter@newton.cx>
17095  
17096         * process.c (complete_path): Make sure we don't attempt to execute
17097         directories.
17098  
17099 2004-07-12  Geoff Norton <gnorton@customerdna.com>
17100
17101         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
17102           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
17103           and will add/subtract the hour if needed
17104
17105 2004-07-12  Martin Baulig  <martin@ximian.com>
17106
17107         * reflection.c (mono_field_get_object): If we have
17108         `field->generic_info', take the attributes from
17109         `field->generic_info->generic_type'.    
17110
17111 2004-07-12  Martin Baulig  <martin@ximian.com>
17112
17113         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
17114         This function must be called before initializing the runtime.
17115         (mono_debug_init_1): New function; call this after initializing
17116         the runtime, but before loading the assembly.  It tells the
17117         debugger to load corlib and the builtin types.
17118
17119         * mono-debug-debugger.c: Did some larger changes in the debugging
17120         code; support recursive class declarations, make sure we actually
17121         add all classes.
17122
17123 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17124
17125         * debug-helpers.c: undo my previous patch and fixed the real issue in
17126         ../mini/exceptions-x86.c
17127
17128 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17129
17130         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
17131         when no HOME env. variable was set and a NullRef was thrown in a .cctor
17132         called from other .cctors.
17133
17134 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17135
17136         * loader.c: Removed the mono_loader_wine_init hack now that we are
17137         doing a managed version of Windows.Forms.
17138
17139 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
17140
17141         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
17142         threadpool.c, threads.c: remove static data from rootset.
17143
17144 2004-07-09  Dick Porter  <dick@ximian.com>
17145
17146         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
17147         Don't do any more processing if the matched length was 0.  It was
17148         increasing the size of the string before.  Fixes bug 61167.
17149
17150 2004-07-09  Dick Porter  <dick@ximian.com>
17151
17152         * socket-io.h:
17153         * socket-io.c
17154         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
17155         Add support for SO_PEERCRED if its available.
17156
17157 2004-07-09  Peter Bartok <pbartok@novell.com>
17158         * loader.c: winelib.exe.so error message is now only displayed if
17159         MONO_DEBUG is set. To help us avoid questions when people are trying
17160         out the new Managed.Windows.Forms.
17161
17162 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
17163
17164         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
17165         for isinst and castclass wrappers.
17166
17167         * class-internals.h icall.c: Move registration and lookup of JIT icalls
17168         to libmetadata from the JIT, so they could be used by the marshalling
17169         code and the interpreter.
17170
17171         * marshal.c: Register marshalling related JIT icalls here instead of
17172         in mini.c. Use CEE_MONO_ICALL instead of the family of 
17173         CEE_MONO_PROC<x> opcodes to call marshalling functions.
17174
17175         * metadata.h: Remove unneeded marshalling conversions.
17176
17177         * opcodes.c: Update for new opcodes.
17178         
17179 2004-07-08  Martin Baulig  <martin@ximian.com>
17180
17181         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
17182         (mono_debug_get_domain_data): Make this function static.
17183
17184 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17185
17186         * gc.c, object.h: add nice GC handle API for embedders.
17187
17188 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
17189
17190         * reflection.c: more changes for the new api
17191
17192         * object.c: When we reflect on a field w/ a constant value, it
17193         will not have a memory location, so we must access metadata. Also,
17194         allow easier reading of strings so that we can read them from
17195         the constant data.
17196
17197         * class.c (mono_class_layout_fields): no need for literal fields here.
17198
17199         * class-internals.h: api changes for const fields
17200
17201         * icall.c (ves_icall_get_enum_info): use new apis for const fields
17202
17203 2004-07-06  Martin Baulig  <martin@ximian.com>
17204
17205         * mono-debug.h: Increment version number to 44.
17206
17207         * mono-debug.c (mono_debug_add_wrapper): The second argument is
17208         now a gpointer, rewrote this whole method.
17209
17210         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
17211         function.  Add information about the wrapper in a new "misc table".
17212
17213         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
17214         for the new misc table.
17215
17216 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
17217
17218         * metadata-internals.h image.c: Add a cache for helper signatures.
17219
17220         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
17221
17222 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
17223
17224         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
17225         delegates from a delegate. Fixes #61033.
17226         
17227         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
17228         marshalling of stringbuilder arrays. Fixes #59900.
17229
17230 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
17231
17232         * icall.c: Add EnumBuilder:setup_enum_type icall.
17233
17234 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
17235
17236         * icall.c: Added a new icall for the property version of
17237         OffsetOfStringData.
17238
17239 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
17240
17241         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
17242         it has a constant size across platforms.
17243
17244         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
17245         stack trace.
17246
17247 2004-06-29  Martin Baulig  <martin@ximian.com>
17248
17249         * mono-debug.c (mono_debug_add_method): Protect the whole function
17250         in mono_debugger_lock(), not just parts of it.
17251
17252 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17253
17254         * reflection.c: make sure padding bytes in heaps are zeroed.
17255
17256 2004-06-24  David Waite  <mass@akuma.org>
17257
17258         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
17259         image.c, loader.c, locales.c, marshal.c, metadata.c,
17260         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
17261         string-icalls.c, threads.c: change to C90-style comments from C99 /
17262         C++ -style
17263
17264 2004-06-24  Dick Porter  <dick@ximian.com>
17265
17266         * threads.c
17267         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
17268         return createdNew.  Fixes bug 60412.
17269
17270         * threads-types.h: 
17271         * icall.c: Add createdNew parameter to CreateMutex icall
17272
17273 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17274
17275         * reflection.c, object-internals.h: save default value in params.
17276
17277 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17278
17279         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
17280         no need to build a new path combining that with the application base.
17281         Fixes bug #60442.
17282
17283 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
17284
17285         * reflection.c: fixed minor standard compliance issues.
17286
17287 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17288
17289         * reflection.c: fixed issue with encoding some custom attributes
17290         (arrays in properties and fields, bug #60411).
17291
17292 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17293
17294         * reflection.c: fix start address when copying the public key token.
17295
17296 2004-06-23  Martin Baulig  <martin@ximian.com>
17297
17298         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
17299         the `exc' object in a static object to put it into the GC's root set.
17300
17301 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
17302
17303         * reflection.c: make mono_reflection_setup_internal_class ()
17304         callable a second time to setup a new parent class.
17305
17306 2004-06-23  Dick Porter  <dick@ximian.com>
17307
17308         * threads.c: Check for WAIT_IO_COMPLETION return values.
17309
17310 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
17311
17312         * appdomain.c: Removed the g_free on the public key token. Now copy 
17313         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
17314         * assembly.c: Added public key token string value when loading 
17315         assemblies. Fix bug #60439.
17316         * icall.c: Added missing informations (like public key) in 
17317         GetReferencedAssemblies. Fix #60519.
17318         * image.h: Changed definition for public key token from const char*
17319         public_tok_value to guchar public_key_token [17];
17320         * reflection.c: Updated for changes to public key token.
17321
17322 2004-06-22  Lluis Sanchez Gual
17323
17324         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
17325         for the field in base classes.
17326
17327 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17328
17329         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
17330         mark headers as not supported, they are installed only for use by the
17331         debugger.
17332
17333 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
17334
17335         * *.c, *.h: avoid namespace pollution in public headers.
17336
17337 2004-06-21  Martin Baulig  <martin@ximian.com>
17338
17339         * exception.c (mono_get_exception_security): It's in
17340         "System.Security", not in "System".
17341
17342         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
17343         the exception classes.
17344
17345 2004-06-21  Martin Baulig  <martin@ximian.com>
17346
17347         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
17348         Protect the exception object from being finalized.
17349
17350 2004-06-21  Martin Baulig  <martin@ximian.com>
17351
17352         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
17353         public function.
17354
17355 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
17356
17357         * reflection.c: Load the assembly in mono_reflection_type_from_name,
17358         if it was not loaded before. Fix parts of #60439.
17359
17360 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
17361
17362         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
17363         code that was broken since Ben's change: wrappers are now
17364         dependent on the method signature only again.
17365
17366 2004-06-21  Martin Baulig  <martin@ximian.com>
17367
17368         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
17369         added interface support.
17370
17371 2004-06-21  Martin Baulig  <martin@ximian.com>
17372
17373         * class.c (mono_vtable_get_static_field_data): New public method.
17374
17375 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
17376
17377         * filewatcher.c : Windows build fix to be compliant with API changes.
17378
17379 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17380
17381         * class.h, class.c: more accessors.
17382         * metadata.h, metadata.c: prepare for hiding MonoType and
17383         MonoMethodSignature: people should use the accessors from now on
17384         outside of the tree.
17385
17386 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17387
17388         * *.c, *.h: more API cleanups.
17389
17390 2004-06-18  Jackson Harper  <jackson@ximian.com>
17391
17392         * assembly.c: Trace loading assemblies.
17393         * loader.c: Trace loading native libraries.
17394         * mono-config.c: Trace loading config files.
17395         
17396 2004-06-18  Dick Porter  <dick@ximian.com>
17397
17398         * locales.c: Tell ICU the lengths of strings, it can cope with
17399         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
17400
17401 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
17402
17403         * image.c: swapped name/filename;
17404
17405 2004-06-18  Martin Baulig  <martin@ximian.com>
17406
17407         * mono-debug-debugger.c (write_class): Write the parent class at
17408         the end of the header.
17409
17410 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17411
17412         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
17413
17414 2004-06-17  Raja R Harinath  <rharinath@novell.com>
17415
17416         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
17417         (bundle_obj): New conditional define.
17418         (BUILT_SOURCES): Remove.
17419         ($(bundle_srcs)): Make parallel-make safe.
17420         (libmonoruntime_la_LIBADD): Make unconditional.
17421         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
17422         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
17423
17424 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
17425
17426         * culture-info-tables.h: It was inconsistent with the latest
17427           supp info files.
17428
17429 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
17430
17431         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
17432         be loaded.
17433
17434         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
17435         with gcc 2.95.
17436
17437 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
17438
17439         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
17440         cleaned up public header threads.h.
17441
17442 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17443
17444         * Makefile.am, *.c, *.h: more API cleanups.
17445
17446 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
17447
17448         * Makefile.am: removed monosn from compilation.
17449         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
17450         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
17451         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
17452         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
17453         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
17454         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
17455
17456 2004-06-15  Jackson Harper  <jackson@ximian.com>
17457
17458         * assembly.c: Make locales lower case when searching the GAC for
17459         assemblies. gacutil will always make locales lowercase when
17460         installing so this effectively makes them case insensitive.
17461         
17462 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
17463
17464         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
17465         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
17466           parameter which allows to choose whether the wait can be interrupted or 
17467           not. Also added the method mono_monitor_enter(), which locks the monitor
17468           using an infinite wait and without allowing interruption.
17469           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
17470           interrupted.
17471         * object.h: Added new fields in MonoThread. suspend_event holds the event
17472           used to susped/resume the thread. synch_lock is the lock object to use for
17473           modifying the thread state.
17474         * threads.c: Use the new synch_lock object for locking, instead of "this",
17475           which can generate deadlocks.
17476           Moved thread state change in Thread.Sleep and Thread.Join from managed
17477           to unmanaged code. This avoids a deadlock when the thread was suspended
17478           just after acquiring the thread lock.
17479           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
17480           Implemented Thread.Suspend using an event instead of ThreadSuspend,
17481           which is not fully implemented in the io-layer.
17482         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
17483
17484 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
17485
17486         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
17487         threads-types.h: more API cleanups.
17488
17489 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17490
17491         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
17492         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
17493         threadpool.c, threads.c: first pass at the exported API cleanup.
17494
17495 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
17496
17497         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
17498
17499 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17500
17501         * icall.c: added internalGetHome.
17502
17503 2004-06-14  Dick Porter  <dick@ximian.com>
17504
17505         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
17506         possible to return successfully when '.' or '..' were the only
17507         entries in a directory, but were skipped.  The MonoIOStat was not
17508         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
17509         Fixes bug 59574.
17510
17511 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
17512
17513         * reflection.c: make binaries run on .Net 1.1 by default.
17514
17515 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
17516
17517         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
17518
17519 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
17520
17521         * marshal.c: keep track of struct size with explicit layout
17522         (bug #59979).
17523
17524 2004-06-12  Martin Baulig  <martin@ximian.com>
17525
17526         * mono-debug-debugger.c: Comment out a debugging g_message().
17527
17528 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17529
17530         * reflection.c, reflection.h: do not free custom attrs that are cached.
17531         * icall.c: use braces to make code clearer.
17532
17533 2004-06-11  Martin Baulig  <martin@ximian.com>
17534
17535         * class.h (MonoInflatedField): New type.
17536         (MonoClassField): Replaced `MonoType *generic_type' with
17537         `MonoInflatedField *generic_info'.
17538
17539         * icall.c
17540         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
17541
17542 2004-06-11  Martin Baulig  <martin@ximian.com>
17543
17544         * reflection.c (mono_image_create_method_token): Correctly encode
17545         varargs methods.
17546
17547 2004-06-11  Martin Baulig  <martin@ximian.com>
17548
17549         * metadata.c (mono_metadata_parse_method_signature): When parsing
17550         a MethodDef which has VarArgs, also set sentinelpos if we don't
17551         have any parameters.
17552
17553 2004-06-11  Martin Baulig  <martin@ximian.com>
17554
17555         * verify.c (mono_method_verify): In CEE_CALL, use
17556         mono_method_get_signature() to get the method's signature, unless
17557         we're a PInvoke method.
17558
17559 2004-06-10  Jackson Harper  <jackson@ximian.com>
17560
17561         * assembly.c: Use <path>/lib/mono/gac for the extra paths
17562         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
17563         logical name as the supplied path is just a prefix to the gac not
17564         the direct path to it.
17565         
17566 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
17567
17568         * reflection.c: make the token for a created method match
17569         the token of the MethodBuilder it was created from
17570         (IKVM requires this behaviour now).
17571
17572 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
17573
17574         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
17575         reflection.c, socket-io.c: leak fixes.
17576
17577 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
17578
17579         * icall.c: handle sentinel pos in vararg methods in position different
17580         from 0.
17581
17582 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17583
17584         * culture-info-tables.h: freshly generated.
17585
17586 2004-06-09  Martin Baulig  <martin@ximian.com>
17587
17588         * loader.c (mono_get_method_constrained): Call `mono_class_init
17589         (constrained_class)'.   
17590
17591 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
17592
17593         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
17594         any methods. Fixes #59629.
17595
17596 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17597
17598         * culture-info-tables.h: reflecting locale-builder updates.
17599
17600 2004-06-08  Dick Porter  <dick@ximian.com>
17601
17602         * object.h:
17603         * locales.c: Fixed compile warnings, including a real bug in
17604         CompareInfo_internal_compare.
17605         
17606 2004-06-08  Dick Porter  <dick@ximian.com>
17607
17608         * locales.c
17609         (ves_icall_System_Globalization_CompareInfo_internal_index):
17610         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
17611         Double-check the resuls of usearches, because ICU currently
17612         ignores most of the collator settings here.  Fixes bug 59720.
17613         
17614 2004-06-08  Dick Porter  <dick@ximian.com>
17615
17616         * locales.c
17617         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
17618         Fix memory leak and segfault-causing typo.  No idea how this one
17619         lasted so long without being noticed.
17620
17621 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
17622
17623         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
17624         any methods. Fixes #59629.
17625
17626 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17627
17628         * assembly.c:
17629         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
17630         own the critical section before). Removed dead code (that's done
17631         in the preload hook).
17632
17633         (mono_assembly_load_with_partial_name): call the preload hook.
17634
17635 2004-06-08  Martin Baulig  <martin@ximian.com>
17636
17637         * metadata.c (mono_metadata_signature_alloc): Default
17638         `sentinelpos' to -1.
17639
17640         * reflection.c (mono_image_get_array_token): Likewise.
17641
17642 2004-06-08  Martin Baulig  <martin@ximian.com>
17643
17644         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
17645
17646         * metadata.c (mono_metadata_parse_method_signature): When parsing
17647         a MethodDef which has VarArgs, set sentinelpos.
17648
17649         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
17650         `gint16' since we're using -1 for non-varargs methods.
17651
17652         * reflection.c
17653         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
17654         (method_encode_signature): Added varargs support.
17655         (method_builder_encode_signature): Likewise.
17656         (mono_image_get_varargs_method_token): New static method.
17657         (mono_image_create_method_token): New public method; this is
17658         called via an icall instead of mono_image_create_token() when
17659         calling a varargs method.       
17660
17661 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
17662
17663         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
17664
17665 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17666
17667         * culture-info-tables.h : Reflecting the latest locale-builder that
17668           fixed empty array representation ({} to {0}).
17669
17670 2004-06-07  Jackson Harper  <jackson@ximian.com>
17671
17672         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
17673         looking up extra gac paths. This allows MONO_GAC_PATH to act
17674         exactly like a prefix.
17675         
17676 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
17677
17678         * reflection.c (mono_reflection_type_from_name): Make a copy of the
17679         type name before modifying it. Fixes #59405.
17680
17681 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17682
17683         * culture-info.h: added fields for "all datetime patterns".
17684         * locales.c: (  ves_icall_System_Globalization_CultureInfo
17685           _construct_datetime_format ()): fill xxx_patterns fields.
17686         * object.h: added fields for "all datetime patterns" to
17687           MonoDateTimeFormatInfo.
17688         * culture-info-tables.h: reflecting locale-builder updates.
17689
17690 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
17691
17692         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
17693         the event has no add and remove methods. Fixes #59629.
17694
17695 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
17696
17697         * object.c: Fixed possible integer overflow when allocating large
17698         strings.
17699
17700 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
17701
17702         * culture-info-tables.h: reflecting locale-builder updates.
17703
17704 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
17705
17706         * culture-info-tables.h: reflecting locale-builder updates.
17707
17708 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
17709
17710         * culture-info-tables.h: reflecting locale-builder updates.
17711
17712 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
17713
17714         * threads.c: Made Thread.Sleep abortable.
17715
17716 2004-06-02  Martin Baulig  <martin@ximian.com>
17717
17718         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
17719
17720         * debug-mono-symfile.h: Bumped symbol file version number to 37.
17721
17722 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
17723
17724         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
17725
17726 2004-05-30  Jackson Harper  <jackson@ximian.com>
17727
17728         * reflection.c: Do not hardcode assembly versions or public key
17729         tokens anymore. All of this except the corlib section was dead
17730         code anyways.
17731         
17732 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
17733
17734         * object.c (mono_runtime_invoke_array): Automatically create boxed
17735         objects for byref valuetypes if needed. Fixes #59300.
17736         
17737         * object.c (mono_method_return_message_restore): Handle 
17738         MONO_TYPE_OBJECT as well.
17739
17740 2004-05-28  Jackson Harper  <jackson@ximian.com>
17741
17742         * reflection.c: The modified type encoding was causing build
17743         problems. Reverted for now.
17744         
17745 2004-05-28  Jackson Harper  <jackson@ximian.com>
17746
17747         * reflection.c/h: Take an assembly ref so that we dont create
17748         fully qualified names when encoding types in the same assembly as
17749         the custom attribute being emitted.
17750         * appdomain.c: Increment version number.
17751         
17752 2004-05-26  Duncan Mak  <duncan@ximian.com>
17753
17754         * icall.c
17755         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17756         Set the full version number (major, minor, build, revision).
17757
17758 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
17759
17760         * marshal.c (emit_struct_conv): increment src/dst after blit
17761         (mono_marshal_get_managed_wrapper,
17762         mono_marshal_get_native_wrapper): make sure we have marshalling
17763         info before marshalling params (info computation affects
17764         blittable)
17765
17766         * class.c (class_compute_field_layout): correctly deal with
17767         blittable
17768         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
17769         value types (as per what windows dows by default)
17770         (mono_class_setup_mono_type): System.ValueType is blittable
17771         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
17772         blittable
17773
17774         * marshal.c (mono_marshal_load_type_info): flag types  as
17775         non-blittable if the native layout doesn't match the managed
17776         layout
17777
17778 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17779
17780         * appdomain.c: don't add stuff in the private search path that is
17781         above the application base. If application base is not set, there's
17782         no private search path.
17783
17784 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
17785
17786         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
17787         byref struct arguments in native->managed marshalling.
17788
17789 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
17790
17791         * marshal.c (mono_marshal_get_runtime_invoke): correctly
17792         cache methods using signature (special case for methods
17793         that are value type or string class)
17794         
17795         * image.c (mono_image_close): clean up allocated GSList's
17796         in runtime_invoke_cache.
17797
17798 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17799
17800         * mono-config.c: set the correct path for mono_cfg_dir on windows when
17801         there's no MONO_CFG_DIR environment variable defined.
17802
17803 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17804
17805         * threads.c: windows version must be >= 0x0500 to include OpenThread.
17806
17807 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
17808
17809         * threadpool.c: Really wait for 500ms after the async call, even if the wait
17810           is interrumped.
17811         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
17812           before waiting for it, and call CloseHandle after the wait to unref it.
17813           This will make sure that handles are not disposed too early.
17814
17815 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17816
17817         * appdomain.c:
17818         * appdomain.h:
17819         * icall.c: removed
17820         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
17821         needed now.
17822
17823         * object.c: se the application_base only for the domain that runs
17824         Main. Fixes bug #59216,
17825
17826 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17827
17828         * appdomain.c:
17829         * object.c: only the domain in which Main is run have
17830         SetupInformation.ConfigurationFile set, so moved a few lines from
17831         appdomain.c to object.c.
17832
17833 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17834
17835         * appdomain.c: we tried to load [name].(dll|exe), but according
17836         to bug #57710, we must also try [culture]/[name].(dll|exe) and
17837         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
17838         There's a test case attached to bug #58922.
17839
17840 2004-05-27  Dick Porter  <dick@ximian.com>
17841
17842         * icall.c:
17843         * file-io.c: Implemented icalls for locking and unlocking regions
17844         in a file.
17845         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
17846         FALSE on error (fixes both compiler warning and real bug.)
17847
17848 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
17849
17850         * culture-info-tables.h: reflecting locale-builder updates.
17851
17852           (Added missing ChangeLog entry for 05/26)
17853
17854 2004-05-27  Jackson Harper  <jackson@ximian.com>
17855
17856         * locales.c: Fix some cut and paste errors.
17857         
17858 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17859
17860         * mono-config.c: set the correct path for config. directory on windows.
17861
17862 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17863
17864         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
17865           on win32.
17866
17867 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
17868
17869         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
17870         from pinvoke functions.
17871         
17872         * marshal.c (mono_ftnptr_to_delegate): Implement this.
17873
17874 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17875
17876         * culture-info-tables.h: reflecting locale-builder updates.
17877
17878 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
17879
17880         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
17881         #59086.
17882
17883 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
17884
17885         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
17886         * icall.c: Modified icalls for RNG.
17887         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
17888         Windows (CryptoAPI).
17889
17890 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
17891
17892         * locales.c: Fix build.
17893
17894 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17895
17896         * culture-info-tables.h: reflecting locale-builder updates.
17897
17898 2004-05-25  Jackson Harper  <jackson@ximian.com>
17899
17900         * locales.c: When creating the current culture use the $LANGs
17901         specific culture. So DateTimeFormat and NumberFormat entries are created.
17902         
17903 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
17904
17905         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
17906         a char array as parameter.
17907
17908 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
17909
17910         * image.c: In mono_image_open(), always use an absolute path name to
17911           look for already loaded images.
17912
17913 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
17914
17915         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
17916         missing in the windows build (like older cygwin include files).
17917
17918 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
17919
17920         * icall.c: Fixed check for possible integer overflow in Buffer_
17921         BlockCopy icall. Replaced comments style // by /* */.
17922
17923 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
17924
17925         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
17926         
17927         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
17928         check after MONO_VTADDR. Fixes pinvoke2.exe.
17929
17930         * marshal.h marshal.c metadata.h: Add beginnings of support for
17931         ftnptr -> delegate marshalling.
17932
17933 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
17934
17935         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
17936         * threads.c: Fix warnings.
17937
17938 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
17939
17940         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
17941         * icall.c: Registered icalls for Suspend and Resume.
17942         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
17943           Thread.Abort.
17944         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
17945         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
17946         * process.c: Use WaitForSingleObjectEx.
17947         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
17948           checkpoints.
17949         * threads.c, threads.h: Make use of new Ex wait methods. Improved
17950           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
17951           for Suspend and Resume. Added new mono_thread_stop, used for stoping
17952           background threads. Added basic support for Abort in Windows.
17953           Start new threads using a managed delegate invoke wrapper. This wrapper
17954           has an interruption checkpoint that is needed since an interruption
17955           can be requested before the thread leaves the unmanaged code that starts 
17956           the thread.
17957         * marshal.c: Added interruption checkpoint after every native call, and
17958           also before managed calls for wrappers called from unmanaged code to
17959           go into managed code.
17960         * object.h: Added new field in MonoThread to keep track of interruption
17961           requests.
17962
17963 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
17964
17965         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
17966         calls.
17967
17968 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17969
17970         * appdomain.c:
17971         * assembly.c:
17972         * gc.c:
17973         * locales.c:
17974         * mono-config.c:
17975         * rand.c: getenv -> g_getenv (windows!)
17976
17977         * process.c: complete_path is also used on non-windows platforms.
17978
17979 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17980
17981         * icall.c: new signature for Process_Start.
17982
17983         * process.[ch]: new signature for Process_Start. If we're on windows
17984         and UseShellExecute is false, we have to search for the program by
17985         ourselves if we don't get a full path.
17986
17987 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
17988
17989         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
17990         marshalling and call CleanUpNativeData if needed. Fixes #58646.
17991
17992 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17993
17994         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
17995         Fixes bug #58373.
17996
17997 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17998
17999         * process.c: use double quotes to quote program name and arguments on
18000         windows. Fixes bug #58575.
18001
18002 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18003
18004         * file-io.c: don't return "." and ".." when using windows Find*File.
18005
18006 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
18007
18008         * marshal.c: Don't pass wrappers to message init because method 
18009         addressed used to lookup metadata. part of remoting[2|3] fix.
18010
18011 2004-05-15  Jackson Harper  <jackson@ximian.com>
18012
18013         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
18014         path is essentially the same as MONO_PATH except that it points to
18015         GACs instead of lib directories.
18016         * loader.h: The user gac is gone so we dont need function to
18017         enable/disable it.
18018         * mono-config.c: user gac option is now gone.
18019         
18020 2004-05-15  Jackson Harper  <jackson@ximian.com>
18021
18022         * culture-info.h: Make defines more consistent, add calendar data
18023         to the culture info table.
18024         * culture-info-tables.h: Add basic calendar data. Basically
18025         everyone gets default gregorian until all the data is
18026         updated.
18027         * locales.c: Use the new consistent defines. Set calendar data for
18028         culture info objects.
18029         * object.h: add a field for calendar data to CultureInfo
18030         
18031 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
18032
18033         * image.c: image->runtime_invoke_cache is keyed on signatures now.
18034         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
18035         a signature.
18036         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
18037         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
18038         an extra param that is the pointer of the method to invoke. The IL for
18039         the invoke method is no longer specific to the method, but to the
18040         signature of the method. Thus, we can share the same code for multiple
18041         methods. This reduces the number of methods that have to be compiled.
18042
18043 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
18044
18045         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
18046
18047         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18048
18049         * icall.c: Optimize Buffer.BlockCopy.
18050
18051 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18052
18053         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
18054         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
18055         quote). Changed them to "MMMM yyyy".
18056
18057 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
18058
18059         * rand.c
18060         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
18061
18062 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
18063
18064         * reflection.h: Updated after changes to managed structures.
18065
18066         * appdomain.c: Bump corlib version.
18067
18068 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18069
18070         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
18071         windows.
18072
18073 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18074
18075         * Makefile.am: link to ../os/libmonoos.la on windows.
18076
18077         * assembly.c:
18078                 -If MONO_DEBUG, warn about non-existing directories in
18079                 MONO_PATH.
18080                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
18081                 compile time variable.
18082                 -Removed init_default_path and call mono_set_rootdir from
18083                 libmonoos.a instead (windows only).
18084
18085         * assembly.h: declare mono_assembly_getrootdir().
18086
18087         * domain.c:
18088         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
18089
18090         * loader.c: s/getenv/g_getenv/
18091
18092 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
18093
18094         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
18095
18096         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
18097
18098         * metadata.h: Add new marshalling conversions.
18099
18100         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
18101         function.
18102
18103         * reflection.c (mono_reflection_get_type): Lookup the type in all
18104         modules of a multi-module assembly. Fixes #58291.
18105
18106 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
18107
18108         * threads.c: Before aborting a background, set the StopRequested
18109         state.  This avoids throwing the Abort exception.
18110         In mono_thread_manage, don't continue with the shutdown until all
18111         aborted threads have actually stopped.
18112
18113 2004-05-10  Jackson Harper  <jackson@ximian.com>
18114
18115         * locales.c: Remove the modifier from culture names.
18116         
18117 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18118
18119         * Makefile.am: monosn is not installed any more. It has been deprecated
18120         in favor of sn.
18121
18122 2004-05-07  Jackson Harper  <jackson@ximian.com>
18123
18124         * locales.c
18125         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
18126         Fix array construction, add bailout if the length is 0.
18127
18128 2004-05-07  Dick Porter  <dick@ximian.com>
18129
18130         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
18131         machine doesn't have a DNS entry.  Patch by Urs Muff
18132         (umuff@quark.com), fixes bug 57928.
18133
18134 2004-05-06  Jackson Harper  <jackson@ximian.com>
18135
18136         * reflection.c: Handle null PublicTokens properly. alloc mem for
18137         assembly names culture so we dont crash when freeing it.
18138         
18139 2004-05-06  Jackson Harper  <jackson@ximian.com>
18140
18141         * assembly.c: Check the usergac when loading with partial names.
18142         
18143 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18144
18145         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
18146         does nothing for now (not required for Linux/Windows) but the class
18147         library can call it (and a newer or modified runtime could need it).
18148         * icall.c: Registred icall.
18149
18150 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18151
18152         * loader.c: prints a message on module loading error we set MONO_DEBUG
18153         environment variable.
18154
18155 2004-05-05  Jackson Harper  <jackson@ximian.com>
18156
18157         * appdomain.c: Handle PublicKeyToken=null properly.
18158         
18159 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18160
18161         * environment.c|h: Added icall ves_icall_System_Environment_
18162         GetOSVersionString to get the current OS version as a string.
18163         * icall.c: Registred icall.
18164
18165 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
18166
18167         * object.c: in mono_object_get_virtual_method(), take into account that
18168         non-virtual methods don't have a slot in the vtable. Check needed when
18169         the object is a proxy.
18170
18171 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
18172
18173         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
18174         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
18175
18176         * object.c (mono_class_compute_gc_descriptor): Fix warning.
18177
18178         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
18179         passed when a valuetype is expected.
18180
18181         * object.c (mono_unhandled_exception): Only set the exit code if the
18182         exception happens in the main thread. Fixes thread5.exe.
18183
18184         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
18185         invalid names. Fixes #58047.
18186
18187 2004-05-03  Jackson Harper  <jackson@ximian.com>
18188
18189         * assembly.c: This line was committed accidently and is unneeded.
18190         
18191 2004-05-03  Jackson Harper  <jackson@ximian.com>
18192
18193         * icall.c: Add new icall for Assembly::LoadWithPartialName
18194         * assembly.c/.h: new function that probes the GAC to load partial
18195         assembly names by Paolo Molaro.
18196         
18197 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18198
18199         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
18200         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
18201         (type_get_fully_qualified_name): Added PublicKeyToken when building a
18202         full type name.
18203
18204 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18205
18206         * appdomain.c: fixed check for 'neutral' culture and removed warning.
18207         * reflection.c: fix bug when parsing a full type name and Version is not
18208         the last thing in the string.
18209
18210 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
18211
18212         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
18213         crashes when it is freed.
18214
18215 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18216
18217         * assembly.c: print the compat warning to stderr.
18218
18219 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
18220
18221         * assembly.c (mono_assembly_load_references): Add a compatibility
18222         hack to run old applications that might be still referencing the
18223         3300-based assemblies, only do this for System.xxx.
18224
18225 2004-05-01  Jackson Harper  <jackson@ximian.com>
18226
18227         * appdomain.c: If the culture is neutral we set it to "".
18228         
18229 2004-04-29  Jackson Harper  <jackson@ximian.com>
18230
18231         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
18232
18233 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
18234  
18235         * string-icalls.c: added low overhead function for copying chars
18236         * icall.c: added needed icall for the above function
18237  
18238 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18239
18240         * icall.c: fix return value of get_global_assembly_cache.  Implemented
18241         Environment.GetLogicalDrives.
18242
18243 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
18244
18245         * rand.c: try and talk to egd or prngd
18246         for random bytes if opening devices fail.
18247
18248 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
18249
18250         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
18251         alignment for the type using the native alignment of its members 
18252         instead of using klass->min_align.
18253
18254         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
18255
18256 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18257
18258         * file-io.c:
18259         * socket-io.c: added check for sys/aio.h.
18260
18261 2004-04-28  Dick Porter  <dick@ximian.com>
18262
18263         * threads.c: Don't abort a thread thats already aborting, when
18264         terminating everything.
18265
18266 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18267
18268         * icall.c: added 2 new async calls for Socket.
18269
18270         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
18271         IO on *nix systems.
18272
18273         * threadpool.c: removed unused variable.
18274
18275 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
18276
18277         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
18278
18279 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
18280
18281         * locales.c: put back string_invariant_tolower () and
18282         string_invariant_toupper ().
18283
18284 2004-04-26 David Waite <mass@akuma.org>
18285
18286         * file-io.h:
18287         * socket-io.h:
18288         * threads.h:
18289         * unicode.h: remove comma from end of enumeration declarations
18290
18291 2004-04-26 David Waite <mass@akuma.org>
18292
18293         * debug-mono-symfile.h:
18294         * decimal.c:
18295         * mono_debug.h:
18296         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
18297
18298
18299 2004-04-26  Jackson Harper  <jackson@ximian.com>
18300
18301         * appdomain.c: Increment version number.
18302         
18303 2004-04-26  Jackson Harper  <jackson@ximian.com>
18304
18305         * appdomain.c: Set assembly references public token value when
18306         PublicKeyToken is specified, not the hash_value. Free public token
18307         values when free assembly name data. Previously the public key
18308         token was hex decoded, however we are using hex encoded public key
18309         tokens, so this is not neccasary.
18310         * assembly.c: Lookup assemblies in the gac if their public token
18311         value is set. Add function to allow enabling user gac
18312         lookups. Specify whether or not the assembly was loaded from the
18313         GAC. Compare full assembly names when checking the cache for
18314         assemblies (Temporarily disabled see comment in code). Remove
18315         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
18316         specifies trace-loader they get extra info to stdout on the
18317         loading of assemblies.
18318         * image.h: Add a field for an assembly references public token
18319         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
18320         whether an assembly has been loaded from the GAC.
18321         * image.c: Remove a corlib -> mscorlib name mapping.
18322         * loader.h: Add function to enable/disable the user gac.
18323         * mono-config.c: Check if the usergac is enabled in the config
18324         file.
18325         * icall.c: New icall to determine whether or not an assembly has
18326         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
18327         * tabldefs.h: Add constant for assemblyref flag that specifies a
18328         full public key is used instead of a public token.
18329         * reflection.c: Remove mscorlib -> corlib mappings. Set
18330         PublicTokenValue instead of hash value. This value is a hex
18331         string so it does not need to be expanded.
18332
18333 2004-04-26  Martin Baulig  <martin@ximian.com>
18334
18335         * mono-debug-debugger.c (mono_debugger_initialize): Set
18336         `mono_debugger_initialized' before calling mono_debug_lock().
18337
18338 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
18339
18340         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
18341           InternalToUpper/InternalToLower.
18342         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
18343           removed invariant culture shortcut.  This is now done in managed code.
18344         * locales.c: (string_invariant_toupper/tolower) removed.
18345
18346 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18347
18348         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
18349         Added Poll internal call.
18350
18351         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
18352         call for Poll. Select was too heavy for polling a single socket.
18353
18354         * threadpool.[ch]: added mono_threadpool_cleanup.
18355         * threads.c: use it. Don't use Thread_Abort on windows.
18356
18357 2004-04-23  Martin Baulig  <martin@ximian.com>
18358
18359         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
18360
18361 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
18362
18363         * icall.c: Registred new icalls for key pair protection and added an
18364         icall for Environment.GetFolderPath on Windows.
18365         * security.c|h: Added new icalls for key pair protection.
18366
18367 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18368
18369         * socket-io.c: don't display the non-supported family warning for known
18370         families. Now this is not displayed on windows when checking support
18371         for IPv4/IPv6.
18372
18373 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18374
18375         * class.c: don't display the layout warning for static fields.
18376
18377 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
18378
18379         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
18380         * locales.c, locales.h: Added new icalls for culture-specific
18381         Char.ToLower and Char.ToUpper.
18382
18383 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18384
18385         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
18386         by David Waite.
18387
18388 2004-04-20  Martin Baulig  <martin@ximian.com>
18389
18390         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
18391         of the type name before passing it to mono_reflection_type_from_name().
18392
18393 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
18394
18395         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
18396         encodings here. Fixes #56965.
18397
18398 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
18399
18400         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18401         fix test on strstr result not that I can see anything that
18402         relies on the result.
18403
18404 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
18405
18406         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
18407         Fixes #57081.
18408
18409         * marshal.c (mono_marshal_get_string_encoding): New helper function.
18410
18411         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
18412         function to determine which marshalling to use for strings. Fixes
18413         #56965.
18414
18415         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
18416
18417         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
18418
18419 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
18420
18421         * icall.c: #include mono-config.h
18422
18423 2004-04-15  Jackson Harper  <jackson@ximian.com>
18424
18425         * culture-info-tables.h: Fix date formats for en-US culture.
18426         
18427 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
18428
18429         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
18430         ThreadPool.SetMinThreads.
18431         * threadpool.c: Implemented ThreadPool.GetMinThreads and
18432         ThreadPool.SetMinThreads.
18433
18434 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18435
18436         * mono-config.c: also load the .config file in the directory
18437         where the assembly was found.
18438
18439 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
18440
18441         * assembly.c: load per-assembly config files.
18442         * icall.c: decrapified code to get the config dir and moved to
18443         mono-config.c.
18444         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
18445         per-assembly config files. When doing a dll map lookup give precedence
18446         to the per-assembly data.
18447
18448 2004-04-14  Martin Baulig  <martin@ximian.com>
18449
18450         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
18451         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
18452         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
18453
18454         * mono-debugger-debugger.c: While the debugger is locked, remember
18455         whether the symbol tables have changes and send one single
18456         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
18457
18458 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
18459
18460         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
18461
18462         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
18463         function.
18464
18465         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
18466         account when marshalling string arrays. Fixes #56965.
18467
18468 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
18469
18470         * icall.c: Add new icalls mapping for security.
18471         * security.c|h: Add internal calls for WindowsIdentity,
18472         WindowsImpersonationContext and WindowsPrincipal.
18473
18474 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
18475
18476         * class.c: Added comment to ensure the System.MonoDummy class
18477         is removed when no longer necessary
18478
18479 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
18480
18481         * appdomain.c: Pass arguments to the bootstraping exceptions to
18482         minimize JITed methods at boot
18483
18484         * metadata.c (mono_exception_from_name_two_strings): Allow for the
18485         second string to be null.
18486
18487         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18488         Change the protocol to minimize the JIT methods at startup.  Now
18489         it Returns the internal codepage, if the value of "int_code_page"
18490         is 1 at entry, and we can not compute a suitable code page
18491         number, returns the code page as a string.
18492
18493 2004-04-13  Jackson Harper  <jackson@ximian.com>
18494
18495         * culture-info-tables.h: Fix number of decimal digits for all
18496         english locales.
18497
18498 2004-04-13  Jackson Harper  <jackson@ximian.com>
18499
18500         * icall.c: Clairfy out of sync error message. It is not always
18501         your corlib that is out of sync.
18502
18503 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
18504
18505         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
18506         properties when only the set accessor is overriden. Fixes #55874.
18507
18508 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
18509
18510         * assembly.c (mono_assembly_load_references): Make this thread safe.
18511         Fixes #56327.
18512
18513 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
18514
18515         * monosn.c: Add missing initialization calls.
18516
18517 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
18518
18519         * locales.c:
18520         ves_icall_System_Globalization_CultureInfo_construct_number_format
18521         Fix g_assert so it compiles on fussier compilers re int/ptr
18522         mismatch
18523
18524 2004-04-08  Dick Porter  <dick@ximian.com>
18525
18526         * socket-io.h:
18527         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
18528         53992.  Also rearrange the code so that the internal calls return
18529         an error value and exceptions are thrown from managed code.
18530
18531         * icall.c: Add type info to the socket icalls.
18532
18533 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18534
18535         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
18536         owes me a beer.
18537
18538 2004-04-07  Martin Baulig  <martin@ximian.com>
18539
18540         * class.c (mono_class_from_generic_parameter): Don't default
18541         `klass->parent' to `mono_defaults.object_type'.
18542
18543 2004-04-07  Martin Baulig  <martin@ximian.com>
18544
18545         * reflection.c (mono_reflection_initialize_generic_parameter): Set
18546         `param->pklass->reflection_info'.       
18547
18548 2004-04-07  Jackson Harper  <jackson@ximian.com>
18549
18550         * culture-info-tables.h: Fix date separator symbol.
18551         
18552 2004-04-07  Martin Baulig  <martin@ximian.com>
18553
18554         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
18555         from System.Type to System.MonoType.
18556
18557 2004-04-07  Martin Baulig  <martin@ximian.com>
18558
18559         * reflection.h
18560         (MonoReflectionGenericParam): Added `has_reference_type' and
18561         `has_value_type' fields.
18562
18563         * reflection.c (mono_image_get_generic_param_info): Encode the
18564         correct flags if we have the `class' or `struct' constraint.
18565
18566 2004-04-07  Martin Baulig  <martin@ximian.com>
18567
18568         * reflection.h
18569         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
18570
18571 2004-04-07  Jackson Harper  <jackson@ximian.com>
18572
18573         * appdomain.c: Revert extra patches, just wanted to bump the
18574         version number.
18575         
18576 2004-04-07  Jackson Harper  <jackson@ximian.com>
18577
18578         * Makefile.am: Add culture-info private headers.
18579         * icall.c: Add new icalls for contructing locales.
18580         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
18581         * locales.h: Declare new culture info construction methods.
18582         * object.h: Add new fields used to avoid the CultureMap to
18583         MonoCultureInfo.
18584         * culture-info.h: Definition of structs used in the culture info
18585         tables.
18586         * culture-info-tables.h: Autogenerated tables that contain culture
18587         info data. This file was generated with the locale-builder tool.
18588         * appdomain.c: Incement corlib version number.
18589         
18590 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
18591
18592         * appdomain.c: (mono_runtime_init) move mono_thread_init
18593         to before mono_object_new calls so critical sections
18594         are initialized before use.
18595
18596 2004-04-07  Martin Baulig  <martin@ximian.com>
18597
18598         * icall.c
18599         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
18600         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
18601         (ves_icall_MonoGenericParam_initialize): Removed.
18602         (monogenericparam_icalls): Removed.
18603         (generictypeparambuilder_icalls): Added new table for
18604         System.Reflection.Emit.GenericTypeParameterBuilder.
18605
18606         * reflection.c
18607         (mono_reflection_define_generic_parameter): Removed.
18608         (mono_reflection_initialize_generic_parameter): This is now called
18609         from GenericTypeParameterBuilder's .ctor.
18610
18611 2004-04-06  Martin Baulig  <martin@ximian.com>
18612
18613         * class.c (mono_class_init): Don't inflate nested classes in a
18614         generic instance.
18615         (mono_type_get_name_recurse): Include the generic arguments for
18616         generic instances and generic type declarations.
18617         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
18618         (_mono_class_get_instantiation_name): Removed.
18619         (mono_class_create_generic): Always use `gklass->name' as our name.
18620
18621         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
18622
18623         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
18624         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
18625         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
18626         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
18627         closed generic methods here.
18628
18629         * reflection.c
18630         (mono_reflection_generic_inst_get_nested_types): Removed.
18631         (inflate_mono_method): Copy the generic parameters from the
18632         MonoMethodHeader into out MonoGenericMethod.
18633
18634 2004-04-06  Martin Baulig  <martin@ximian.com>
18635
18636         * row-indexes.h
18637         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
18638
18639         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
18640
18641         * reflection.c (build_compressed_metadata): If we have any entries
18642         in the GenericParam, MethodSpec or GenericParamConstraint tables,
18643         set the header version to 1.1.
18644
18645 2004-04-06  Martin Baulig  <martin@ximian.com>
18646
18647         * class.c (mono_class_init): If we're a generic instance,
18648         initialize our nested classes, too.
18649         (_mono_class_get_instantiation_name): Deal with the new `!%d'
18650         suffix. 
18651
18652 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18653
18654         * process.c: quote the argument passed to the shell on windows.
18655
18656 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
18657
18658         * threads.c (mono_alloc_special_static_data): Allow this to be
18659         called during startup.
18660
18661 2004-04-02  Martin Baulig  <martin@ximian.com>
18662
18663         * icall.c
18664         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
18665
18666 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
18667
18668         * icall.c: Fix build.
18669
18670 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
18671
18672         * Makefile.am: Added security.c|h.
18673         * icall.c: Added icall for get_UserName;
18674         * security.c: New file for security related icalls. Added function
18675         get_UserName for System.Environment (fix #56144).
18676         * security.h: New. Header file for security.c
18677
18678 2004-04-02  Dick Porter  <dick@ximian.com>
18679
18680         * icall.c: Deleted the icalls that were obsoleted some time ago
18681         by the ICU string code, and which were mixed into the icall
18682         rearranging.  Fixes bug 55969.
18683
18684         * string-icalls.h: 
18685         * string-icalls.c: Deleted the code that those icalls reference.
18686
18687 2004-04-01  Martin Baulig  <martin@ximian.com>
18688
18689         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
18690
18691         * class.c (mono_class_from_generic_parameter): Don't set 
18692         TYPE_ATTRIBUTE_INTERFACE.
18693         (my_mono_class_from_generic_parameter): Likewise.
18694
18695 2004-04-01  Martin Baulig  <martin@ximian.com>
18696
18697         * loader.c (find_method): Added an optional `MonoClass *ic'
18698         argument to search in a specific interface.
18699         (mono_get_method_constrained): New public function.
18700
18701 2004-04-01  Martin Baulig  <martin@ximian.com>
18702
18703         * reflection.c (mono_image_get_generic_field_token): Use the
18704         `handleref' cache here.
18705
18706 2004-04-01  Martin Baulig  <martin@ximian.com>
18707
18708         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
18709
18710         * reflection.c (create_generic_typespec): Use the `typespec' hash
18711         here, not the `typeref' one.    
18712
18713 2004-04-01  Martin Baulig  <martin@ximian.com>
18714
18715         * class.c (mono_class_inflate_generic_type): Moved the
18716         functionality into a new static inflate_generic_type() which
18717         returns NULL if it didn't do anything.  Only increment the
18718         `mono_stats.inflated_type_count' if we actually inflated
18719         something.
18720         (mono_class_get_full): Check the classes type to see whether we
18721         need to inflate it; also inflate MONO_TYPE_(M)VAR.
18722
18723 2004-04-01  Jackson Harper  <jackson@ximian.com>
18724
18725         * reflection.c: Set culture for assembly references.
18726         
18727 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
18728
18729         * reflection.[ch], icall.[ch], Fix support for pinning variables.
18730
18731 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18732
18733         * assembly.c:
18734         (do_mono_assembly_open): the critical section also covers
18735         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
18736
18737 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18738
18739         * threads.c:
18740         (mono_manage_threads): abort the background threads when finishing.
18741         Fixes bug #47232.
18742
18743 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18744
18745         * gc.c: only close the done_event handle if there was no timeout.
18746         C-ified comments.
18747
18748 2004-03-30  Martin Baulig  <martin@ximian.com>
18749
18750         * icall.c (icall_entries): It's called "System.Activator", not
18751         "System.Activation".    
18752
18753 2004-03-30  Martin Baulig  <martin@ximian.com>
18754
18755         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
18756         (mono_class_create_from_typespec): Likewise.
18757
18758 2004-03-30  Martin Baulig  <martin@ximian.com>
18759
18760         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
18761         `has_ctor_constraint' and `initialized'.
18762
18763 2004-03-30  Martin Baulig  <martin@ximian.com>
18764
18765         * reflection.c (encode_new_constraint): New static function to add
18766         the constructor constraint attribute to a type parameter.
18767         (encode_constraints): Call encode_new_constraint() if necessary.
18768
18769         * reflection.h
18770         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
18771
18772         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
18773         
18774 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
18775
18776         * reflection.c, icall.c: add support for pinning variables. 
18777
18778 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
18779
18780         * marshal.c (mono_marshal_get_managed_wrapper):
18781         init bool local with zero rather than null.
18782
18783 2004-03-29  Martin Baulig  <martin@ximian.com>
18784
18785         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
18786         the "official" behavior here.
18787         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
18788
18789 2004-03-29  Martin Baulig  <martin@ximian.com>
18790
18791         * icall.c: Reflect latest API changes.
18792
18793 2004-03-29  Martin Baulig  <martin@ximian.com>
18794
18795         * loader.c (mono_get_method_from_token): Also call
18796         mono_metadata_load_generic_params () for abstract and interface
18797         methods; replace the type arguments in the method signature with
18798         the ones which are loaded from the metadata.
18799
18800 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
18801
18802         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
18803         of the lock is not the current thread. MS.NET don't do it, in spite of
18804         what the documentation says. See bug #56157.
18805
18806 2004-03-28  Martin Baulig  <martin@ximian.com>
18807
18808         * class.c (mono_class_init): Don't call init_properties() and
18809         init_events() for generic instances; set `prop->parent' when
18810         inflating properties.
18811
18812         * reflection.c (mono_generic_inst_get_object): Call
18813         `mono_class_init (ginst->klass)'.
18814         (mono_type_get_object): Only create a MonoGenericInst if your
18815         generic type is a TypeBuilder.
18816         (do_mono_reflection_bind_generic_parameters): Only set
18817         `ginst->is_dynamic' if our generic type is a TypeBuilder.
18818
18819 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
18820
18821         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
18822         Fixes #56091.
18823
18824 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18825
18826         * icall.c: added Kill_internal icall.
18827         * process.[ch]: added Kill_internal icall.
18828
18829 2004-03-25  Martin Baulig  <martin@ximian.com>
18830
18831         * class.h (MonoStats): Added `generic_instance_count',
18832         `inflated_method_count', `inflated_type_count' and
18833         `generics_metadata_size'.       
18834
18835 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18836
18837         * reflection.c: no warnings now.
18838
18839 2004-03-25  Martin Baulig  <martin@ximian.com>
18840
18841         * class.c (mono_class_get_full): New public function; does a
18842         mono_class_get(), but also takes a `MonoGenericContext *'.
18843
18844         * loader.c (mono_field_from_memberref): Renamed to
18845         `field_from_memberref', made static and added `MonoGenericContext *'
18846         argument.
18847         (mono_field_from_token): Added `MonoGenericInst *' argument.
18848         (method_from_memberef): Likewise.
18849         (mono_get_method_from_token): Likewise.
18850         (mono_get_method_full): New public function; does a
18851         mono_get_method(), but also takes a `MonoGenericContext *'.
18852
18853         * verify.c (mono_method_verify): Get the method's generic context
18854         and pass it to mono_field_from_token(), mono_get_method_full() and
18855         mono_class_get_full().
18856
18857 2004-03-25  Martin Baulig  <martin@ximian.com>
18858
18859         * class.c (mono_class_inflate_generic_type): Take a
18860         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
18861         `MonoGenericMethod *'.
18862
18863 2004-03-25  Martin Baulig  <martin@ximian.com>
18864
18865         * loader.h (MonoMethodInflated): Store the MonoGenericContext
18866         instead of the MonoGenericMethod here.
18867
18868 2004-03-25  Martin Baulig  <martin@ximian.com>
18869
18870         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
18871         each time we create a new MonoGenericInst, we also create a new
18872         context which points back to us.
18873
18874         * class.c (inflate_method): Use `ginst->context' instead of
18875         creating a new context.
18876
18877         * loader.c (method_from_memberref): Use
18878         `klass->generic_inst->context' instead of creating a new context.
18879
18880 2004-03-25  Martin Baulig  <martin@ximian.com>
18881
18882         * class.h (MonoGenericContext): New struct.
18883         (MonoGenericMethod): Removed `generic_inst'.
18884
18885         * class.c (mono_class_inflate_generic_method): Take a
18886         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
18887
18888 2004-03-25  Martin Baulig  <martin@ximian.com>
18889
18890         * loader.h (MonoMethodInflated): New typedef.
18891
18892         * metadata.h (MonoMethodSignature): Removed `gen_method', make
18893         `generic_param_count' consume just 30 bits, added `is_inflated'
18894         and `has_type_parameters' flags (one bit each).
18895
18896         * class.c (mono_class_inflate_generic_method): Create a
18897         MonoMethodInflated instead of a MonoMethodNormal and set
18898         `is_inflated' in the method signature.
18899
18900         * class.h (MonoGenericMethod): Removed `generic_method'.
18901
18902 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
18903
18904         * image.c: Make sure the name of a MonoImage is always an absolute path.
18905           This fixes bug #54415.
18906
18907 2004-03-24  Martin Baulig  <martin@ximian.com>
18908
18909         * class.c (mono_class_setup_vtable): If we're a generic instance,
18910         use our generic type's vtable size.
18911
18912 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
18913
18914         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
18915         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
18916         problems.
18917
18918 2004-03-23  Martin Baulig  <martin@ximian.com>
18919
18920         * class.h (MonoDynamicGenericInst): Added `int count_events' and
18921         `MonoEvent *events'.
18922
18923         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
18924         (typebuilder_icalls): Added "get_event_info"; calls
18925         mono_reflection_event_builder_get_event_info(). 
18926
18927         * reflection.c (mono_reflection_generic_inst_initialize): Added
18928         `MonoArray *events'.
18929         (mono_reflection_event_builder_get_event_info): New function.
18930
18931 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
18932
18933         * object.h: add mono_type_initialization_init
18934
18935         * object.c (mono_runtime_class_init): 
18936         implement class constructor synchronization rules
18937         to cope with threading issues.  
18938         add mono_type_initialization_init
18939
18940         * appdomain.c (mono_runtime_init): call 
18941         mono_type_initialization_init
18942
18943         * class.h: removing initializing field from MonoVTable
18944
18945 2004-03-23  Martin Baulig  <martin@ximian.com>
18946
18947         * class.c (my_mono_class_from_generic_parameter): Use
18948         `param->name' if it's not NULL. 
18949
18950 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
18951
18952         * class.c: do not insert non-virtual methods in the vtable.
18953         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
18954         that means the method is non-virtual. This never would have
18955         happened before.
18956
18957 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
18958
18959         * profiler.c: Added lock for accessing coverage_hash.
18960
18961 2004-03-22  Martin Baulig  <martin@ximian.com>
18962
18963         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
18964         `method->method->signature->generic_param_count != 0' to make it
18965         work for interface methods.
18966
18967 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18968
18969         * process.c: quote the string passed to the shell using g_shell_quote.
18970
18971 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18972
18973         * threads.c:
18974         (mono_threads_manage): don't remove the finalizer thread and self
18975         from the threads hash table so that mono_thread_manage can be called
18976         more than once.
18977
18978 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18979
18980         * process.c: quote the arguments when UseShellExecute is true. Fixes
18981         bug #55790.
18982
18983 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18984
18985         * threads.c: set mono_thread_detach as a cleanup routine for every
18986         thread. This way it's always executed upon thread termination, either
18987         aborted or finished normally. No more xsp hangs!
18988
18989 2004-03-17  Martin Baulig  <martin@ximian.com>
18990
18991         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
18992         `int count_nested' and a `MonoType **nested'.
18993
18994         * reflection.c (mono_reflection_bind_generic_parameters): Moved
18995         most of the functionality into a new static
18996         do_mono_reflection_bind_generic_parameters() and don't take a
18997         `MonoType *nested_in' argument any more.  Don't compute nested
18998         types here.
18999         (mono_reflection_generic_inst_get_nested_types): New public method
19000         to get nested types.
19001
19002         * class.c (mono_class_create_generic): Set `klass->nested_in' if
19003         we're a nested class.
19004
19005         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
19006         mono_reflection_generic_inst_get_nested_types() to compute the
19007         nested types.
19008
19009 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19010
19011         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
19012         descriptive error message under windows.
19013         
19014 2004-03-17  Martin Baulig  <martin@ximian.com>
19015
19016         * class.c (dup_type): Added `const MonoType *original' argument;
19017         copy the attrs from the original type.
19018
19019 2004-03-17  Martin Baulig  <martin@ximian.com>
19020
19021         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
19022         `m->generic_inst_cache' here.
19023
19024 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19025
19026         * exception.h exception.c: Add stack_overflow_exception.
19027
19028 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19029
19030         * threadpool.c:
19031         (overlapped_callback): call SetEvent *after* invoking the callback.
19032         No need to call CloseHandle.
19033
19034 2004-03-16  Martin Baulig  <martin@ximian.com>
19035
19036         * reflection.c (mono_image_get_fieldref_token): Take a
19037         `MonoReflectionField *' instead of a `MonoClassField *' and a
19038         `MonoClass *'; store the `MonoReflectionField *' in the hash.
19039
19040 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19041
19042         * appdomain.c: don't add the culture to the filename we're looking for
19043         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
19044
19045 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19046
19047         * locales.c: don't ignore symbols when doing case insensitive compares.
19048         Thanks Dick! Fixes bug #54046.
19049
19050         * threads.c: surround 'threads' usage with enter/leave in
19051         mono_thread_manage.
19052
19053 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
19054
19055         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
19056         implicitly marshalled as [Out]. Fixes #55450.
19057
19058         (mono_marshal_get_runtime_invoke): Zero out the result if there is
19059         an exception.
19060
19061 2004-03-16  Martin Baulig  <martin@ximian.com>
19062
19063         * class.c (mono_class_from_generic_parameter): Use the actual
19064         parameter name. 
19065
19066 2004-03-16  Martin Baulig  <martin@ximian.com>
19067
19068         * reflection.c (type_get_signature_size): New static function.
19069         Compues the size of the type in a method signature.
19070         (method_get_signature_size): New static function; calls
19071         type_get_signature_size() to compute the actual size of the
19072         method's signature.
19073         (method_encode_signature): Use method_get_signature_size() to get
19074         the signature's size rather than using `nparams * 10'.
19075
19076 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19077
19078         * file-io.h: define here WapiOverlapped on windows. I don't want the
19079         regular OVERLAPPED one.
19080
19081         * file-io.c:
19082         * threadpool.c: somehow, BindIoCompletionCallback is not found.
19083         Disabling AIO on windows.
19084
19085 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19086
19087         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
19088         bug #55385.
19089
19090 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19091
19092         * appdomain.c: upgraded corlib version.
19093
19094         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
19095         and BeginWrite. Allow opening files for asynchrnous operations.
19096
19097         * file-io.h: new struct that maps FileStreamAsyncResult.
19098         * icall.c: added new icalls.
19099         * process.[ch]: support setting child process environment variables
19100         and use the SHELL or COMSPEC when UseShellExecute is true.
19101
19102         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
19103         callback for async. IO is here and also BindHandle.
19104
19105         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
19106         from here.
19107
19108 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
19109
19110         * reflection.c (create_custom_attr): Allow len == 0.
19111
19112         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
19113         computation on big-endian machines.
19114
19115 2004-03-13  Martin Baulig  <martin@ximian.com>
19116
19117         * class.h (MonoGenericInst): Added `int count_ifaces'.
19118
19119         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
19120         `ginst->count_ifaces' instead `klass->interface_count' since we
19121         may get called before the vtable is created.
19122
19123         * loader.c (mono_method_get_param_names): If we're a generic
19124         instance, return and don't initialize the class.
19125
19126         * reflection.c (mono_reflection_setup_generic_class): Don't call
19127         ensure_runtime_vtable().
19128         (mono_reflection_bind_generic_parameters): Set
19129         `ginst->count_ifaces'.
19130
19131 2004-03-11  Jackson Harper <jackson@ximian.com>
19132
19133         * icall.c:
19134         * unicode.c:
19135         * unicode.h: Remove unused System.Char icalls.
19136         
19137 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
19138
19139         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
19140         code when we P/Invoke the first library in Windows.Forms, instead
19141         of when we first open the assembly.
19142
19143         * assembly.c: Drop the lookup from here.
19144
19145 2004-03-10  Martin Baulig  <martin@ximian.com>
19146
19147         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
19148         class for properties, fields and events.  Finally fixes #54945.
19149
19150 2004-03-10  Martin Baulig  <martin@ximian.com>
19151
19152         * metadata.c (mono_metadata_class_equal): New static function;
19153         checks whether two generic instances or two generic parameters are
19154         equal.
19155         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
19156         compare classes.        
19157
19158 2004-03-10  Martin Baulig  <martin@ximian.com>
19159
19160         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
19161
19162         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
19163         argument and write it into the `reflection_info' field.
19164
19165         * icall.c
19166         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
19167         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
19168
19169 2004-03-09  Jackson Harper  <jackson@ximian.com>
19170
19171         * char-conversions.h: use 8 bits for numeric data its all we need
19172         * icall.c: numeric data is only 8 bits now.
19173
19174 2004-03-09  Martin Baulig  <martin@ximian.com>
19175
19176         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
19177
19178         * class.c (init_properties, init_events): Initialize the new
19179         `parent' field.
19180
19181         * reflection.c (typebuilder_setup_properties): Likewise.
19182         (typebuilder_setup_events): Likewise.
19183
19184         * reflection.h (MonoEventInfo): Replaced `parent with
19185         `declaring_type' and `reflected_type'.
19186
19187         * icall.c (ves_icall_get_property_info): Distinguish between
19188         declaring and reflected type.
19189         (ves_icall_get_event_info): Likewise.
19190
19191 2004-03-09  Martin Baulig  <martin@ximian.com>
19192
19193         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
19194         (ves_icall_Type_GetField): Correctly set field->klass.
19195
19196 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
19197
19198         * loader.h: Fix warning.
19199
19200 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
19201
19202         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
19203         library routine if present.  Notice that it will still continue
19204         executing even if its missing, for those working on the Gtk#
19205         edition of Windows.Forms.
19206
19207         * assembly.c (do_mono_assembly_open): If loading the
19208         System.Windows.Forms call mono_loader_wini_init.
19209
19210 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
19211
19212         * class.h: Added MonoRemoteClass struct.
19213         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
19214         function for MonoStrings.
19215         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
19216         Added internal call for getting the proxy type.
19217         * marshal.c: Get the type of transparent proxies from its remote_class.
19218         Added methods that generate the IL for type checks and casts:
19219         mono_marshal_get_isinst, mono_marshal_get_castclass, 
19220         mono_marshal_get_proxy_cancast.
19221         * marshal.h: Declaration of the previous new methods.
19222         * object.c: Added new moethods for creating and updating MonoRemoteClass
19223         instances: mono_remote_class, mono_upgrade_remote_class, 
19224         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
19225         * verify.c: FIx transparent_proxy_fields layout.
19226         * appdomain.c: Bump corlib version.
19227
19228 2004-03-04  Jackson Harper  <jackson@ximian.com>
19229
19230         * icall.c: Add icall to access char conversion tables.
19231         * char-conversions.h: Character conversion tables.
19232         * Makefile.am: Add char-conversions.h private header file.
19233         
19234 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
19235
19236         * appdomain.c (unload_thread_main): Increase unloading timeout to
19237         10 sec as a temporary workaround for Nant problems.
19238
19239 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
19240
19241         * gc.c: Add checks for GC_enable and GC_disable.
19242
19243         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
19244         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
19245         (bug #54988).
19246         
19247 2004-02-27  Martin Baulig  <martin@ximian.com>
19248
19249         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19250         `MonoReflectionType *' instead of a `MonoType *'.
19251
19252 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
19253
19254         * gc.c (run_finalize): Avoid finalizing the object representing the
19255         finalizer thread.
19256         (finalizer_thread): Fix warning.
19257
19258 2004-02-25  Martin Baulig  <martin@ximian.com>
19259
19260         * class.c (_mono_class_get_instantiation_name): Added `int offset'
19261         argument for nested types.
19262         (mono_class_create_generic): Added support for nested generictypes.
19263
19264         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
19265         `GList *nested'.
19266
19267         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
19268
19269         * reflection.c (method_encode_signature): Increase the minimum
19270         value of `size' from 10 to 11.
19271         (mono_reflection_bind_generic_parameters): Take `int type_argc'
19272         and `MonoType **types' arguments instead of the `MonoArray
19273         *types'; added `MonoType *nested_in'.  Recursively instantiate
19274         nested classes. 
19275
19276 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
19277
19278         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
19279         stack_overflow_ex members which are used by exception handling.
19280
19281         * appdomain.c (mono_runtime_init): Initialize the new members.
19282
19283         * gc.c (mono_gc_enable): New helper function.
19284         * gc.c (mono_gc_disable): New helper function.
19285
19286 2004-02-23  Martin Baulig  <martin@ximian.com>
19287
19288         * icall.c: I must have been really stupid - make it actually work
19289         this time ;-)
19290
19291 2004-02-23  Martin Baulig  <martin@ximian.com>
19292
19293         * loader.c (method_from_memberref): Only inflate the method if
19294         it's in another klass.
19295
19296 2004-02-23  Martin Baulig  <martin@ximian.com>
19297
19298         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
19299         (mono_class_init): If we're a generic instance and an interface,
19300         compute `class->interface_id'; also create `class->interfaces'
19301         here and inflate them.
19302
19303         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
19304         `ginst->is_open'.
19305         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
19306
19307         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
19308
19309 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
19310
19311         * reflection.c (method_encode_code): Improved the error message
19312         generated by the exception.
19313
19314 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19315
19316         * icall.c: Martin did not do what he said in the ChangeLog for
19317         2004-02-18, but put back the changes for properties and events.
19318         Commenting those changes out again and adding comment to bug #54518.
19319         
19320         * process.c: removed warning.
19321
19322 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
19323
19324         * marshal.c (emit_struct_conv): Print an error message instead of
19325         asserting when a type does not have the StructLayout attribute.
19326
19327 2004-02-20  Martin Baulig  <martin@ximian.com>
19328
19329         * reflection.c (mono_type_get_object): Also use the cache for
19330         generic instances.
19331         (mono_reflection_bind_generic_parameters): Always compute
19332         `ginst->ifaces'.        
19333
19334 2004-02-20  Martin Baulig  <martin@ximian.com>
19335
19336         * class.h (MonoGenericMethod): Removed `klass'.
19337
19338         * class.c (mono_class_inflate_generic_method): Added `MonoClass
19339         *klass' argument.
19340
19341 2004-02-20  Martin Baulig  <martin@ximian.com>
19342
19343         * reflection.c (method_encode_methodspec): Actually use the
19344         uninflated signature for the memberref.
19345
19346 2004-02-20  Martin Baulig  <martin@ximian.com>
19347
19348         * class.h (MonoGenericMethod): Removed `declaring'.
19349
19350         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
19351         is NULL, compute it here.
19352
19353 2004-02-20  Martin Baulig  <martin@ximian.com>
19354
19355         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
19356
19357         * metadata.c (mono_metadata_generic_inst_hash): New method.
19358         (mono_metadata_generic_inst_equal): New method.
19359
19360         * reflection.c (mono_reflection_bind_generic_parameters): Use the
19361         `klass->image->generic_inst_cache' cache to avoid creating
19362         duplicate MonoGenericInst's.
19363
19364         * class.c (mono_class_inflate_generic_type): Use the cache.
19365
19366 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19367
19368         * object.c: fixed gc descriptor calculation for embedded valuetypes.
19369
19370 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19371
19372         * icall.c: added Socket.WSAIoctl icall.
19373
19374         * socket-io.[ch]: implemented
19375         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
19376
19377 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
19378
19379         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
19380
19381 2004-02-18  Urs C Muff  <umuff@quark.com>
19382
19383         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
19384         this work on PPC and other big-endian architectures.
19385
19386         * debug-mono-symfile.h: Prepended the names of all the `guint32'
19387         fields with an underscore to make sure they're only accessed by
19388         the read32() macro.
19389
19390 2004-02-18  Martin Baulig  <martin@ximian.com>
19391
19392         * icall.c: Put the klass->refclass changes back for methods and
19393         fields, but not for properties and events.  We're currently not
19394         distinguishing between DeclaringType and ReflectedType for
19395         properties and events, that's what caused the regressions.
19396
19397 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19398
19399         * object.c:
19400         (mono_async_result_new): the handle can be NULL.
19401
19402         * threadpool.c: Use an event instead of a semaphore, don't initialize
19403         it until needed. This saves quite a few semaphores from being created
19404         when using the threadpool.
19405
19406 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
19407
19408         * object.c (mono_string_is_interned_lookup): Fix interning of long
19409         strings. Fixes #54473.
19410
19411         * domain.c (ldstr_equal): Optimize if the two strings are equal.
19412
19413         * icall.c: Revert the klass->refclass changes since they introduce
19414         regressions (bug #54518).
19415
19416 2004-02-18  Martin Baulig  <martin@ximian.com>
19417
19418         * class.c (mono_class_init): If we're a generic instance and don't
19419         come from a TypeBuilder, inflate our members here.
19420         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
19421         (mono_class_create_generic): New public method.
19422         (mono_class_initialize_generic): Removed.
19423         (get_instantiation_name): Renamed to
19424         _mono_class_get_instantiation_name() and made it public.
19425
19426 2004-02-18  Martin Baulig  <martin@ximian.com>
19427
19428         * class.c (mono_class_inflate_generic_type): Clear the new
19429         instance's `nginst->klass' when inflating a generic instance.
19430         (mono_class_is_subclass_of): Added (basic) support for generic
19431         instances.
19432
19433 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
19434
19435         * appdomain.h, domain.c: use a MonoCodeManager instead of a
19436         MonoMempool to hold compiled native code.
19437
19438 2004-02-17  Martin Baulig  <martin@ximian.com>
19439
19440         * class.h (MonoDynamicGenericInst): Added `count_properties' and
19441         `properties'.
19442
19443         * reflection.c (mono_reflection_generic_inst_initialize): Added
19444         `MonoArray *properties' argument.
19445
19446         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
19447
19448 2004-02-17  Martin Baulig  <martin@ximian.com>
19449
19450         * icall.c (ves_icall_Type_GetFields): Renamed to
19451         ves_icall_Type_GetFields_internal() and added a
19452         `MonoReflectionType *rtype' argument; pass it to
19453         mono_field_get_object() to set the field's "reflected" type.
19454         (ves_icall_Type_GetConstructors): Likewise.
19455         (ves_icall_Type_GetEvents): Likewise.
19456         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
19457         argument; pass it to mono_method_get_object() to set the method's
19458         "reflected" type.       
19459
19460 2004-02-17  Martin Baulig  <martin@ximian.com>
19461
19462         * class.h (MonoDynamicGenericInst): New type.
19463         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
19464
19465         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
19466         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
19467         (ves_icall_MonoGenericInst_GetFields): New interncall.
19468
19469         * class.c (mono_class_from_generic): Don't call
19470         mono_class_initialize_generic() if this is a dynamic instance;
19471         ie. it's being created from a TypeBuilder.
19472         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
19473         `class->byval_arg.type'.
19474
19475         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
19476         to `inflate_method' and made static.
19477         (mono_reflection_inflate_field): Removed.
19478         (mono_reflection_generic_inst_initialize): New public method.
19479
19480         * reflection.h (MonoReflectionGenericInst): Removed `methods',
19481         `ctors' and `fields'; added `initialized'.
19482
19483 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
19484
19485         * debug-helpers.c (mono_method_full_name): Fix output for empty
19486         namespaces.
19487
19488 2004-02-12  Martin Baulig  <martin@ximian.com>
19489
19490         * class.h (MonoClassField): Added `MonoType *generic_type'.
19491
19492         * reflection.c (mono_image_get_fieldref_token): Added support for
19493         instantiated generic types.
19494         (field_encode_inflated_field): Removed.
19495         (mono_image_get_inflated_field_token): Removed.
19496         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
19497
19498         * reflection.h (MonoReflectionInflatedField): Removed.
19499
19500 2004-02-12  Martin Baulig  <martin@ximian.com>
19501
19502         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
19503         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
19504
19505         * reflection.c (mono_image_get_methodspec_token): Take a
19506         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
19507         (mono_image_create_token): Check whether we have a
19508         `method->signature->gen_method' and call
19509         mono_image_get_methodspec_token() if appropriate.
19510         (inflated_method_get_object): Removed.
19511         (mono_reflection_bind_generic_method_parameters): Return a
19512         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
19513         (mono_reflection_inflate_method_or_ctor): Likewise.
19514
19515         * reflection.h (MonoReflectionInflatedMethod): Removed.
19516
19517 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
19518
19519         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
19520         for custom valuetype marshalling.
19521
19522         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
19523
19524 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19525
19526         * icall.c: fixed WSAGetLastError_internal name.
19527
19528 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
19529
19530         * threads.c (mono_thread_attach): Allow this to be called multiple
19531         times for a thread.
19532         
19533         * threads.c (build_wait_tids): Do not wait for ourselves.
19534
19535         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
19536         appdomain list is empty.
19537
19538         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
19539         memory returned by mono_string_builder_to_utf16, since it points into
19540         managed memory. Thanks to Bernie Solomon for noticing this.
19541
19542         * icall.c: Add AppDomainSetup icalls.
19543
19544         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
19545
19546         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
19547         types.
19548
19549         * reflection.c (reflection_methodbuilder_to_mono_method): Save
19550         custom attributes to the method_aux struct. Also fix array indexes etc.
19551
19552         * loader.c (mono_method_get_param_names): Make dynamic case work again.
19553         
19554 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
19555
19556         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
19557         (both static and runtime) and reduce startup time.
19558
19559 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
19560
19561         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
19562         AsAny marshalling conversion instead of crashing.
19563
19564         * marshal.c: Fix warnings.
19565
19566 2004-02-09  Martin Baulig  <martin@ximian.com>
19567
19568         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
19569
19570         * reflection.h (MonoReflectionInflatedMethod): Removed the
19571         `declaring' field, it's now in the unmanaged MonoGenericMethod.
19572
19573         * reflection.c (method_encode_methodspec): Removed the `method'
19574         argument; we get it from `gmethod->declaring'.
19575         (inflated_method_get_object): Removed the `declaring' argument.
19576
19577 2004-02-09  Martin Baulig  <martin@ximian.com>
19578
19579         * class.h (MonoGenericMethod): New type.
19580         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
19581         `generic_method'.
19582
19583         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
19584         a `MonoGenericMethod *gen_method' one.
19585
19586         * class.c (mono_class_inflate_generic_type): Take an additional
19587         `MonoGenericMethod * argument.  This is only non-NULL if we're
19588         inflating types for a generic method.   
19589         (mono_class_inflate_generic_signature): Renamed to
19590         inflate_generic_signature() and made static; take a
19591         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
19592         (inflate_generic_header): Take a `MonoGenericMethod *' argument
19593         instead of a `MonoGenericInst *' one.
19594         (mono_class_inflate_generic_method): Likewise.
19595
19596         * reflection.c (encode_generic_method_sig): Take a
19597         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
19598         (method_encode_methodspec): Likewise.
19599         (inflated_method_get_object): Likewise. 
19600
19601         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
19602         field with a `MonoGenericMethod *gmethod' one.  
19603
19604 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
19605
19606         * class.h (mono_class_has_parent): add parens to expansion
19607         so you can ! this.
19608
19609 2004-02-08  Martin Baulig  <martin@ximian.com>
19610
19611         * image.h (MonoImage): Removed `generics_cache'.
19612
19613         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
19614         instead of a `MonoType *' argument; removed the `inflate_methods'
19615         argument.  Don't inflate methods here.
19616
19617         * loader.c (find_method): If it's a generic instance, call
19618         mono_class_init() on the `sclass->generic_inst->generic_type'.
19619
19620         * metadata.c (mono_type_size): Make this work on uninitialized
19621         generic instances; call it on the `ginst->generic_type's class.
19622
19623         * reflection.c (mono_reflection_bind_generic_parameters): Call
19624         mono_class_from_generic() to create the `ginst->klass'.
19625
19626 2004-02-08  Martin Baulig  <martin@ximian.com>
19627
19628         * class.h (MonoClass): Changed type of `generic_inst' from
19629         `MonoType *' to `MonoGenericInst *'.
19630
19631 2004-02-08  Martin Baulig  <martin@ximian.com>
19632
19633         * icall.c (ves_icall_Type_BindGenericParameters): Just call
19634         mono_type_get_object(), this is now creating a `MonoGenericInst'
19635         for MONO_TYPE_GENERICINST.
19636         (ves_icall_MonoGenericInst_GetParentType): Likewise.
19637         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
19638
19639         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
19640         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
19641         (inflated_method_get_object): Added `MonoClass *refclass' argument.
19642         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
19643         and reflected type.
19644
19645         * reflection.h (MonoReflectionInflatedMethod): Removed
19646         `declaring_type' and `reflected_type'.
19647
19648 2004-02-08  Martin Baulig  <martin@ximian.com>
19649
19650         * class.h (MonoGenericInst): Added `MonoType *parent' and
19651         `MonoType **ifaces'.
19652
19653         * reflection.h (MonoReflectionGenericInst): Removed `klass',
19654         `parent' and `interfaces'.
19655
19656         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19657         `MonoType *' argument and return a `MonoType *'.
19658
19659         * icall.c
19660         (ves_icall_MonoGenericInst_GetParentType): New interncall.
19661         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
19662
19663 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
19664
19665         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
19666         valuetype marshalling.
19667
19668 2004-02-06  Martin Baulig  <martin@ximian.com>
19669
19670         * class.c
19671         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
19672         (my_mono_class_from_generic_parameter): Likewise.
19673
19674 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
19675
19676         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
19677         contents of the symbol files lazily.
19678
19679         * object.h (MonoThread): Add 'name' and 'name_len' fields.
19680
19681         * threads.h threads.c icall.c: New icalls for getting and setting the
19682         threads name.
19683
19684 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
19685
19686         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
19687         Raise an exception when the domain is not found.
19688
19689 2004-02-03  Martin Baulig  <martin@ximian.com>
19690
19691         * reflection.c (mono_image_get_methodspec_token): Use the
19692         uninflated signature; fixes gen-33.
19693
19694 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
19695
19696         * gc.c threads.c: Make the finalizer thread a normal managed thread so
19697         the finalizer code can use thread functionality.
19698
19699         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
19700         the finalizer thread.
19701
19702         * threads.c: Make some functions more robust.
19703
19704         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
19705
19706         * metadata.h: Add new marshalling conventions.
19707
19708         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
19709         stringbuilder marshalling. Fixes #53700.
19710
19711         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
19712
19713         * reflection.c (mono_image_get_type_info): Save declarative security
19714         info.
19715
19716         * reflection.c (mono_image_get_field_info): Handle uninitialized 
19717         unmanaged fields as well.
19718
19719         * appdomain.c: Bump corlib version.
19720
19721 2004-02-01  Martin Baulig  <martin@ximian.com>
19722
19723         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
19724         method type arguments.  
19725
19726 2004-01-30  Duncan Mak  <duncan@ximian.com>
19727
19728         * marshal.h: Add prototype for
19729         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
19730         and
19731         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
19732         fix the build.
19733
19734 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
19735
19736         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
19737         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
19738
19739 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
19740
19741         * marshal.c (mono_marshal_get_native_wrapper): Add support for
19742         custom marshalling of valuetypes.
19743
19744         * marshal.c: Fix some warnings.
19745
19746 2004-01-29  Martin Baulig  <martin@ximian.com>
19747
19748         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
19749         for generic method parameters.
19750
19751         * reflection.c (method_encode_methodspec): Write the uninflated
19752         signature into the methodspec table.
19753         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
19754         is always the uninflated method.
19755         (reflection_methodbuilder_to_mono_method): Copy the generic
19756         parameters from the MethodBuilder into `header->gen_params'.
19757
19758 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
19759
19760         * class.c (mono_class_from_generic_parameter): Fix warning.
19761
19762 2004-01-27  Martin Baulig  <martin@ximian.com>
19763
19764         * class.c (mono_class_from_generic_parameter): Don't create
19765         `klass->methods' here.  
19766
19767 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
19768
19769         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
19770         extension since it does not work with libraries named lib<FOO>.dll.so.
19771
19772 2004-01-25  Martin Baulig  <martin@ximian.com>
19773
19774         * class.c (mono_class_inflate_generic_type): Added support for
19775         MONO_TYPE_GENERICINST.
19776
19777         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
19778         inflate methods on open constructed types.      
19779
19780 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19781
19782         * object.c: fire ProcessExit event in the root AppDomain after running
19783         Main. Fixes bug #53299.
19784
19785 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
19786
19787         * socket-io.c: include the new socket-wrappers.h header.
19788         Use the wrappers instead of the unix socket functions to make the code
19789         more clear.
19790
19791 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
19792
19793         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
19794
19795         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
19796         Fixes #22532.
19797
19798 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
19799
19800         * reflection.c (mono_image_create_pefile): Handle the case when the
19801         entry point is not a MethodBuilder.
19802
19803         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
19804         field to ReflectionMethod since it is not allways a builder.
19805
19806         * reflection.c (type_get_fully_qualified_name): New helper function to
19807         return the fully qualified name of a type.
19808
19809         * reflection.c (encode_marshal_blob): Always emit the fully qualified
19810         type name for custom marshallers.
19811
19812         * reflection.c (mono_marshal_spec_from_builder): Ditto.
19813
19814         * class.c (mono_class_setup_vtable): If a parent class already 
19815         implements an interface, use the implementing methods from that class.
19816         Fixes #53148.
19817
19818 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19819
19820         * threadpool.c: just return instead of ExitThread to allow for thread
19821         clean up earlier.
19822
19823 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
19824
19825         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
19826         when closing resource modules.
19827
19828         * reflection.c (mono_image_create_pefile): Handle the case when the
19829         entry point is not a MethodBuilder.
19830
19831         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
19832         field to ReflectionMethod since it is not allways a builder.
19833
19834 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
19835
19836         * marshal.c (mono_marshal_get_managed_wrapper): 
19837         mono_marshal_alloc takes native int so CONV_I
19838         the arg for 64bits.
19839
19840 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
19841
19842         * reflection.c (fixup_cattrs): New function to fixup the methoddef
19843         tokens in the cattr table. Fixes #53108.
19844
19845 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19846
19847         * loader.c: don't trim ".dll" before looking up in the config file.
19848         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
19849
19850 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
19851
19852         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
19853         Return the module which contains the resource as well.
19854         (ves_icall_System_Reflection_Module_Close): New icall.
19855
19856         * appdomain.c: Bump corlib version number.
19857
19858         * image.c (mono_image_addref): New public function.
19859
19860         * assembly.c: Call mono_image_addref.
19861
19862         * reflection.c (mono_module_get_object): Increase reference count of 
19863         the image.
19864
19865         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
19866         Fixes #22532.
19867
19868         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
19869         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
19870         proper exceptions on DllImport problems.
19871
19872 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
19873
19874         * class.c, metadata.c: eliminate CSIZE macro.
19875
19876 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
19877
19878         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
19879         * object.h: Added async_callback field in MonoAsyncResult.
19880         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
19881         * verify.c: Added async_callback in MonoAsyncResult layout.
19882
19883 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
19884
19885         * reflection.c (mono_reflection_get_custom_attrs): Add support
19886         for Modules.
19887
19888 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
19889
19890         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
19891         marshalling.
19892         (mono_marshal_method_from_wrapper): Add null pointer check.
19893
19894 2004-01-16  Martin Baulig  <martin@ximian.com>
19895
19896         * debug-mono-symfile.h: Set version number to 36 and reflect
19897         latest symbol writer changes.
19898
19899 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
19900
19901         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
19902         multi-dimensional arrays.
19903         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
19904         (mono_class_from_mono_type): Use bounded_array_class_get.
19905         
19906         * class.c (mono_bounded_array_class_get): New function which takes
19907         a 'bounded' bool argument to distinguish vectors from one dimensional
19908         arrays.
19909
19910         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
19911         bounded_array_class_get if the array has bounds.
19912
19913         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19914         Search modules loaded using AssemblyBuilder:AddModule as well.
19915
19916 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19917
19918         * appdomain.c: increased corlib version.
19919         * filewatcher.c: removed g_print.
19920         * icall.c:
19921         (get_property_info): only allocate what is actually requested.
19922         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
19923
19924 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19925
19926         * Makefile.am: added filewatcher.[ch]
19927         * filewatcher.[ch]: FileSystemWatcher runtime support.
19928         * icall.c: added new FSW icalls.
19929
19930 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
19931
19932         * string-icalls.c: fix stringbuilder regression as suggested by
19933         Iain McCoy <iain@mccoy.id.au>.
19934
19935 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
19936
19937         * process.c (process_read_stringtable_block): Recognize '007f' as
19938         a language neutral stringtable block.
19939
19940 2004-01-12  Patrik Torstensson
19941
19942         * object.h (MonoStringBuilder) : Changed layout to support our
19943         new stringbuilder class.
19944         * marshal.c: Change marshalling to support the new layout of 
19945         string builder.
19946         * appdomain.c: increased version number because new layout of
19947         string builder.
19948
19949 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
19950
19951         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
19952         assembly name as an string instead of an AssemblyName, since it is
19953         easier to extract info from it.
19954
19955         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
19956         the culture subdirectories too. Fixes #52231.
19957
19958 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19959
19960         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
19961         It takes 2 new parameters with an optional name for the method to look
19962         for and case ignoring info.
19963
19964         * threadpool.c: removed unused variable.
19965
19966 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19967
19968         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
19969         It takes 2 new parameters with an optional name for the property to look
19970         for and case ignoring info.
19971         Fixes bug #52753.
19972
19973 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
19974
19975         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
19976         Fix #52451.
19977
19978 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19979
19980         * appdomain.c:
19981         * assembly.c: escape the uri before passing it to g_filename_from_uri.
19982         Fixes bug #52630.
19983
19984 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
19985
19986         * reflection.c: Add support for more than one unmanaged resource.
19987
19988         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
19989         in field->def_value, as done in all other cases.
19990
19991         * reflection.c (mono_reflection_get_custom_attrs): Add support for
19992         TypeBuilders.
19993
19994         * reflection.c (mono_reflection_create_runtime_class): Remove 
19995         errorneous assignment to klass->element_class, since it is already
19996         done in mono_reflection_setup_internal_class.
19997
19998 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19999
20000         * gc.c: added missing LeaveCriticalSection.
20001         * icall.c: indented a couple of lines.
20002         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
20003         if we call EndInvoke inside a callback. Fixes bug #52601.
20004
20005 2004-01-07  Martin Baulig  <martin@ximian.com>
20006
20007         * mono-debug-debugger.h
20008         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
20009
20010 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
20011
20012         * appdomain.c: Use messages in NotImplementedException.
20013
20014         * exception.c (mono_get_exception_not_implemented): Now this takes
20015         a message argument.
20016
20017         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
20018         exception instead of g_asserting an aborting when something is not
20019         implemented.
20020
20021         Add some inline docs.
20022
20023 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
20024
20025         * reflection.h: Update after changes to object layout.
20026
20027         * reflection.c: Implement saving of unmanaged aka win32 resources.
20028
20029         * appdomain.c: Bump version number.
20030
20031         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
20032         Handle missing domains gracefully.
20033
20034 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
20035
20036         * file-io.c : On Windows, there are much more invalid_path_chars.
20037
20038 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
20039
20040         * class.h, object.c: prepare for GetType () speedup.
20041
20042 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
20043
20044         * profiler.c: workaround for --profile null reference exception on
20045           cygwin. Patch by Patrik Torstensson.
20046
20047 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
20048
20049         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
20050         make work for unaligned access.
20051
20052 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
20053
20054         * class.c: small cleanup (class->fields [i] -> field).
20055         * image.c: check address of metadata is valid.
20056
20057 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
20058
20059         * assembly.h assembly.c (mono_assembly_loaded): New public function to
20060         search the list of loaded assemblies.
20061
20062         * reflection.c (mono_reflection_type_from_name): Use 
20063         mono_assembly_loaded instead of mono_image_loaded.
20064
20065         * reflection.c: Fix warnings.
20066
20067 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
20068
20069         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
20070         is dynamic. This is needed since an assembly can contain both dynamic and
20071         non-dynamic images.
20072
20073         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
20074         assembly->dynamic.
20075
20076         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
20077
20078         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
20079         to store modules loaded using AddModule.
20080
20081         * reflection.c (mono_image_fill_file_table): Generalize this so it works
20082         on Modules.
20083
20084         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
20085
20086         * reflection.c (mono_image_fill_export_table_from_module): New function to
20087         fill out the EXPORTEDTYPES table from a module.
20088
20089         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
20090         into a separate function. Also handle loaded non-dynamic modules.
20091
20092         * reflection.c (mono_image_basic_init): Fix memory allocation.
20093
20094         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20095
20096         * assembly.c (mono_assembly_load_references): Make this public.
20097
20098 2003-12-19  Martin Baulig  <martin@ximian.com>
20099
20100         * class.c (mono_class_initialize_generic): Made this static, take
20101         a `MonoGenericInst *' instead of a `MonoClass *'.
20102         (mono_class_from_generic): Call mono_class_initialize_generic()
20103         unless we're already initialized or being called from
20104         do_mono_metadata_parse_generic_inst().
20105
20106         * class.h (MonoGenericInst): Added `initialized' and
20107         `init_pending' flags.
20108
20109         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
20110         `mono_class_init (gklass)' or mono_class_initialize_generic()
20111         here; set `generic_inst->init_pending' while parsing the
20112         `type_argv'.
20113
20114 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
20115
20116         * locales.c: include string.h for memxxx prototypes
20117
20118 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
20119
20120         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
20121         constructor when accessing literal fields.
20122
20123 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
20124
20125         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20126
20127         * reflection.c (assembly_add_resource_manifest): New function to fill
20128         the MANIFESTRESOURCE table.
20129
20130         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
20131
20132         * reflection.h: Update to changes in class layout.
20133
20134         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
20135         Reenable call to mono_runtime_is_shutting_down ().
20136
20137         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
20138         determine if the runtime is shutting down.
20139
20140 2003-12-16  Jackson Harper <jackson@ximian.com>
20141
20142         * icall.c: comment out call to mono_runtime_is_shutting_down to
20143         fix build.
20144         
20145 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
20146
20147         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
20148         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
20149
20150 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
20151
20152         * reflection.c: move definition of swap_with_size
20153         to before its first call
20154
20155 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
20156
20157         * appdomain.c (mono_runtime_is_shutting_down): New public function.
20158
20159         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
20160         icall.
20161
20162         * object.c: Fix warnings.
20163
20164         * icall.c (ves_icall_Type_Get...): Only consider inherited static
20165         members if FlattenHierarchy is set.
20166
20167         * reflection.c (mono_image_add_decl_security): New function to emit
20168         declarative security.
20169
20170         * reflection.h reflection.c: Add support for declarative security.
20171
20172         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20173         
20174 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
20175
20176         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20177         
20178         * appdomain.c verify.c: Moved corlib version checking into its own
20179         function in appdomain.c since it needs to create vtables etc.
20180
20181 2003-12-13  Patrik Torstensson <p@rxc.se>
20182
20183         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
20184         instead of unwrapped server.
20185
20186 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
20187
20188         * verify.c (check_corlib): Fix field index.
20189
20190 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
20191
20192         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
20193         GetGacPath icall.
20194
20195 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
20196
20197         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
20198         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
20199         cope with sizeof(size_t) != sizeof(guint32).
20200
20201 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20202
20203         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
20204         in case of failure.
20205
20206 2003-12-10  Mark Crichton <crichton@gimp.org>
20207
20208         * icall.c: removed the GetNonZeroBytes.  We now handle this case
20209         in managed code.
20210
20211         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
20212
20213 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
20214
20215         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
20216         marked as deleted.
20217
20218 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
20219
20220         * verify.c (check_corlib): Handle the case when the version field is 
20221         initialized by a static constructor.
20222
20223 2003-12-08  Patrik Torstensson  <p@rxc.se>
20224
20225     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
20226
20227 2003-12-08  Martin Baulig  <martin@ximian.com>
20228
20229         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
20230         a MonoReflectionGenericParameter, also take the parameter index
20231         and name as arguments.
20232         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
20233         (ves_icall_MonoGenericParam_initialize): New interncall.
20234         (ves_icall_Type_make_byref_type): New interncall.
20235
20236         * reflection.h (MonoReflectionGenericParam): Derive from
20237         MonoReflectionType, not just from MonoObject.  Added `refobj' and
20238         `index' fields.
20239
20240         * reflection.c (mono_reflection_define_generic_parameter): Create
20241         and return a new MonoReflectionGenericParam; don't initialize the
20242         constraints here.
20243         (mono_reflection_initialize_generic_parameter): New public method;
20244         initializes the constraints and creates the `param->pklass'.
20245
20246 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
20247
20248         * reflection.h reflection.c: Use the new fields 'num_types', 
20249         'num_fields' and 'num_methods' to track the number of types etc.
20250
20251         * verify.c (check_corlib): Check corlib version number.
20252
20253 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
20254
20255         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
20256         function works on all methods.
20257
20258 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
20259
20260         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
20261         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
20262         the custom_type_info flag of the transparent proxy.
20263         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
20264         objects that supports IRemotingTypeInfo.
20265         * object.h: Added custom_type_info field in transparent proxy.
20266
20267 2003-12-06  Martin Baulig  <martin@ximian.com>
20268
20269         * class.c (mono_class_create_from_generic): Removed.
20270         (mono_class_from_generic): Check `ginst->klass' before doing
20271         anything else.  This is important to fully support "recursive"
20272         generic types.
20273
20274         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
20275         empty `generic_inst->klass' before doing anything else.
20276
20277 2003-12-06  Dick Porter  <dick@ximian.com>
20278
20279         * verify.c: 
20280         * object.h:
20281         * icall.c:
20282         * locales.c: Use C structs to access class fields.  Don't do a
20283         conversion between MonoString and UChar because both are
20284         platform-endian UTF-16.  Compare now takes startindex and count
20285         parameters.  Add a char overload for IndexOf.  Speed up the
20286         invariant string IndexOf.
20287
20288 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
20289
20290         * Makefile.am (monosn_LDADD): Fix parallel build.
20291
20292 2003-12-04  Martin Baulig  <martin@ximian.com>
20293
20294         * icall.c
20295         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20296         (ves_icall_Type_make_array_type): New interncall.       
20297
20298 2003-12-04  Martin Baulig  <martin@ximian.com>
20299
20300         * locales.c: also change it in the !HAVE_ICU case.
20301
20302 2003-12-04  Dick Porter  <dick@ximian.com>
20303
20304         * icall.c:
20305         * locales.c: construct_compareinfo is now in CompareInfo, not
20306         CultureInfo.
20307
20308 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
20309
20310         * image.c (mono_image_load_file_for_image): Cache loaded images in the
20311         image->files array.
20312
20313         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
20314         table as well.
20315
20316         * assembly.c (mono_assembly_load_references): Only load references
20317         once.
20318
20319         * class.c (mono_class_from_name): Avoid linear search of the 
20320         EXPORTEDTYPE table.
20321
20322         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
20323
20324 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
20325
20326         * image.h (MonoImage): Add 'field_cache' field.
20327
20328         * loader.c (mono_field_from_token): Cache field lookups.
20329         
20330         * reflection.c (mono_module_get_object): Fix name property.
20331
20332         * icall.c (ves_icall_get_enum_info): Update after changes to 
20333         mono_metadata_get_constant_index ().
20334
20335         * icall.c: Get rid of get_type_info icall, use a separate icall for
20336         each type property to avoid needless memory allocations. Fixes #51514.
20337
20338         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
20339         to avoid needless binary searches.
20340
20341         * class.c (class_compute_field_layout): Move the initialization of
20342         field->def_value to mono_class_vtable ().
20343
20344         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
20345         non-corlib types.
20346
20347         * object.c (mono_object_allocate): Make it inline.
20348
20349         * object.c (mono_object_allocate_spec): Make it inline.
20350         
20351 2003-12-02  Dick Porter  <dick@ximian.com>
20352
20353         * locales.c (create_NumberFormat): NumberFormatInfo construction.
20354         Patch by Mohammad DAMT (mdamt@cdl2000.com).
20355
20356 2003-12-01  Dick Porter  <dick@ximian.com>
20357
20358         * threads.c: Fix signature and call in CreateMutex and
20359         CreateEvent.
20360
20361 2003-12-01  Dick Porter  <dick@ximian.com>
20362
20363         * icall.c: 
20364         * locales.c: Implement string compares and searching
20365
20366         * object.h: Add extra Thread field
20367
20368 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
20369
20370         * reflection.c (fixup_method): Add support for MonoCMethod.
20371
20372 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
20373
20374         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
20375
20376         * reflection.c (assembly_name_to_aname): Allow extra characters in
20377         assembly names. Fixes #51468.
20378
20379 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
20380
20381         * exception.c (mono_exception_from_name_domain): New helper function.
20382
20383         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
20384         exception object in the correct domain.
20385
20386         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
20387         formatting + make a copy a the input data.
20388
20389         * loader.c (mono_get_method_from_token): Methods which contain
20390         native code do not have entries in the ImplMap.
20391
20392         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
20393         Thanks to Gonzalo for spotting this.
20394         
20395         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
20396         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
20397
20398         * assembly.h (mono_assembly_load_from): Split the second part of 
20399         assembly loading into a new public function.
20400
20401         * exception.h (mono_get_exception_bad_image_format): New function.
20402
20403 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
20404
20405         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20406         Enumerate all modules inside a dynamic assembly. Fixes #51293.
20407         
20408         * icall.c: Add new icall for creating dynamic methods.
20409
20410         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
20411
20412         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
20413
20414         * reflection.c (mono_reflection_create_dynamic_method): New icall to
20415         create a dynamic method.
20416
20417         * reflection.c (resolve_object): New helper function.
20418
20419         * reflection.c: Generalize ReflectionMethodBuilder and the functions
20420         which manipulate it so they can also work on dynamic methods.
20421
20422         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
20423         creating the MonoReflectionMethodAux structure if it is not needed.
20424         
20425         * reflection.h verify.c: Update after changes to object layout.
20426
20427         * reflection.c (method_builder_encode_signature): Fix compilation on
20428         gcc 2.95.x.
20429
20430 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
20431
20432         * appdomain.h: Added support for context static fields. Added static_data
20433           field to MonoAppContext and renamed thread_static_fields to a more
20434           generic special_static_fields in MonoAppDomain, since it can now contain
20435           context static fields.
20436         * domain.c: Updated hashtable name.
20437         * object.c: Replaced field_is_thread_static() for a more generic
20438           field_is_special_static() which also checks for context static attribute.
20439           In mono_class_vtable(), added support for static context fields.
20440         * threads.c: Changed methods that manage thread static fields to more
20441           generic methods so they can be reused both for thread and context static
20442           data.
20443         * threads.h: Declared some new methods.
20444
20445 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
20446
20447         * reflection.h: Update after changes to the managed types.
20448
20449         * reflection.c (encode_custom_modifiers): New helper function.
20450
20451         * reflection.c (method_encode_signature): Emit custom modifiers.
20452
20453         * reflection.c (field_encode_signature): Emit custom modifiers.
20454
20455 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
20456
20457         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
20458
20459         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
20460         implementation.
20461
20462         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
20463         icall.
20464
20465         * object.c (mono_field_get_value_object): New function.
20466
20467         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
20468         specific.
20469
20470 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
20471
20472         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
20473         return a preallocated out-of-memory exception instance.
20474
20475         * object.c (out_of_memory): Use the new function.
20476
20477         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
20478         flag is before the custom modifiers. Fixes #49802.
20479
20480 2003-11-16  Martin Baulig  <martin@ximian.com>
20481
20482         * class.c (mono_class_is_open_constructed_type): Implemented the
20483         MONO_TYPE_GENERICINST case.
20484
20485 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
20486
20487         * assembly.c (mono_assembly_fill_assembly_name): New function to
20488         fill out the MonoAssemblyName structure.
20489         (mono_assembly_open): Use the new function.
20490
20491         * icall.c (fill_reflection_assembly_name): New helper function.
20492
20493         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
20494         new function.
20495
20496         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
20497
20498 2003-11-15  Martin Baulig  <martin@ximian.com>
20499
20500         * class.c (mono_class_is_open_constructed_type): New public
20501         function; checks whether a type is an open constructed type,
20502         ie. whether it still contains type parameters.
20503         (mono_class_inflate_generic_type): If we're a type parameter and
20504         the inflated type is also a MONO_TYPE_(M)VAR, return the original
20505         type.
20506
20507         * class.h (MonoGenericInst): Added `guint32 is_open'.
20508
20509         * loader.c (method_from_methodspec): Check whether we're an open
20510         or closed constructed type and set `ginst->is_open'.
20511
20512         * reflection.c (mono_reflection_bind_generic_parameters): Check
20513         whether we're an open or closed constructed type and set
20514         `ginst->is_open'.
20515         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
20516         from open constructed types.
20517
20518 2003-11-15  Martin Baulig  <martin@ximian.com>
20519
20520         * reflection.c (mono_reflection_bind_generic_parameters): If we're
20521         a generic instance (instead of a generic type declaration) with
20522         unbound generic parameters, bind them to our actual types.
20523
20524 2003-11-14  Martin Baulig  <martin@ximian.com>
20525
20526         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
20527
20528         * reflection.c (mono_reflection_bind_generic_parameters): If we're
20529         an interface type, populate `res->interfaces' with instantiated
20530         versions of all the interfaces we inherit.
20531
20532 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
20533
20534         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
20535         when MONO_PATH is set but doesn't contain the install dir.
20536
20537 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20538
20539         * icall.c:
20540         (ves_icall_Type_GetInterfaces): don't return an interface twice when
20541         it's also implemented in base classes. Fixes bug #50927.
20542
20543 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
20544
20545         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
20546         if this method is called from a finalizer. Fixes #50913.
20547
20548 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
20549
20550         * threads.c: Implement VolatileRead/VolatileWrite
20551
20552         * icall.c: Add new icalls for VolatileRead/VolatileWrite
20553
20554 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20555
20556         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
20557         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
20558         2.95.3.
20559
20560         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
20561         from Peter Ross (pro@missioncriticalit.com).
20562         
20563 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
20564
20565         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
20566
20567 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20568
20569         * assembly.c (mono_assembly_load_references): Disable check because it
20570         triggers on older corlibs which lots of people have.
20571
20572 2003-11-12  Jackson Harper  <jackson@ximian.com>
20573
20574         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
20575         load corlib.dll if mscorlib.dll is not found.
20576         * assembly.h: Remove corlib name define.
20577         * class.c:
20578         * domain.c:
20579         * image.c: Change corlib name to mscorlib.
20580         
20581 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20582
20583         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
20584
20585 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
20586
20587         * appdomain.h: Added loader_optimization here to sync with the C#
20588         code, and add disallow_binding_redirects field.
20589
20590 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
20591
20592         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
20593
20594         * reflection.c (mono_image_build_metadata): Fix crash on modules
20595         with no types.
20596
20597         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
20598
20599         * icall.c (ves_icall_get_method_info): Return callingConvention as
20600         well.
20601
20602         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
20603         namespaces from the EXPORTEDTYPE table as well.
20604
20605         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
20606         from all modules inside the assembly.
20607         
20608 2003-11-11  Martin Baulig  <martin@ximian.com>
20609
20610         * reflection.c (mono_reflection_bind_generic_parameters): Make
20611         this work for interfaces.
20612
20613 2003-11-11  Martin Baulig  <martin@ximian.com>
20614
20615         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
20616
20617 2003-11-11  Martin Baulig  <martin@ximian.com>
20618
20619         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
20620         "MonoInflatedMethod" and "MonoInflatedCtor".
20621
20622 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
20623
20624         * reflection.c (resolution_scope_from_image): Use the assembly table
20625         from the manifest module, since other modules don't have it.
20626
20627         * debug-helpers.c (mono_type_full_name): New helper function.
20628
20629         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
20630
20631         * image.c (mono_image_load_file_for_image): New public function which
20632         is a replacement for the load_file_for_image in class.c.
20633
20634         * assembly.c (mono_assembly_load_module): A wrapper for the function
20635         above which does assembly association and reference loading too.
20636
20637         * class.c (mono_class_from_name): Call mono_assembly_load_module.
20638
20639 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20640
20641         * appdomain.c: not all of the attributes for the full assembly name
20642         are required and the order doesn't matter. Fixes bug #50787.
20643
20644 2003-11-10  Dick Porter  <dick@ximian.com>
20645
20646         * locales.c: Use platform-endian UTF16
20647
20648 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
20649
20650         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
20651         
20652 2003-11-10  Martin Baulig  <martin@ximian.com>
20653
20654         * metadata.c
20655         (mono_metadata_load_generic_params): Make this actually work.
20656
20657         * reflection.c (mono_reflection_bind_generic_parameters): If our
20658         parent is a generic instance, pass all the `types' to it, no
20659         matter whether it has the same number of type parameters or not.
20660
20661 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
20662
20663         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
20664
20665         * assembly.c (mono_assembly_load_references): Move the image<->assembly
20666         assignment code to this function so it gets called recursively for all
20667         modules.
20668
20669         * image.c (load_modules): Remove the assembly assignment since it is
20670         now done by mono_assembly_load_references.
20671         
20672         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20673         Add 'module' argument.
20674         (mono_module_get_types): New helper function.
20675         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
20676
20677 2003-11-08  Martin Baulig  <martin@ximian.com>
20678
20679         * class.c (mono_class_inflate_generic_method): Interface method
20680         don't have a header.
20681
20682         * reflection.c (mono_image_get_methodspec_token): Take an
20683         additional `MonoGenericInst *' argument instead of reading it from
20684         the header; this is necessary to support interfaces.
20685         (mono_image_create_token): Pass the `MonoGenericInst *' from the
20686         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
20687         (inflated_method_get_object): Take an additional `MonoGenericInst *'
20688         argument.
20689
20690         * reflection.h (MonoReflectionInflatedMethod): Added
20691         `MonoGenericInst *ginst'.
20692
20693 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
20694
20695         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
20696
20697 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
20698
20699         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
20700
20701 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
20702
20703         * reflection.c 
20704         (reflection_methodbuilder_from_method_builder):
20705         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
20706         initialize a ReflectionMethodBuilder structure.
20707         (mono_image_get_methodbuilder_token):
20708         (mono_image_get_ctorbuilder_token): New functions to emit memberref
20709         tokens which point to types in another module inside the same assembly.
20710
20711         * reflection.c: Use the new helper functions.
20712         
20713         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
20714
20715         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
20716         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
20717
20718         * reflection.c (resolution_scope_from_image): Emit a moduleref if
20719         neccesary.
20720
20721         * reflection.c (mono_image_build_metadata): Emit metadata only for the
20722         current module. Emit the manifest only for the main module.
20723
20724         * reflection.c (mono_image_create_token): Add assertion when a 
20725         memberref needs to be created.
20726
20727         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
20728
20729         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
20730         larger buffer for the custom attribute blob. Fixes #50637.
20731         
20732 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20733
20734         * threadpool.c: notify listener on async processing handles after
20735         invoking the async callback. Thanks to Zoltan.
20736
20737 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20738
20739         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
20740         avoid code duplication.
20741
20742         * reflection.h (MonoDynamicImage): New type which is currently unused,
20743         but will be used through the ref.emit code in place of 
20744         MonoDynamicAssembly.
20745
20746         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
20747         object layout.
20748
20749         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
20750         a MonoDynamicImage instead of just a MonoImage.
20751         
20752         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
20753         icalls to ModuleBuilder but keep their semantics, so they will work
20754         with moduleb->assemblyb. This will change later.
20755         
20756 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20757
20758         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
20759         object layout.
20760
20761         * reflection.c (mono_image_build_metadata): Avoid creation of a default
20762         main module, since it is now done by the managed code.
20763
20764 2003-11-03  Martin Baulig  <martin@ximian.com>
20765
20766         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
20767         `ginst->klass' here.
20768         (method_encode_methodspec): Don't use the `ginst->generic_method's
20769         klass if it's a generic instance, use `ginst->klass' in this case.
20770
20771 2003-11-03  Martin Baulig  <martin@ximian.com>
20772
20773         * reflection.c (mono_image_get_generic_method_param_info):
20774         Removed, use mono_image_get_generic_param_info() instead.
20775         (mono_image_get_type_info): Write the GenericParam table before
20776         the Method table.  This is neccessary because in the GenericParam
20777         table, type parameters of the class (ie. '!0' etc.) must come
20778         before the ones from its generic methods (ie. '!!0' etc).
20779
20780 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20781
20782         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
20783
20784 2003-11-02  Martin Baulig  <martin@ximian.com>
20785
20786         * reflection.c (create_generic_typespec): Take a
20787         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
20788         the generic parameters from it.
20789
20790 2003-11-02  Martin Baulig  <martin@ximian.com>
20791
20792         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
20793         instead of a `MonoClassField *' since we just need the type.
20794         (create_generic_typespec): New static function.  Creates a
20795         TypeSpec token for a generic type declaration.
20796         (mono_image_get_generic_field_token): New static function.
20797         (mono_image_create_token): If we're a FieldBuilder in a generic
20798         type declaration, call mono_image_get_generic_field_token() to get
20799         the token.
20800
20801 2003-11-02  Martin Baulig  <martin@ximian.com>
20802
20803         * reflection.h
20804         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
20805         `MonoReflectionGenericInst *declaring_type' and
20806         `MonoReflectionGenericInst *reflected_type' fields.
20807
20808         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
20809         `MonoReflectionGenericInst *declaring_type' and a
20810         `MonoReflectionGenericInst *reflected_type' argument instead of a
20811         single `MonoReflectionGenericInst *type' one.  Set
20812         `res->declaring_type' and `res->reflected_type' from them.
20813         (mono_reflection_inflate_field): Likewise.      
20814
20815 2003-11-02  Martin Baulig  <martin@ximian.com>
20816
20817         * class.c (mono_class_setup_vtable): Don't store generic methods
20818         in the vtable.  
20819
20820 2003-11-02  Martin Baulig  <martin@ximian.com>
20821
20822         * reflection.h (MonoReflectionGenericInst): Added
20823         `MonoReflectionType *declaring_type'.
20824
20825         * reflection.c (mono_reflection_bind_generic_parameters): Use
20826         `if (tb->parent)' instead of `klass->parent'.
20827
20828 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
20829
20830         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
20831         with an empty ASSEMBLY table.
20832
20833         * reflection.c (mono_image_build_metadata): Avoid using the same loop
20834         variable in the inner and outer loops.
20835
20836 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
20837
20838         * metadata.h (mono_metadata_make_token): Put parentheses around macro
20839         argument.
20840
20841         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
20842         
20843         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
20844         icalls. Instead, do everything in managed code. This is needed since
20845         it is hard to restore the original domain etc. in unmanaged code in the
20846         presence of undeniable exceptions.
20847
20848         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
20849         New icalls to push and pop appdomain refs.
20850
20851 2003-10-31  Martin Baulig  <martin@ximian.com>
20852
20853         * class.c (inflate_generic_type): Renamed to
20854         mono_class_inflate_generic_type() and made it public.
20855
20856         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
20857         New interncall.
20858
20859         * loader.c (mono_field_from_memberref): Also set the retklass for
20860         typespecs.
20861
20862         * fielder.c (mono_image_get_inflated_field_token): New static
20863         method; creates a metadata token for an inflated field.
20864         (mono_image_create_token, fixup_method): Added support for
20865         "MonoInflatedField".
20866         (fieldbuilder_to_mono_class_field): New static function.
20867         (mono_reflection_inflate_field): New public function.
20868
20869         * reflection.h
20870         (MonoReflectionGenericInst): Added `MonoArray *fields'.
20871         (MonoReflectionInflatedField): New typedef.     
20872
20873 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
20874
20875         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
20876         for Solaris and other platforms without s6_addr16
20877
20878 2003-10-30  Martin Baulig  <martin@ximian.com>
20879
20880         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
20881         argument instead of two.
20882         (mono_class_inflate_generic_signature): Likewise.
20883         (inflate_generic_header): Likewise.
20884         (mono_class_inflate_generic_method): Likewise.  In addition, if
20885         `ginst->klass' is set, it becomes the new `method->klass'.
20886
20887         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
20888         field.
20889
20890         * reflection.c (encode_generic_method_sig): Write a 0xa as the
20891         first byte. [FIXME]
20892         (method_encode_methodspec): If we have generic parameters, create
20893         a MethodSpec instead of a MethodRef.
20894         (fixup_method): Added support for "MonoInflatedMethod" and
20895         "MonoInflatedCtor".
20896         (mono_image_create_token): Added support for "MonoInflatedMethod"
20897         and "MonoInflatedCtor".
20898         (inflated_method_get_object): New static function; returns a
20899         managed "System.Reflection.MonoInflatedMethod" object.
20900         (mono_reflection_bind_generic_method_parameters): Return a
20901         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
20902         (mono_reflection_inflate_method_or_ctor): Likewise.
20903         (mono_image_get_generic_method_param_info): Initialize unused
20904         fields to zero.
20905         (mono_image_get_generic_param_info): Likewise.
20906
20907         * reflection.h (MonoReflectionInflatedMethod): New public
20908         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
20909         "S.R.MonoInflatedCtor" classes.
20910
20911         * loader.c (method_from_memberref): If we're a TypeSpec and it
20912         resolves to a generic instance, inflate the method.
20913
20914 2003-10-28  Dick Porter  <dick@ximian.com>
20915
20916         * object.c (mono_runtime_run_main): Convert command-line arguments
20917         into utf8, falling back to the user's locale encoding to do so.
20918
20919 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
20920
20921         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
20922         at this time.
20923
20924         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
20925
20926         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
20927         up icalls at method definition time. Partially fixes #33569.
20928
20929 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
20930
20931         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
20932         marshalling of arrays. Fixes #50116.
20933
20934         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
20935
20936         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
20937         points to a vtable in the dying appdomain.
20938
20939         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
20940         listeners into unmanaged code inside the lock.
20941
20942         * object.c (mono_class_vtable): Turn off typed allocation in non-root
20943         domains and add some comments.
20944
20945 2003-10-25  Martin Baulig  <martin@ximian.com>
20946
20947         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
20948
20949         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
20950
20951         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
20952         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
20953         currently parsing.  Create the generic class and store it in
20954         `generic_inst->klass' before parsing the type arguments.  This is
20955         required to support "recursive" definitions; see mcs/tests/gen-23.cs
20956         for an example.
20957         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
20958         to support recursive typespec entries.
20959
20960         * class.c (mono_class_setup_parent): If our parent is a generic
20961         instance, we may get called before it has its name set.
20962         (mono_class_from_generic): Splitted into
20963         mono_class_create_from_generic() and mono_class_initialize_generic().
20964
20965 2003-10-25  Martin Baulig  <martin@ximian.com>
20966
20967         * icall.c (ves_icall_Type_BindGenericParameters): Return a
20968         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
20969         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
20970         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
20971
20972         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
20973         (create_typespec): Likewise.
20974         (mono_reflection_bind_generic_parameters): Return a
20975         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
20976         (mono_reflection_inflate_method_or_ctor): New public function.
20977
20978         * reflection.h (MonoReflectionGenericInst): New typedef.        
20979
20980 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
20981
20982         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
20983         inside the domain lock. Fixes #49993.
20984         
20985         * object.c (mono_class_vtable): When typed allocation is used, 
20986         allocate vtables in the GC heap instead of in the mempool, since the
20987         vtables contain GC descriptors which are used by the collector even
20988         after the domain owning the mempool is unloaded.
20989
20990         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
20991
20992         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
20993         reflect what it does. Also invalidate mempools instead of freeing
20994         them if a define is set.
20995
20996         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
20997         of the appdomain.
20998         
20999         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
21000         hold the finalizable objects in this domain.
21001
21002         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
21003         appdomain.
21004
21005         * appdomain.c (mono_domain_set): New function to set the current
21006         appdomain, but only if it is not being unloaded.
21007
21008         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
21009         appdomain which is being unloaded.
21010         
21011         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
21012         unloading of the root appdomain.
21013
21014         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
21015         icall to execute a method in another appdomain. Intended as a 
21016         replacement for InternalSetDomain, which can confuse the code 
21017         generation in the JIT.
21018
21019         * appdomain.c (mono_domain_is_unloading): New function to determine
21020         whenever an appdomain is unloading.
21021
21022         * appdomain.c (mono_domain_unload): New function to correctly unload
21023         an appdomain.
21024
21025         * assembly.c (mono_assembly_load_references): Check that an assembly
21026         does not references itself.
21027
21028         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
21029         domain manually, it asks the finalizer thread to do it, then waits for
21030         the result. Also added a timeout.
21031
21032         * icall.c: Register the new icalls.
21033
21034         * threads.h threads.c: Export the mono_gc_stop_world and 
21035         mono_gc_start_world functions.
21036         
21037         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
21038         function to fill out the mempool with 0x2a.
21039
21040 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
21041
21042         * reflection.h (MonoReflectionMethodAux): New structure to store
21043         information which is rarely used, thus is not in the MonoMethod
21044         structure.
21045
21046         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
21047         store the aux info.
21048
21049         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
21050         and marshalling info into the aux structure.
21051
21052         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
21053         from the aux structure.
21054
21055         * loader.c (mono_method_get_param_names): Retrieve the param names from
21056         the aux structure.
21057         
21058 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
21059
21060         * exception.h exception.c: Add AppDomainUnloadedException && fix 
21061         warning.
21062
21063 2003-10-21  Dick Porter  <dick@ximian.com>
21064
21065         * socket-io.c
21066         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
21067         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
21068
21069 2003-10-21  Martin Baulig  <martin@ximian.com>
21070
21071         * reflection.c (mono_reflection_bind_generic_parameters):
21072         `klass->parent' is NULL for interfaces.
21073
21074 2003-10-21  Martin Baulig  <martin@ximian.com>
21075
21076         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21077
21078 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
21079
21080         * exception.c (mono_exception_from_name_msg): New helper function for
21081         creating exceptions and initializing their message field.
21082
21083         * exception.c: Simplify functions using the new helper.
21084
21085         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
21086         New function.
21087
21088         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
21089         mono_raise_exception, since otherwise gcc doesn't generate the function
21090         epilog for raise_exception, confusing the stack unwinding in the JIT.
21091         Fixes #45043.
21092
21093         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
21094         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
21095         Fixes #49499.
21096
21097 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21098
21099         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
21100         utf8.
21101
21102 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
21103
21104         * icall.c: Removed GetUninitializedObject method because
21105           AllocateUninitializedClassInstance does the same.
21106
21107 2003-10-18  Martin Baulig  <martin@ximian.com>
21108
21109         * class.c (inflate_generic_signature): Renamed to
21110         mono_class_inflate_generic_signature() and made it public.
21111         (my_mono_class_from_generic_parameter): New static function; if we
21112         don't already have the generic parameter's MonoClass, create a
21113         very simple one which is just used internally in the runtime and
21114         not passed back to managed code.
21115
21116         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
21117
21118         * metadata.h (MonoMethodSignature): Moved the
21119         `MonoGenericParam *gen_params' to the MonoMethodHeader.
21120         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
21121
21122         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
21123         ves_icall_MonoMethod_GetGenericArguments(); this is now an
21124         interncall on the MonoMethod class, not on MethodInfo.
21125         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
21126         calling mono_reflection_bind_generic_method_parameters() directly.
21127
21128         * loader.c (mono_method_get_signature): If this is a MethodSpec;
21129         return the already computed `method->signature'.
21130         (method_from_methodspec): New static function to load a method
21131         from a MethodSpec entry.
21132         (mono_get_method_from_token): Call the new method_from_methodspec()
21133         for MethodSpec tokens.  
21134         (mono_get_method_from_token): If we're a generic method, load the
21135         type parameters.
21136
21137         * reflection.c (mono_image_get_memberref_token): Allow
21138         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
21139         table.
21140         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
21141         (mono_image_create_token): First check whether it's a generic
21142         method (so we'd need to create a MethodSpec), then do the other
21143         two alternatives.
21144         (mono_reflection_bind_generic_method_parameters): Return a
21145         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
21146         called directly from the interncall.
21147
21148 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
21149
21150         * reflection.c (load_public_key): Move loading of the public key
21151         into managed code.
21152
21153         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
21154
21155         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
21156         fields.
21157
21158         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
21159         culture, hash_alg and public_key. Fixes #49555.
21160
21161 2003-10-17  Martin Baulig  <martin@ximian.com>
21162
21163         * class.h (MonoGenericInst): Moved this declaration here and added
21164         `MonoMethod *generic_method'.
21165
21166         * icall.c
21167         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
21168         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
21169
21170         * metadata.c (mono_metadata_type_equal): Two types of
21171         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
21172         index; ie. don't compare the address of the `MonoGenericParam'
21173         structure.
21174         (mono_metadata_load_generic_params): Removed the `MonoMethod
21175         *method' argument.
21176
21177         * metadata.h (MonoGenericInst): Moved declaration to class.h.
21178         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
21179
21180         * reflection.c (method_encode_signature): Encode the number of
21181         generic parameters.
21182         (encode_generic_method_sig): New static function.
21183         (method_encode_methodspec): New static function; creates an entry
21184         in the MethodSpec table for a generic method.
21185         (mono_image_get_methodspec_token): New static function.
21186         (mono_image_create_token): Call mono_image_get_methodspec_token()
21187         for generic methods.
21188         (mono_reflection_bind_generic_method_parameters): New public
21189         function.  Instantiates a generic method.
21190
21191 2003-10-16  Martin Baulig  <martin@ximian.com>
21192
21193         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
21194         *gen_params' here from MonoMethodHeader.
21195
21196         * metadata.c (mono_metadata_parse_method_signature): If we have
21197         generic parameters, initialize `method->gen_params' and then set
21198         the correct `type->data.generic_param' in all the parameters.
21199
21200 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
21201
21202         * threads.c (mono_threads_get_default_stacksize): New function to 
21203         return the default stacksize.
21204
21205         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
21206         termination of the finalizer thread, since the previous method had
21207         race conditions. Fixes #49628.
21208
21209         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
21210         as for the other managed threads.
21211
21212 2003-10-16  Martin Baulig  <martin@ximian.com>
21213
21214         * class.c (inflate_generic_signature): Copy `generic_param_count'
21215         and `gen_params'.
21216
21217         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
21218         New interncall.
21219
21220         * metadata.c (mono_metadata_parse_method_signature): Actually set
21221         the `method->generic_param_count' here.
21222         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
21223
21224 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
21225
21226         * object.h: Add a new field to TypedRef to simplify the implementation
21227         of the REFANY opcodes in the JIT.
21228
21229         * icall.c: Make use of the new field.
21230
21231         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
21232         dynamically.
21233
21234 2003-10-15  Martin Baulig  <martin@ximian.com>
21235
21236         * class.c (mono_class_from_gen_param): Renamed to
21237         mono_class_from_generic_parameter() and moved most of the
21238         functionality from mono_reflection_define_generic_parameter()
21239         here; ie. we create a "real" class here.
21240         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
21241         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
21242         previously been called.
21243
21244         * class.h (MonoGenericParam): Moved the declaration of this struct
21245         here from metadata.h and added `MonoMethod *method'.
21246
21247         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
21248         interncall.
21249
21250         * loader.c (mono_get_method_from_token): If we have any generic
21251         parameters, call mono_metadata_load_generic_params() to read them
21252         from the MONO_TABLE_GENERICPAR.
21253
21254         * metadata.c (mono_metadata_load_generic_params): Added
21255         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
21256
21257         * metadata.h (MonoMethodSignature): Replaced
21258         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
21259         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
21260
21261         * reflection.c (mono_reflection_define_generic_parameter): Moved
21262         most of the functionality into the new
21263         mono_class_from_generic_parameter(); set the `method' field if
21264         we're a method parameter.       
21265
21266 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
21267
21268         * marshal.c (emit_struct_conv): if native size is 0
21269         emit no code.
21270
21271 2003-10-14  Martin Baulig  <martin@ximian.com>
21272
21273         * icall.c: The generics API has changed in the spec since it was
21274         added to System.Type; these modifications make it match the spec
21275         again.
21276         (ves_icall_Type_GetGenericParameters): Renamed to
21277         `ves_icall_Type_GetGenericArguments'.
21278         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
21279         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
21280         `ves_icall_MonoType_get_HasGenericArguments'.
21281         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
21282         `ves_icall_MonoType_get_IsGenericParameter'.
21283         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
21284         this is no interncall anymore.
21285         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
21286         `ves_icall_TypeBuilder_get_IsGenericParameter'.
21287
21288 2003-10-14  Martin Baulig  <martin@ximian.com>
21289
21290         * reflection.c (mono_reflection_bind_generic_parameters): Also
21291         inflate generic methods if we're reading the class from IL.
21292
21293 2003-10-13  Martin Baulig  <martin@ximian.com>
21294
21295         * reflection.c (mono_reflection_define_generic_parameter): This
21296         method isn't called directly from the icall anymore; take a
21297         `MonoReflectionAssemblyBuilder *' so we can use this for type and
21298         method generic parameters.
21299         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
21300         (method_builder_encode_signature): Encode generic parameters.
21301         (mono_image_get_method_info): Write generic params to the
21302         MONO_TABLE_GENERICPARAM table.
21303
21304         * reflection.h (MonoReflectionMethodBuilder): Added
21305         `MonoArray *generic_params'.
21306
21307         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
21308
21309         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
21310         wrapper for mono_reflection_define_generic_parameter().
21311         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
21312
21313 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
21314
21315         * marshal.h: Add missing function to fix build.
21316
21317         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
21318         the SetLastError pinvoke attribute.
21319
21320         * marshal.c (mono_marshal_set_last_error): New helper function called
21321         by the generated code.
21322         
21323         * marshal.c (mono_mb_emit_branch): New helper function.
21324
21325         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
21326
21327         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21328         classes as parameters and return values of delegates. Fixes #29256. 
21329
21330 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
21331
21332         * locales.c: use gint32 in non HAVE_ICU case
21333
21334 2003-10-11  Martin Baulig  <martin@ximian.com>
21335
21336         * mono-debug.c (mono_debug_add_method): Added a workaround for
21337         bug #48591.
21338
21339 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
21340
21341         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
21342         delegates passed to native code must use the STDCALL calling 
21343         convention. Fixes #35987.
21344
21345 2003-10-10  Martin Baulig  <martin@ximian.com>
21346
21347         * class.c (inflate_generic_type): If we're inflating for a generic
21348         type instance (and not for a generic method), return
21349         MONO_TYPE_MVAR unchanged.
21350
21351 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21352
21353         * string-icalls.c: Join ignores null strings in the source array.
21354         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
21355         * threads.c: GetAvailableTheads is slightly more accurate.
21356
21357 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
21358
21359         * threads.h threads.c : add mono_threads_set_default_stacksize
21360         and pass default to CreateThread calls.
21361
21362 2003-10-09  Dick Porter  <dick@ximian.com>
21363
21364         * icall.c:
21365         * locales.h:
21366         * locales.c: Internal calls for constructing CultureInfo and
21367         related objects from libicu (if its available.)
21368
21369 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
21370
21371         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
21372
21373 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21374
21375         * threadpool.c: added an argument to async_invoke_thread that is the
21376         item to process, pass the MonoAsyncResult to the thread start function
21377         when creating a new thread. This way we don't need to acquire any lock
21378         when we're creating a new thread. Readded a semaphore for faster
21379         response times (instead of that Sleep i added).
21380
21381 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
21382
21383         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21384         get daylight change dates better on Windows, fix handling
21385         of platforms without tm_gmtoff.
21386
21387 2003-10-06  Martin Baulig  <martin@ximian.com>
21388
21389         * class.c (inflate_generic_method): Renamed to
21390         mono_class_inflate_generic_method() and made public.
21391         (mono_class_init): Don't inflate the generic methods here.
21392         (mono_class_from_generic): Added `gboolean inflate_methods'
21393         argument.  Inflate the methods here.
21394
21395         * loader.c (mono_method_get_param_names): Ignore instances of
21396         generic types for the moment.
21397
21398         * reflection.c (fixup_method): Added support for inflated methods.
21399         (mono_image_create_token): Use mono_image_get_methodref_token()
21400         for inflated methods.
21401         (mono_custom_attrs_from_param): Ignore instances of generic types
21402         for the moment.
21403         (mono_reflection_bind_generic_parameters): New public function.
21404         Moved all the functionality from
21405         ves_icall_Type_BindGenericParameters() here and added support for
21406         dynamic types.
21407         (mono_reflection_define_generic_parameter): Initialize
21408         `klass->methods' here.
21409
21410         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
21411         functionality into mono_reflection_define_generic_parameter().
21412         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
21413         TypeBuilder, return that TypeBuilder.
21414
21415 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21416
21417         * appdomain.c: removed mono_delegate_semaphore.
21418
21419         * threadpool.c:
21420         (mono_thread_pool_add): moved hash table creation inside and the thread 
21421         creation outside of the critical region.
21422         (mono_thread_pool_finish): removed obsolete code.
21423         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
21424         continue or exit the thread depending on the queue.
21425
21426 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
21427
21428         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
21429         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
21430         handle more bool marshalling options
21431
21432 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
21433
21434         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
21435         arrays of structs. Also add a more descriptive error message when
21436         a structure member is marshalled as LPArray.
21437
21438 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
21439
21440         * marshal.c (mono_marshal_get_native_wrapper): Add support for
21441         marshalling arrays of complex types. Fixes #29098. Also remove an
21442         usused and incomplete function.
21443
21444 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
21445
21446         * gc.c: report heap_size - free_bytes as total memory allocated
21447         (bug#49362).
21448
21449 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
21450
21451         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
21452         fix timezone handling problems on Windows.
21453         
21454         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
21455         asserts when the year is outside the range handled by ms the functions.
21456
21457         * class.c (setup_interface_offsets): If the class is an interface,
21458         fill out its interface_offsets slot.
21459
21460 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21461
21462         * threadpool.c: mark threadpool threads as background.
21463
21464 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
21465
21466         * decimal.c - define DECINLINE to nothing if not using GCC
21467
21468 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
21469
21470         * assembly.c: More refcount fixes.
21471
21472 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21473
21474         * string-icalls.c: if we're not trimming, return the same string.
21475         When not splitting, don't create a new string.
21476
21477 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21478
21479         * image.c:
21480         (mono_image_open): increment the ref_count inside the critical section.
21481
21482 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
21483
21484         * image.c (mono_image_open): Fix reference counting bug.
21485
21486 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
21487
21488         * marshal.c (mono_marshal_type_size) struct alignment changed for 
21489         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
21490         64bits. Avoid leak in mono_marshal_get_native_wrapper when
21491         mono_lookup_pinvoke_call throws.        
21492
21493 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
21494
21495         * reflection.c (mono_reflection_parse_type): Fix #49114.
21496
21497         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
21498         temporary workaround for cygwin header problem.
21499
21500         * object.c (mono_object_isinst): Synchronize this with the code
21501         generated by the JIT for casts.
21502
21503 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
21504
21505         * reflection.c (encode_type): Fix #38332.
21506
21507 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
21508
21509         * marshal.c (mono_marshal_method_from_wrapper): New function to return
21510         the original method from the wrapper method.
21511
21512 2003-09-25  Martin Baulig  <martin@ximian.com>
21513
21514         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
21515         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
21516         (ves_icall_Type_get_IsGenericInstance): New interncall.
21517
21518 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
21519
21520         * object.c: fix cast warning in big endian code.
21521
21522 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
21523
21524         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
21525         
21526 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21527
21528         * assembly.c: don't call check_env from mono_assembly_load. It's
21529         already done once in mono_assemblies_init and may cause headaches when
21530         multiple threads are loading assemblies.
21531
21532 2003-09-19  Martin Baulig  <martin@ximian.com>
21533
21534         * reflection.c (mono_reflection_define_generic_parameter): Don't
21535         allocate `klass->methods', set `klass->flags' to
21536         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
21537
21538 2003-09-18  Martin Baulig  <martin@ximian.com>
21539
21540         * class.c (mono_class_init): Don't create `class->methods' if it's
21541         already initialized.
21542
21543         * metadata.c (mono_metadata_load_generic_params): Make this
21544         actually work.
21545
21546         * reflection.c (mono_reflection_define_generic_parameter): Set
21547         parent class and interfaces from the constraints.
21548
21549         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
21550         to keep this struct in sync with the declaration in TypeBuilder.cs.
21551
21552 2003-09-17  Martin Baulig  <martin@ximian.com>
21553
21554         * metadata.h (MonoType): Replaced the data's `int type_param'
21555         field with `MonoGenericParam *generic_param'.
21556         (MonoGenericParam): Added `MonoClass *klass'.
21557
21558         * class.c (mono_class_from_gen_param): Removed the
21559         `MonoImage *image' and `int type_num' arguments.
21560
21561         * metadata.c (mono_metadata_parse_generic_param): New static
21562         method; creates a MonoGenericParam which just contains the index.
21563         (do_mono_metadata_parse_type): Call
21564         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
21565         MONO_TYPE_MVAR.
21566
21567         * reflection.c (mono_image_typedef_or_ref): Generic type
21568         parameters may be in the same assembly, but never use a typedef
21569         for them.
21570         (mono_reflection_define_generic_parameter): We're now creating a
21571         "real" class for the type parameter; it's now safe to call
21572         mono_class_from_mono_type() on the class'es type, it'll do the
21573         right thing.
21574
21575 2003-09-16  Martin Baulig  <martin@ximian.com>
21576
21577         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
21578         `symfile->range_entry_size' and `symfile->class_entry_size' here;
21579         the `symfile' data structure must be fully initialized before it
21580         gets added to the table.
21581
21582 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
21583
21584         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
21585
21586         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
21587         class init trampolines.
21588
21589 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
21590
21591         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
21592         to the built-in profiler to turn off time and allocation profiling
21593         respectively.
21594
21595 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
21596
21597         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
21598         g_direct_equal.
21599
21600         * debug-helpers.c (mono_method_full_name): Print the wrapper type
21601         in human readable form.
21602
21603 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
21604
21605         * reflection.c icall.c: Fixed warnings.
21606
21607         * image.c (load_class_names): Use a temporary hash table to hold the
21608         namespaces in order to avoid doing many string comparisons.
21609
21610         * image.h: Fix typo.
21611
21612         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
21613         Pass NULL instead of g_direct_equal to the GHashTable constructor 
21614         since the NULL case is short-circuited inside g_hash_table_lookup, 
21615         leading to better performance.  
21616
21617         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
21618         obtain the first custom attribute for a given index. Depends on the
21619         CustomAttribute table being sorted by the parent field.
21620
21621         * reflection.c (mono_custom_attrs_from_index): Use the new function 
21622         for better performance.
21623
21624 2003-09-07  Martin Baulig  <martin@ximian.com>
21625
21626         * class.c (mono_class_init): If we're a generic instance, inflate
21627         all our methods instead of loading them from the image.
21628         (mono_class_from_generic): Set `class->methods = gklass->methods'.
21629
21630 2003-09-07  Martin Baulig  <martin@ximian.com>
21631
21632         * mono-debug-debugger.c: Added support for constructors.
21633
21634 2003-09-06  Martin Baulig  <martin@ximian.com>
21635
21636         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
21637         New interncall.
21638
21639         * reflection.c (mono_reflection_setup_generic_class): Call
21640         ensure_runtime_vtable() to create the vtable.
21641
21642 2003-09-05  Martin Baulig  <martin@ximian.com>
21643
21644         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
21645         MONO_TYPE_MVAR.
21646
21647 2003-09-04  Martin Baulig  <martin@ximian.com>
21648
21649         * reflection.c (mono_reflection_define_generic_parameter): Generic
21650         parameters start with zero.
21651
21652 2003-09-04  Martin Baulig  <martin@ximian.com>
21653
21654         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21655
21656         * reflection.h (MonoReflectionGenericParam): New typedef.
21657         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
21658         the generic parameters from the managed TypeBuilder.
21659
21660         * reflection.c (mono_reflection_define_generic_parameter): New function.
21661         (mono_reflection_create_runtime_class): Encode generic parameters.
21662         (mono_reflection_setup_generic_class): New function; this is
21663         called after adding adding all generic params to the TypeBuilder.
21664         (encode_type): Added MONO_TYPE_VAR.
21665
21666 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
21667
21668         * class.h class.c (mono_class_needs_cctor_run): Moved this method
21669         here from the JIT.
21670
21671         * assembly.h assembly.c: Moved the AOT loading code into an assembly
21672         load hook.
21673
21674 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
21675
21676         * reflection.h reflection.c class.h class.c: Delete duplicate 
21677         definition of mono_type_get_name () from reflection.c and export the
21678         one in class.c.
21679
21680         * class.c: Class loading fixes from Bernie Solomon 
21681         (bernard@ugsolutions.com).
21682
21683         * reflection.c: Endianness fixes from Bernie Solomon 
21684         (bernard@ugsolutions.com).
21685         
21686 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
21687
21688         * assembly.h assembly.c: Define a file format version for AOT
21689         libraries.
21690         
21691         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
21692
21693         * appdomain.h (MonoJitInfo): New field to determine whenever the
21694         code is domain neutral.
21695         
21696 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
21697
21698         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
21699
21700 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
21701
21702         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
21703         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
21704         Avoid caching the result since strings must be domain specific. Fixes
21705         #48050.
21706
21707 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
21708
21709         * marshal.c (mono_marshal_init): Make this callable multiple times
21710         since it is hard to find a correct place to call it.
21711
21712         * object.c (mono_runtime_class_init): Execute static constructors in
21713         the correct appdomain.
21714
21715         * image.c (build_guid_table): Handle the case when multiple images have
21716         the same GUID.
21717
21718 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21719
21720         * icall.c: added a couple of icalls for System.Web.
21721
21722 2003-08-28  Martin Baulig  <martin@ximian.com>
21723
21724         * icall.c (ves_icall_Type_BindGenericParameters): Use
21725         `klass->generic_inst' instead of `&klass->byval_arg' in the
21726         mono_type_get_object() call.  The returned type must be
21727         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
21728
21729 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
21730
21731         * NOTES: New file.
21732
21733         * object.c (mono_class_proxy_vtable): Make it thread safe.
21734
21735         * pedump.c: Fix warning.
21736
21737         * object.c appdomain.h: Get rid of metadata_section. 
21738         It is no longer needed and it was causing deadlocks with domain->lock.
21739
21740         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
21741
21742 2003-08-26  Martin Baulig  <martin@ximian.com>
21743
21744         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
21745
21746 2003-08-26  Martin Baulig  <martin@ximian.com>
21747
21748         * pedump.c (main): Call mono_metadata_init(),
21749         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
21750         and mono_loader_init().
21751
21752 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
21753
21754         * loader.h: Add missing include to fix build.
21755
21756         * image.h: mono_image_load_references is no more.
21757
21758         * assembly.c: Reworked assembly loading to make it really thread safe.
21759         After these changes, the assembly returned by mono_assembly_open is
21760         fully initialized, i.e. all its references assemblies are loaded.
21761
21762         * assembly.c (mono_image_load_references): Renamed to 
21763         mono_assembly_load_references, and made private, since clients no
21764         longer need to call it.
21765
21766         * class.c: Removed calls to mono_assembly_load_references, since it was
21767         a source of deadlocks.
21768
21769         * loader.h loader.c class.h class.c: Protect data structures using a 
21770         new lock, the loader lock.
21771
21772         * class.c (mono_class_setup_vtable): Create temporary hash tables and
21773         GPtrArrays only when needed.
21774
21775         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
21776         into empty structures by mcs. Fixes pinvoke7.cs.
21777         
21778         * domain.c (mono_init): Call a new initialization function.
21779
21780         * appdomain.c (mono_runtime_init): Call the new initializer function
21781         of the marshal module.
21782
21783         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
21784         inserted into empty structures by mcs. Fixes pinvoke7.cs.
21785
21786         * marshal.h marshal.c: Added locks around the wrapper caches to make
21787         this module thread safe.
21788
21789         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
21790         this argument. Fixes pinvoke1.exe.
21791
21792 2003-08-25  Lluis Sanchez <lluis@ximian.com>
21793
21794         * object.h: Added call_type field to MonoMethodMessage and the corresponding
21795         enumeration of values. Removed fields to store remote call output values in
21796         MonoAsyncResult. Not needed any more.
21797         * object.c: Initialize call_type and async_result fields in mono_message_init.
21798         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
21799         dispatching the message.
21800         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
21801         async call to finish. To do it use a message with EndInvoke call type.
21802
21803 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
21804
21805         * loader.h loader.c (mono_method_hash_marhal_info): New function which
21806         determines whenever a method has marshalling info.
21807
21808 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21809
21810         * assembly.c: fix the build on windows.
21811
21812 2003-08-22 Lluis Sanchez <lluis@ximian.com>
21813
21814         * object.cs: Fixed bug #47785.
21815
21816 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
21817
21818         * string-icalls.c (StringReplace): If their are no occurances of
21819         the old string found return a reference to the supplied
21820         string. This saves some memory and matches MS behavoir.
21821         
21822 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21823
21824         * socket-io.c: fixed compilation for systems that define AF_INET6
21825         and don't define SOL_IP/SOL_IPV6.
21826
21827 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
21828
21829         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
21830         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
21831
21832         * rawbuffer.c rawbuffer.h: Make this module thread safe.
21833
21834         * domain.c: Make this module thread safe.
21835
21836         * domain.c (mono_init): Call new initialization function.
21837
21838         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
21839         reference types too. Fixes #38812.
21840
21841         * image.c (mono_image_init): Fixed warnings.
21842
21843         * class.c (mono_class_from_typeref): Handle assembly load failure
21844         correctly.
21845
21846         * appdomain.c (add_assemblies_to_domain): Handle the case when
21847         the references of an assembly are not yet loaded.
21848
21849         * metadata.c image.c assembly.c: Moved initialization of global
21850         variables to a separate function called at startup since lazy 
21851         initialization of these variables is not thread safe.
21852         
21853         * image.c assembly.c: Made this module thread safe by adding locks in 
21854         the appropriate places.
21855
21856         * domain.c (mono_init): Call the new initialization functions of the
21857         three modules.
21858
21859 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
21860
21861         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
21862           make a direct call. It is proxy's work to make the call asynchronous.
21863           mono_delegate_end_invoke(): If the targe is a proxy, just collect
21864           the return values.
21865         * object.cs: mono_method_call_message_new(): read AsyncResult and
21866           state object from parameters list, if this info is requested.
21867         * object.h: Added fields to store remote call output values in
21868           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
21869
21870 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21871
21872         * object.h: add needed fields to MonoThread.
21873         * threads.c, threads.h: allow registering a function to cleanup data
21874         allocated per thread by the JIT.
21875
21876 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21877
21878         * loader.h: portability fix by Bernie Solomon
21879         * <bernard@ugsolutions.com>.
21880
21881 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
21882
21883         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
21884         return a MonoArray. This simplifies the code and also ensures that
21885         the cache allways contains an object reference as a value.
21886
21887         * icall.c (ves_icall_get_parameter_info): Simplified using the new
21888         function.
21889
21890 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21891
21892         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
21893         fixes a problem with byte ordering when getting the address family for
21894         a socket.
21895
21896 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
21897
21898         * .cvsignore: Added monosn.
21899
21900         * reflection.h reflection.c loader.c: Added support for parameter
21901         marshalling to dynamically created types. Fixes #47295.
21902
21903 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
21904
21905         * rand.c: remove useless warnings.
21906
21907 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
21908
21909         * class.c: implemented ldtoken for methods and fieldrefs.
21910
21911 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21912
21913         * threadpool.c: when mono_async_invoke was called, no one took care of
21914         monitoring the queue. So if the method invoked took some time and we
21915         got new async invoke requests after 500 ms (the thread created waited
21916         that long in WaitForSingleObject), the new async invoke was not called
21917         until the previous one finished.
21918
21919         This is fixed now. Thanks to Totte for helping with it.
21920
21921 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21922
21923         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
21924
21925 2003-08-11  Martin Baulig  <martin@ximian.com>
21926
21927         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
21928
21929 2003-08-06  Martin Baulig  <martin@ximian.com>
21930
21931         * mono-debug-debugger.c: Added support for static fields,
21932         properties and methods.
21933
21934 2003-08-06  Martin Baulig  <martin@ximian.com>
21935
21936         * mono-debug-debugger.c: Don't store the MonoString's vtable to
21937         make this work for applications with multiple application domains.
21938
21939 2003-08-04  Martin Baulig  <martin@ximian.com>
21940
21941         * mono-debug-debugger.c: Completely reworked the type support; the
21942         most important thing is that we're now just using one single
21943         `MonoType' instance per type.
21944
21945 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
21946
21947         * mono-endian.h, mono-endian.c, icall.c: Added icall
21948         ves_icall_System_Double_AssertEndianity to assert double word endianity
21949         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
21950
21951 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
21952
21953         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
21954         support, icalls and fixes.
21955
21956 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
21957
21958         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
21959         classes that are a punctuation character in .NET is not the same a
21960         g_unichar_ispunct.
21961
21962 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21963
21964         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
21965
21966 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
21967
21968         * icall.c: Add new MemCopy internalcall.
21969         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
21970         Simplified code; It is not necessary to handle all the cases here,
21971         as the C# code takes care of it.  Only handle the case of the name
21972         resource embedded into the assembly.
21973
21974         Changed signature to return the data pointer and the size of the
21975         data. 
21976
21977 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
21978
21979         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
21980         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
21981
21982 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
21983
21984         * socket-io.c: ignore EINTR error in select.
21985
21986 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
21987
21988         * class.h, class.c: removed unused subclasses field in MonoClass.
21989
21990 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
21991
21992         * icall.c: improve fix of get_base_definition(). If the parent class
21993           doesn't have the mehod, look at the parent of the parent.
21994         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
21995           to check if a parameter is an in or out parameter
21996           (PARAM_ATTRIBUTE_IN is not set by default).
21997           mono_method_return_message_restore(): Use mono_class_value_size to
21998           get the size of a value type. mono_type_stack_size (parameterType)
21999           does not return the correct value if parameterType is byRef.
22000           mono_load_remote_field(), mono_load_remote_field_new(),
22001           mono_store_remote_field(), mono_store_remote_field_new():
22002           raise exception if the remote call returns an exception.
22003
22004 2003-07-28  Martin Baulig  <martin@ximian.com>
22005
22006         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
22007         method.  This is a wrapper around mono_runtime_invoke() which
22008         boxes the instance object if neccessary.
22009
22010 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22011
22012         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
22013         metadata.h, row-indexes.h, verify.c: first cut of generics support.
22014
22015 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22016
22017         * icall.c: disable mcs bug workaround.
22018
22019 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
22020
22021         * object.c (mono_runtime_class_init): Take the metadata_section
22022         mutex before obtaining the domain mutex.
22023
22024         * appdomain.h: Added definition of metadata_section mutex here. 
22025
22026         * object.c: define metadata_mutex here.
22027
22028 2003-07-24  Ravi Pratap  <ravi@ximian.com>
22029
22030         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
22031         fixed.
22032
22033 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
22034
22035         * reflection.c: Fix bug #46669
22036
22037 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22038
22039         * exception.c:
22040         * exception.h:
22041         * icall.c:
22042         * object.h: fill in the type name for TypeLoadException.
22043
22044 2003-07-23  Ravi Pratap  <ravi@ximian.com>
22045
22046         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
22047         relationship between TypeBuilders while compiling corlib) and bug
22048         45993 (Array types returned from the runtime while compiling
22049         corlib were from the loaded corlib).
22050
22051 2003-07-22  Martin Baulig  <martin@ximian.com>
22052
22053         * mono-debug-debugger.c: Reworked the type support a bit more;
22054         distinguish between types and classes.
22055
22056 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
22057
22058         * icall.c: add IsArrayImpl icall.
22059
22060 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
22061
22062         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
22063         initializing real_size only once. Also fix bug #46602.
22064
22065 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
22066
22067         * object.c: Renamed mono_metadata_section to metadata_section.
22068
22069 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
22070
22071         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
22072           empty array if the type is an array. Fixed.
22073           ves_icall_MonoMethod_get_base_definition: if the base method
22074           is abstract, get the MethodInfo from the list of methods of
22075           the class.
22076         * reflection.c: ParameterInfo.PositionImpl should be zero-based
22077           and it was 1-based. Fixed in mono_param_get_objects.
22078
22079 2003-07-20  Martin Baulig  <martin@ximian.com>
22080
22081         * mono-debug.h: Set version number to 31.
22082         (mono_debug_init): Added `MonoDomain *' argument.
22083
22084         * mono-debug-debugger.c: Reworked the type support; explicitly
22085         tell the debugger about builtin types; pass the `klass' address to
22086         the debugger.
22087
22088 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
22089
22090         * image.c: Allow new metadata tables to be loaded without a
22091         warning. Also update the warning message to give the new constant value.
22092                 
22093 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
22094
22095         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
22096         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
22097         array type representation changes.
22098
22099 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22100
22101         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
22102         on Environment.Exit () call.
22103
22104 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
22105
22106         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
22107         requires a matching corlib.
22108
22109 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22110
22111         * Changelog: My editor decided to add a CR to each line. Sorry about that.
22112           Committed again without the CRs.
22113         
22114 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22115
22116         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
22117           getting it from the "this" socket instance. Did not work
22118           if the socket is a subclass of Socket.
22119           Also fixed bug #35371.
22120
22121 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22122
22123         * metadata.c: fixed size for TypedByRef.
22124         * loader.c: when searching for a method, consider the vararg amrker.
22125         * unicode.c, decimal.c: constify some arrays.
22126
22127 2003-07-15  Dick Porter  <dick@ximian.com>
22128
22129         * socket-io.c: Fixed compilation for gcc < 3.2.
22130
22131         Fixed compilation for machines that don't have AF_INET6 (thanks to
22132         Bernie Solomon <bernard@ugsolutions.com> for that part.)
22133
22134         Fixed compile warnings.
22135         
22136         Fixed formatting and line endings.
22137
22138 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
22139
22140         * socket-io.h:
22141         * socket-io.c: Added IPv6 support.
22142
22143 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
22144
22145         * class.c (mono_class_is_assignable_from): New function to implement
22146         the is_assignable_from logic. Used by mono_object_isinst, 
22147         Type::IsAssignableFrom () and the interpreter.
22148
22149         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
22150         Object, even interfaces.
22151         
22152         * object.c (mono_object_isinst): Implement in terms of 
22153         is_assignable_from.
22154
22155         * icall.c (ves_icall_type_is_assignable_from): New icall.
22156
22157 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
22158
22159         * domain.c (foreach_domain): fix compiler warning.
22160
22161 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
22162
22163         * image.c (load_metadata_ptrs): use g_strndup because strndup is
22164         not available on all plattforms
22165
22166 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
22167
22168         * image.h image.c: Store the metadata version string in MonoImage.
22169         * icall.c: New icall to retrieve the image version.
22170         * reflection.c (create_dynamic_image): Fill in the image version field
22171         * reflection.c (build_compressed_metadata): Use the image version
22172         from the image structure.
22173
22174 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22175
22176         * appdomain.c: modified comment.
22177         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
22178         That will be its last iteration when mono_gc_cleanup is called from
22179         mono_runtime_cleanup and before the domain is unloaded.
22180
22181         Fixes bug #45962.
22182
22183 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
22184
22185         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
22186         attributes.
22187
22188 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22189
22190         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
22191         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
22192         Bernie Solomon <bernard@ugsolutions.com>.
22193
22194 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22195
22196         * object.c, object.h: provide mono_object_new_fast() for faster
22197         allocation in some special cases.
22198
22199 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
22200
22201         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
22202         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
22203
22204 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
22205
22206         * threadpool.c: fix leaks.
22207
22208 2003-07-01  Dick Porter  <dick@ximian.com>
22209
22210         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
22211         using MonoGHashTables.  Fixes threadpool bug posted to list.
22212
22213 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22214
22215         * image.h, image.c: added support to load an assembly from a byte array.
22216         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
22217         assembly bundle support.
22218
22219 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
22220
22221         * threadpool.c (mono_thread_pool_add): keep a reference to the
22222         AsyncResult to prevent GC
22223
22224 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22225
22226         * class.c: leak fix.
22227
22228 2003-06-25  Dick Porter  <dick@ximian.com>
22229
22230         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
22231         for the async object, the WaitHandle object will close the handle.
22232         Fixes bug 45321.
22233
22234 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22235
22236         * class.c: in mono_array_class_get (), lookup from the hash with the
22237         same type we insert: this works around a bug in
22238         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
22239         lluis. The real fix will have to wait for after the release.
22240
22241 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22242
22243         * icall.c: fix memory leak when getting type members.
22244
22245 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22246
22247         * reflection.c: added more pubtoken special cases.
22248
22249 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
22250
22251         * class.c: handle field offset correctly when class size
22252         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
22253
22254 2003-06-20  Martin Baulig  <martin@ximian.com>
22255
22256         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
22257         *image' field.
22258
22259 2003-06-20  Martin Baulig  <martin@ximian.com>
22260
22261         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
22262
22263 2003-06-20  Martin Baulig  <martin@ximian.com>
22264
22265         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
22266         just distinguish between variables in registers and variables at
22267         an offset relative to a register.
22268
22269 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22270
22271         * icall.c: #ifdef out latest changes until mcs is fixed.
22272
22273 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22274
22275         * icall.c: return members in metadata order.
22276
22277 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22278
22279         * icall.c: avoid infinite loop in GetTimeZoneData.
22280
22281 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
22282
22283         * icall.c: added Marshal.Prelink/All icalls.
22284
22285 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22286
22287         * object.c, object.h: fix warnings and do some overflow checking
22288         when creating arrays.
22289
22290 2003-06-17  Dick Porter  <dick@ximian.com>
22291
22292         * file-io.h:
22293         * file-io.c: File attributes need to be tweaked slightly when
22294         passed from the managed to the w32 world.
22295
22296 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22297         * profiler.h profiler-private.h profiler.c: Rework last patch
22298         based on suggestion by Paolo.
22299         
22300 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22301
22302         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
22303         instruction level coverage data collection.
22304         * profiler.h profiler.c (: Added new callback function which can be
22305         used by the profiler to limit which functions should have coverage
22306         instrumentation.
22307         * profiler.c (mono_profiler_load): Call g_module_build_path to
22308         generate the file name of the profiler library.
22309
22310 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22311
22312         * profiler.c, profiler.h, profiler-private.h: added basic block 
22313         coverage profiling API.
22314
22315 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
22316
22317         * reflection.c (mono_reflection_create_runtime_class): Add support
22318         for events in dynamically generated code.
22319
22320         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
22321         not allocated.
22322
22323 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22324
22325         * icall.c: when getting timezone info, return reasonable values if we
22326         can't get the actual data.
22327
22328 2003-06-14  Dick Porter  <dick@ximian.com>
22329
22330         * threads.c (start_wrapper): Remove the reference to the thread
22331         object in the TLS data, so the thread object can be finalized.
22332         This won't be reached if the thread threw an uncaught exception,
22333         so those thread handles will stay referenced :-( (This is due to
22334         missing support for scanning thread-specific data in the Boehm GC
22335         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
22336
22337 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
22338
22339         * reflection.c: ensure streams and tables are first allocated with
22340         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
22341
22342 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22343
22344         * icall.c: fixed GetElementType for byrefs (bug# 44792).
22345
22346 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
22347
22348         * reflection.c (mono_reflection_create_runtime_class): Add support for
22349         properties to dynamically created classes.
22350         * reflection.c: Fix a few places where non-MonoObjects were inserted
22351         into the tokens hashtable.
22352
22353 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22354
22355         * object.c: some support to handle out of memory exceptions.
22356
22357 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
22358
22359         * marshal.c (mono_marshal_get_native_wrapper): support reference
22360         return types
22361
22362 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22363
22364         * object.h, object.c: more portability stuff from Bernie Solomon.
22365         Unexport mono_object_allocate(). Added mono_object_unbox ().
22366         Set exitcode when an unhandled exception is thrown.
22367
22368 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
22369
22370         * marshal.c (mono_marshal_get_native_wrapper): use custom
22371         marshaler for return types.
22372
22373 2003-06-10  Dick Porter  <dick@ximian.com>
22374
22375         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
22376         ip_mreq is available
22377
22378 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
22379
22380         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
22381         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
22382         by Bernie Solomon <bernard@ugsolutions.com>.
22383
22384 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
22385
22386         * gc.c (mono_gc_init): Avoid error message on shutdown when
22387         GC_DONT_GC=1 is used.
22388
22389         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
22390         New icall to return the GUID of a module.
22391
22392 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22393
22394         * class.c: ensure instance size always includes the parent's size
22395         even whem class size is set explicitly (fixes bug#44294).
22396
22397 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22398
22399         * profiler.h, profiler.c: made the simple profiler thread-safe,
22400         get more accurate timing info. Allow the loading of an
22401         externally-developed profiler module.
22402
22403 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
22404
22405         * marshal.c (mono_marshal_get_native_wrapper): improved
22406         class/byref arguments.
22407         (mono_marshal_get_native_wrapper): better string marshaling support.
22408
22409 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
22410
22411         * class.c: ensure .pack and .size are handled correctly and
22412         simplified layout of static fields.
22413
22414 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
22415
22416         * appdomain.c
22417         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
22418
22419         * loader.c (mono_lookup_pinvoke_call): look for modules in the
22420         current directory (fix bug 44008)
22421
22422 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
22423
22424         * marshal.c (mono_marshal_get_native_wrapper): started support for
22425         custom marshalers.
22426         (mono_delegate_to_ftnptr): consider marshalling specifications
22427
22428 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
22429
22430         * reflection.c, reflection.h: emit custom marshal info.
22431
22432 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22433
22434         * object.c: free the GError.
22435         * icall.c: added CloseEvent_internal.
22436         * threads.[ch]:
22437         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
22438         call.
22439
22440 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
22441
22442         * loader.c (mono_method_get_signature): Add support for dynamic
22443         assemblies.
22444
22445 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
22446
22447         * reflection.c: fixed bug #43905.
22448
22449 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22450
22451         * class.c, domain.c, icall.c, metadata.h, object.h: support for
22452         handling TypedReference and ArgIterator.
22453         * loader.c, loader.h: added function to get signature at call site.
22454
22455 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22456
22457         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
22458         data readonly. Buglets and warning fixes. Some MethodSpec support.
22459
22460 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22461
22462         * class.h, class.c, object.c: remove relative numbering support.
22463
22464 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
22465
22466         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
22467         free the string, until we get a chance to fix Gtk#
22468
22469 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22470
22471         * marshal.c: revert last patch.
22472
22473 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
22474
22475         * icall.c: updates for new mono_class_vtable() not calling
22476         the type constructor anymore.
22477
22478 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
22479
22480         * object.h, object.c: separate vtable creation from type
22481         initialization. Make running the .cctor thread safe.
22482
22483 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
22484
22485         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
22486
22487 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
22488
22489         * loader.c (mono_get_method): consider calling convention
22490
22491 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
22492
22493         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
22494         to return the invisible global type for a module.
22495
22496         * reflection.c (mono_image_build_metadata): Emit global fields too.
22497
22498 2003-05-20  Peter Williams  <peterw@ximian.com>
22499
22500         * loader.c (mono_lookup_internal_call): Add a few newlines.
22501
22502 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
22503
22504         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
22505         literal strings.
22506
22507         * appdomain.c (set_domain_search_path): Recalculate search path when
22508         AppDomainSetup.PrivateBinPath changes.
22509
22510         * object.c (mono_class_compute_gc_descriptor): It turns out some
22511         parts of the class libs (like System.Thread) holds pointers to
22512         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
22513         to treat native int a pointer type here.
22514         
22515 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
22516
22517         * appdomain.h, domain.c: add hashtable for jump target resolution.
22518
22519 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
22520
22521         * reflection.h reflection.c icall.c: Added new icalls 
22522         GetManifestResourceInfoInternal, GetModulesInternal and support
22523         infrastructure.
22524
22525 2003-05-16  Dick Porter  <dick@ximian.com>
22526
22527         * icall.c:
22528         * file-io.h:
22529         * file-io.c: Implement System.IO.MonoIO::GetTempPath
22530
22531 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
22532
22533         * object.c: mono_store_remote_field: little fix to previous patch.
22534
22535 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22536
22537         * class.c: add constructors to array classes.
22538         * icall.c: special case array construction for InternalInvoke (),
22539
22540 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
22541
22542         * class.h class.c reflection.c object.c: Added support for field
22543         defaults in dynamically generated classes.
22544
22545 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
22546
22547         * reflection.c: properly encode charset for ddlimport.
22548
22549 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
22550
22551         * threads.c: allow compiling without GC.
22552
22553 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22554
22555         * appdomain.h, object.c, object.h, threads.c, threads.h: added
22556         handling of thread static data.
22557
22558 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22559
22560         * reflection.h, reflection.c: added mono_custom_attrs_free ().
22561
22562 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
22563
22564         * class.c (mono_array_class_get): always set the serializable flags
22565         (mono_array_class_get): always set the SEALED attribute for array types
22566
22567 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
22568
22569         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
22570         attributes (fix for bug 42021).
22571
22572 2003-05-12  Dick Porter  <dick@ximian.com>
22573
22574         * gc.c: Don't run finalizers when the finalizer thread is
22575         finishing up, because the default domain has already been
22576         destroyed.
22577
22578 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
22579
22580         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
22581         value is null, we should throw an exception.   This is slightly
22582         different than the other conventions used for the constructor.
22583
22584 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22585
22586         * socket-io.c: fixed windows build.
22587
22588 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22589
22590         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
22591
22592 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
22593
22594         * object.c (mono_string_new_wrapper): Compatibility fix for MS
22595         compilers.
22596
22597 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
22598
22599         * class.c (mono_class_layout_fields): Add experimental GC aware
22600         auto layout facility. Requires class library changes to work correctly.
22601
22602         (mono_class_setup_vtable): Avoid overriding explicit interface
22603         method implementations. Fixes iface3.exe test.
22604
22605         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
22606         object reference.
22607         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
22608         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
22609
22610         * metadata.h: Add new type classification macro which determines
22611         whenever the type holds an object reference.
22612
22613 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
22614
22615         * marshal.c (mono_marshal_get_native_wrapper): cleanups
22616
22617 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
22618
22619         * gc.c (finalizer_thread): Work around a GC bug.
22620
22621 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
22622
22623         * marshal.c (emit_struct_conv): allow unions
22624
22625         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
22626
22627 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
22628
22629         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
22630
22631 2003-05-06  Martin Baulig  <martin@ximian.com>
22632
22633         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
22634
22635 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22636
22637         * socket-io.c:
22638         (Select_internal): allow NULLs, don't create arrays if not needed.
22639         Coupled with Socket.cs changes.
22640
22641         * threadpool.c:
22642         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
22643         register a finalizer for it that will close the semaphore handle. This
22644         fixes the leak and make Lupus' test run with > 4080 loops.
22645
22646 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
22647
22648         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
22649         Jerome Laban (bug #42287)
22650
22651 2003-05-02  Martin Baulig  <martin@ximian.com>
22652
22653         * debug-mono-symfile.h
22654         (MonoSymbolFile): Moved declaration into mono-debug.h.
22655         (MonoDebugMethodJitInfo): Likewise.
22656         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
22657         argument.
22658         (_mono_debug_address_from_il_offset): Take a
22659         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
22660
22661         * mono-debug.h
22662         (MonoDebugDomainData): New struct.
22663         (mono_debug_get_domain_data): New function.
22664         (mono_debug_add_method): Take an additional `MonoDomain *'
22665         argument.
22666         (mono_debug_source_location_from_address): Likewise.
22667         (mono_debug_il_offset_from_address): Likewise.
22668         (mono_debug_address_from_il_offset): Likewise.
22669
22670 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
22671
22672         * reflection.c: one more check for null type in custom attrs.
22673
22674 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22675
22676         * reflection.c: avoid warning (comparison is always false due to limited
22677         range of data type).
22678
22679 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22680
22681         * icall.c: throw an exception in Type.GetField if the argument 'name'
22682         is NULL.
22683
22684 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
22685
22686         * reflection.c: fixed handling of enums in named arguments to custom
22687         attributes (bug #42123).
22688
22689 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
22690
22691         * reflection.c: use the right array element type and handle
22692         a null for a Type argument, too.
22693
22694 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
22695
22696         * reflection.c: handle arrays as arguments to custom attributes.
22697
22698 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
22699
22700         * reflection.c: handle a string value in a custom attr
22701         ctor that takes an object.
22702
22703 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
22704
22705         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
22706         (fix bug #42063)
22707
22708 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
22709
22710         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
22711
22712 2003-04-27  Martin Baulig  <martin@ximian.com>
22713
22714         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
22715         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
22716         MONO_DEBUGGER_EVENT_BREAKPOINT.
22717         (mono_breakpoint_trampoline_code): Removed.
22718         (mono_debugger_event_handler): The last argument is now a
22719         `guint32'.
22720         (mono_debugger_insert_breakpoint_full): Removed the
22721         `use_trampoline' argument.
22722         (mono_debugger_method_has_breakpoint): Likewise.
22723         (mono_debugger_trampoline_breakpoint_callback): Renamed to
22724         mono_debugger_breakpoint_callback(); take the method and
22725         breakpoint number as arguments.
22726
22727 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
22728
22729         * metadata.c: fix off by one when loading parameters attributes.
22730
22731 2003-04-24  Martin Baulig  <martin@ximian.com>
22732
22733         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
22734
22735 2003-04-24  Martin Baulig  <martin@ximian.com>
22736
22737         * mono-debug-debugger.c: Moved all code which interacts with the
22738         Mono Debugger here.
22739
22740         * debug-mono-symfile.c: This code now just deals with the symbol
22741         file itself, the debugger code is now in mono-debug-debugger.c.
22742
22743 2003-04-23  Martin Baulig  <martin@ximian.com>
22744
22745         * mono-debug.c (mono_debug_source_location_from_il_offset):
22746         New method; like mono_debug_source_location_from_address(), but
22747         takes an IL offset instead of a machine address.
22748
22749 2003-04-23  Martin Baulig  <martin@ximian.com>
22750
22751         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
22752         `line' field; this is now computed by the debugger.
22753
22754 2003-04-23  Martin Baulig  <martin@ximian.com>
22755
22756         * mono-debug.[ch]: New files.  This is the new debugging interface.
22757
22758         * mono-debug-debugger.[ch]: New files.  Moved all code which
22759         interacts with the Mono Debugger here.
22760
22761 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
22762
22763         * domain.c (mono_init): initialize mono_defaults.monitor_class
22764
22765 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
22766
22767         * reflection.c (method_encode_code): Add a spicy exception to help
22768         future compiler authors.
22769
22770 2003-04-21  Martin Baulig  <martin@ximian.com>
22771
22772         * icall.c
22773         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22774         Make this work with relative pathnames; g_filename_to_uri() needs
22775         an absolute filename.
22776
22777 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
22778
22779         * icall.c: Track name changes in Object and ValueType.
22780
22781 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
22782
22783         * metadata.c (mono_type_stack_size): size should be a multiple of
22784         sizeof (gpointer)
22785
22786 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22787
22788         * gc.c:
22789         (internal_domain_finalize): moved into mono_domain_finalize. No need
22790         to create another thread because the finalizers will be run in the
22791         finalizer thread.
22792         
22793         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
22794         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
22795         to be run (MS does this too).
22796
22797 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
22798
22799         * object.c (mono_class_compute_gc_descriptor): Update comment.
22800
22801         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
22802
22803         * image.h: Add synchronized wrapper cache.
22804
22805         * image.c (do_mono_image_open): Initialize cache.
22806
22807         * reflection.c (create_dynamic_mono_image): Initialize cache.
22808
22809 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22810
22811         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
22812         ves_icall_System_Buffer_ByteLengthInternal.
22813
22814 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22815
22816         * reflection.c: setup klass->nested_in earlier. Allow
22817         a dash in the assembly name.
22818
22819 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
22820
22821         * metadata.c (mono_type_to_unmanaged): dont access
22822         type->data.klass for MONO_TYPE_OBJECT
22823         (mono_type_to_unmanaged): consider System.Delegate class
22824
22825 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
22826
22827         * class.c: just setup supertypes in the proper place instead of
22828         initializing the full element class for arrays.
22829
22830 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22831
22832         * class.c: ensure the element class of arrays is initialized.
22833         Setup the supertype info for array classes, too.
22834
22835 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
22836
22837         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
22838
22839 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22840
22841         * Makefile.am: re-added -m option when running cygpath. This way,
22842         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
22843         separator.
22844         * mono-config.c: same codepath for locating mono config file for WIN32
22845         and the rest.
22846         * assembly.c: if mono_assembly_setrootdir is called, don't override
22847         the value set.
22848
22849 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22850
22851         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
22852         MONO_ASSEMBLIES variable.
22853
22854 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
22855
22856         * icall.c: added Assembly::GetNamespaces() icall.
22857
22858 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22859
22860         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
22861
22862 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
22863
22864         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
22865         * object.c: fixed bug in the construction of vtable for proxies
22866
22867 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
22868
22869         * object.c (mono_array_new): Mark mono_array_new as an icall.
22870
22871 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22872
22873         * class.c: fixed test for public method when overriding interfaces.
22874         Closes bug #40970.
22875
22876 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22877
22878         * appdomain.h, domain.c: added mono_domain_foreach() to
22879         be able to access the currently loaded appdomains.
22880         * object.c: make string interning work across sppdomains.
22881         Mark some functions for use as icalls.
22882
22883 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
22884
22885         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
22886
22887         * reflection.h reflection.c: Allocate long living data using 
22888         GC_MALLOC_ATOMIC so the collector does not need to scan it.
22889
22890         * reflection.c: Double the allocation size in streams instead of
22891         increasing it, to prevent unneccesary copying on large assemblies.
22892         
22893         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
22894         creation if the assembly does not have the Run flag set.
22895
22896 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
22897
22898         * class.h: avoid the C++ keywords in header files (Jerome Laban
22899         spotted and fixed this).
22900
22901 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22902
22903         * object.c:
22904         (mono_unhandled_exception): fill in the arguments for the
22905         UnhandledException event. Only trigger that event for the default
22906         domain (as MS does).
22907
22908 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
22909
22910         * object.c: Improve typed allocation stuff based on suggestions from
22911         Paolo. Also turn it on if the GC library supports it.
22912
22913 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
22914
22915         * object.c object.h class.h: Added experimental typed allocation
22916         facility using the interfaces in gc_gcj.h.
22917
22918         * os/gc_wrapper.h: Added new include files.
22919         
22920 2003-04-03  Martin Baulig  <martin@ximian.com>
22921
22922         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
22923         which is not yet enabled by default.
22924
22925         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
22926         functions.
22927         (mono_gc_lock, mono_gc_unlock): New static functions.
22928
22929         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
22930         functions; stop/start the world for the garbage collector.  This
22931         is using the windows API; we need to complete the SuspendThread()/
22932         ResumeThread() implementation in the io-layer to make this work on Unix.
22933         (mono_gc_push_all_stacks): New public function; tells the garbage
22934         collector about the stack pointers from all managed threads.
22935
22936 2003-04-03  Martin Baulig  <martin@ximian.com>
22937
22938         * object.h (MonoThread): Added `gpointer stack_ptr'.
22939
22940         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
22941
22942 2003-04-03  Martin Baulig  <martin@ximian.com>
22943
22944         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
22945
22946 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
22947
22948         * reflection.c (typebuilder_setup_fields): Initialize field.first and
22949         field.last.
22950
22951 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
22952
22953         * loader.c (mono_lookup_internal_call): Report the corlib that is
22954         out of sync.
22955
22956 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
22957
22958         * icall.c (ves_icall_type_GetTypeCode): fixed check for
22959         System.DBNull (it's class not valuetype).
22960
22961 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
22962
22963         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
22964         if the array method was already assigned a token (fixes bug#40646).
22965
22966 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
22967
22968         * reflection.c (mono_reflection_get_type): Attempt type resolve even
22969         if no assembly is given.
22970
22971 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
22972
22973         * metadata.h: Added the new tables.
22974
22975         * row-indexes.h: Added definitions for new tables.
22976
22977         * metadata.c: Add schemas for new tables, and add support for
22978         computing the sizes of them.
22979
22980         * class.c: Update for handling the new type cases.
22981
22982 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
22983
22984         * metadata.h (MONO_TYPE_IS_VOID): new macro
22985
22986 2003-03-31  Martin Baulig  <martin@ximian.com>
22987
22988         * threads.h (MonoThreadCallbacks): Added `thread_created'.
22989
22990         * threads.c (mono_thread_new_init): Call `thread_created' in the
22991         mono_thread_callbacks.
22992
22993 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
22994
22995         * loader.h: added marshalbyrefobject_class to mono_defaults
22996         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
22997         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
22998           generation of output parameters.
22999           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
23000         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
23001           contextbound and the target object belongs to the context of the caller.
23002         * object.h: added context and unwrapped_server variables in MonoRealProxy.
23003         * object.c: Implemented support for interfaces and abstract classes
23004           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
23005           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
23006
23007 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
23008
23009         * class.h class.c (mono_class_is_subclass_of): New function.
23010         
23011         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
23012         routines for most common case (calls from ArrayList::ToArray).
23013
23014         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
23015         routine so programs which call Environment::Exit() can be profiled.
23016
23017         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
23018         Added MONO_ARCH_SAVE_REGS.
23019
23020         * icall.c (ves_icall_type_is_subtype_of): Use new function.
23021
23022 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
23023
23024         * blob.h: Add a couple of new MonoType types definitions.
23025
23026         * tabledefs.h: Add a couple of new call convs.
23027
23028 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
23029
23030         * reflection.h (MonoReflectionDynamicAssembly): track changes in
23031         the layout of the class.
23032
23033         * reflection.c (alloc_table): double the size on overflow to avoid
23034         unnecessary copying.
23035
23036         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
23037         avoid filling out metadata tables and blobs. Also set mb->ilgen to
23038         null so it can be garbage collected.
23039         
23040 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
23041
23042         * reflection.c (mono_reflection_get_type): Return the resolved type
23043         only if it is in the assembly we searched.
23044
23045         * reflection.c (ensure_runtime_vtable): Initialize method slots.
23046
23047         * class.c (mono_class_setup_vtable): Set the slot of the overriding
23048         method.
23049
23050 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23051
23052         * appdomain.c:
23053         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
23054         the right one is 'file:///blah', but MS allows it.
23055         * assembly.c:
23056         (mono_assembly_open): allow 'file://blah'
23057
23058         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
23059
23060 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
23061
23062         * socket-io.c: fixes bug #40310.
23063
23064 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
23065
23066         * reflection.c (mono_reflection_parse_type): handle deeply nested
23067         types correctly.
23068
23069         * reflection.c (mono_image_create_token): Use unique token values
23070         since they will be put into a hash table.
23071
23072         * class.c (mono_class_setup_vtable): If a method occurs in more than
23073         one place in the vtable, and it gets overriden, then change the
23074         other occurances too.
23075
23076         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
23077         object as return type.
23078
23079 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23080
23081         * icall.c: Deleted "ToString" implementation for double and float
23082         because they are full implemented in managed code.
23083
23084 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23085
23086         * reflection.c, reflection.h: implemented and exported functions
23087         to retrieve info about custom attributes.
23088
23089 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23090
23091         * appdomain.c: moved Uri handling to assembly.c
23092         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
23093         work when using a file Uri in *nix and windows.
23094
23095         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
23096         GetReferencedAssemblies.
23097
23098 2003-03-18  Dick Porter  <dick@ximian.com>
23099
23100         * icall.c: Rename a couple of internal calls
23101
23102         * threads.c: Set the thread state to Stopped when a thread exits.
23103         Fixes bug 39377.
23104
23105 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
23106
23107         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
23108         New icall.
23109
23110         * object.c (mono_class_vtable): fix warning.
23111
23112 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
23113
23114         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
23115
23116         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
23117         memory.
23118         (method_encode_clauses): Create exception info structures in the right
23119         order.
23120         (mono_reflection_setup_internal_class): Initialize supertypes field.
23121
23122         * class.c object.c: Handle interfaces which implement other interfaces 
23123         correctly.
23124
23125         * class.h class.c: Move the supertypes array initialization code into 
23126         a separate function so it can be used for dynamic types too. Also call
23127         it earlier, in mono_class_init(), since it can be used before the
23128         type is initialized.
23129
23130 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23131
23132         * Makefile.am:
23133         * assembly.c:
23134         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
23135
23136         * appdomain.c:
23137         * appdomain.h:
23138         * marshal.c:
23139         * object.c: remove warnings.
23140
23141 2003-03-13  Martin Baulig  <martin@ximian.com>
23142
23143         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
23144         (MonoDebugLexicalBlockEntry): New types.
23145
23146         * debug-mono-symfile.c
23147         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
23148
23149 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23150
23151         * process.c: ret can be any non-zero value accroding to MS doc.
23152
23153 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
23154
23155         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
23156         fixing a warning for a miss-used prototype, would have cause
23157         random memory corruption.
23158
23159 2003-03-07  Martin Baulig  <martin@ximian.com>
23160
23161         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
23162         getting really annoying ....
23163
23164 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
23165
23166         * reflection.c (fixup_method): added support for array methods.
23167
23168 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
23169
23170         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
23171         (pointed out by Michael Adams).
23172
23173 2003-03-04  Dick Porter  <dick@ximian.com>
23174
23175         * icall.c: Temporarily reverted the Double and Single ToString()
23176         change, because it broke nunit.
23177
23178 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
23179
23180         * object.h, threads.h: make include files compatible with C++
23181         (patch by Jerome Laban <jlaban@wanadoo.fr>).
23182
23183 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23184
23185         * icall.c: Erased ToString helper functions for Double and Single.
23186         Now, that implementations ar all in managed code (Double and Single
23187         Formatters).
23188
23189 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
23190
23191         * appdomain.c: Added method for initializing the default context of
23192         a domain. Added internal call for getting the default context.
23193         * appdomain.h: Added context variable in MonoDomain struct.
23194         * domain.c: mono_domain_set also sets the default context of the domain
23195         * icall.c: Mapped internal method InternalGetDefaultContext.
23196         * object.c: mono_object_get_virtual_method returns always a remoting
23197         wrapper if the object is a transparent proxy.
23198         mono_runtime_invoke_array: when creating an object by calling the
23199         constructor, if the created object is a proxy, then the constructor should
23200         be called using the a remoting wrapper.
23201
23202 2003-03-03  Dick Porter  <dick@ximian.com>
23203
23204         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
23205         variable so it compiles on solaris.  Problem spotted by
23206         Christopher Taylor <ct@cs.clemson.edu>
23207
23208 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23209
23210         * appdomain.c:
23211         (get_info_from_assembly_name): don't leak value.
23212
23213         * icall.c:
23214         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
23215         result.
23216
23217 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
23218
23219         * assembly.c: export mono_image_load_references ().
23220         * class.c: handle function pointers. mono_class_from_name() now
23221         supports nested type names directly.
23222
23223 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
23224
23225         * reflection.h reflection.c: Encode already created dynamic methods 
23226         and fields correctly as a DEF instead of a REF.
23227
23228         * reflection.c: Get rid of the force_ref argument to 
23229         mono_image_typedef_or_ref since it was wrong in the first place.
23230
23231         * string-icalls.c: add error checking to string constructors according
23232         to the MSDN docs.
23233
23234         * reflection.c: Emit types in the order their TypeBuilders were 
23235         created. Previously, a new table index was assigned to each type before
23236         the tables were emitted. This was wrong because the signature blob
23237         might already refer to a type by its original table index.
23238
23239 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
23240
23241         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
23242         change.
23243         
23244 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23245
23246         * Makefile.am: make assemblies dir have \ instead of / on windows.
23247
23248 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
23249
23250         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
23251         iterate over the NESTEDCLASS table using a linear search since the
23252         table is not guaranteed to be sorted by the secondary key.
23253
23254         * class.c (mono_class_create_from_typedef): fixed up call to
23255         mono_metadata_nesting_typedef.
23256         
23257 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
23258
23259         * marshal.c (mono_string_to_byvalstr): clear the memory as
23260         suggested by Jerome Laban <jlaban@wanadoo.fr>
23261
23262 2003-02-26  Dick Porter  <dick@ximian.com>
23263
23264         * process.c: Cope with padding in .rsrc blocks
23265
23266 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23267
23268         * metadata.h: reverted the filter_len change, it breaks reflection
23269         
23270 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23271
23272         * metadata.h: added a new field to store the filter_len
23273         
23274
23275 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
23276
23277         * reflection.c: handle custom attributes for types and members
23278         created with Reflection.Emit (bug#38422).
23279
23280 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
23281
23282         * reflection.c: define RTSpecialName automatically for constructors for
23283         compatibility with MS.NET.
23284
23285         * reflection.c (mono_reflection_create_runtime_class): initialize
23286         nested_in field of dynamically created classes.
23287
23288 2003-02-22  Martin Baulig  <martin@ximian.com>
23289
23290         * debug-mono-symfile.h: Incremented version number.
23291
23292 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23293
23294         * object.h icall.c process.c: fix warnings.
23295
23296 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23297
23298         * appdomain.h appdomain.c:
23299         (mono_domain_try_type_resolve): split the 
23300         name_or_tb argument into a name and a tb argument.
23301         (mono_domain_has_type_resolve): new function to check whenever the
23302         application has registered a TypeResolve event handler.
23303         
23304         * icall.c reflection.h reflection.c: move the type resolve logic into
23305         mono_reflection_get_type () so it will be invoked when 
23306         Assembly::GetType () is called.
23307
23308         * reflection.c:
23309         (mono_reflection_get_type): renamed to get_type_internal.
23310         (mono_reflection_get_type): fixed type name generation so it works 
23311         for nested types too.
23312         (mono_reflection_get_type): call has_type_resolve () to avoid the 
23313         costly type name generation if there is no resolve event handler.
23314
23315 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23316
23317         * class.c, image.c: load exported types from file references.
23318
23319 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
23320
23321         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
23322           used to cache the managed methods used to create proxies and make 
23323           remote invocation of methods.
23324         * class.h: Added in MonoVTable a flag to indicate that a class needs 
23325           to be remotely created.
23326         * object.c: Modified the method mono_class_vtable(). It now initializes 
23327           the remote flag of the vtable. Modified mono_object_new_specific(), 
23328           so now it checks the remote flag.
23329         * icall.c: Added a couple of internal methods, one for enabling instance 
23330           creation interception for a type, and one for creating objects bypassing
23331           the remote check.
23332
23333 2003-02-18  Martin Baulig  <martin@ximian.com>
23334
23335         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
23336         New interncall to get a method's metadata token.
23337
23338         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
23339         New interncall for the debugger.
23340
23341 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
23342
23343         * class.c (mono_class_setup_vtable): allocate supertype array
23344
23345 2003-02-18  Martin Baulig  <martin@ximian.com>
23346
23347         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
23348
23349 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23350
23351         * reflection.c:
23352         (assembly_name_to_aname): jump over unknown properties (i've found
23353         something like: 'type, assembly, version=xxx, custom=null, public...',
23354         so now will ignore custom=null and still get the rest of the values).
23355
23356 2003-02-17  Dick Porter  <dick@ximian.com>
23357
23358         * threads.c: Have Thread.Start() wait for a semaphore to signal
23359         that the thread has set up all its local data.  This fixes bug
23360         34323, where Abort() raced the new thread's TLS data.
23361
23362         Also removes the handle_store() call from start_wrapper, because
23363         threads are now always created suspended and there is no longer a
23364         race between the parent and child threads to store the info.
23365
23366 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
23367
23368         * image.c: explain the #- heap issue in a message, hopefully
23369         avoiding FAQs on mono-list.
23370
23371 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23372
23373         * icall.c:
23374         (GetEntryAssembly): if the domain has not invoked
23375         AppDomain.ExecuteAssembly yet, return the assembly of the default
23376         AppDomain.
23377
23378 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
23379
23380         * class.c (mono_ldtoken): make it work in dynamic assemblies.
23381
23382 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
23383
23384         * metadata.c, reflection.c: simple speedup to type hash
23385         and equals code.
23386
23387 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
23388
23389         * image.c, image.h, class.c, assembly.c: move module loading
23390         to MonoImage. When loading metadata, consider alignemnet from
23391         the start of metadata, not from the metadata address in memory.
23392
23393 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
23394
23395         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
23396         AssemblyBuilder objects. Factored out custom attribute creation into
23397         a separate function.
23398         (create_custom_attr): new function to create custom attributes.
23399
23400 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
23401
23402         * Makefile.am: Got tired of typing the full pathname to pedump.
23403         Until there is another option, am installing this.
23404
23405 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
23406
23407         * class.c (class_compute_field_layout): always set field->parent 
23408         (mono_ldtoken): use mono_defaults.fieldhandle_class;
23409
23410 2003-02-11  Dick Porter  <dick@ximian.com>
23411
23412         * threads-types.h:
23413         * monitor.c: Rewrote Monitor, making lock much faster and
23414         Pulse/Wait work as specified.  Also uses much fewer handles, and only
23415         creates them as needed.
23416
23417         * exception.c: Added SynchronizationLockException
23418
23419         * threads.c: Deleted old Monitor implementation.  The new one is
23420         in a new file.
23421
23422 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
23423
23424         * class.c: handled TypedReference type code. Set the correct size for
23425         class data. Setup interface_offsets for interface classes, too.
23426
23427 2003-02-09  Martin Baulig  <martin@ximian.com>
23428
23429         * debug-mono-symfile.h: Reflect latest symbol writer changes.
23430
23431 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
23432
23433         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
23434         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
23435         * object.c: fixed mono_object_get_virtual_method () for interfaces.
23436         * verify.c: check for code that runs after the end of the method.
23437
23438 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23439
23440         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
23441         "System.Math::Round2".
23442         * sysmath.h: Added Floor, Round and Round2 definitions.
23443         * sysmath.c: Modified certain functions that were not 100% compliant
23444         with MS.NET (math precision) and added the implementation of Floor,
23445         Round and Round2.
23446
23447 2003-02-07  Martin Baulig  <martin@ximian.com>
23448
23449         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
23450
23451 2003-02-07  Martin Baulig  <martin@ximian.com>
23452
23453         * debug-mono-symfile.c: Reflected latest symwriter changes.
23454         (mono_debug_create_mono_symbol_file): Removed.
23455         (mono_debug_open_mono_symbol_file): Take an argument which
23456         specifies whether to create a dynamic symbol file.
23457
23458 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
23459
23460         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
23461
23462 2003-02-05  Martin Baulig  <martin@ximian.com>
23463
23464         * reflection.c (mono_image_build_metadata): Make this public,
23465         protect it against being called multiple times, don't create
23466         resources and don't build the compressed metadata here.
23467         (mono_image_create_pefile): Do this here.
23468
23469         * icall.c
23470         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
23471
23472 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23473
23474         * socket-io.c: fixed bug #36322.
23475
23476 2003-02-06  Piers Haken <piersh@friskit.com>
23477
23478         * appdomain.[ch]:
23479         * class.h:
23480         * debug-mono-symfile.c:
23481         * icall.c:
23482         * loader.c:
23483         * mono-config.c:
23484         * monosn.c:
23485         * reflection.c:
23486         * socket-io.c: warning cleanups
23487
23488 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
23489
23490         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
23491         function. works like remoting invoke, but does a check for the Proxy first.
23492
23493 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
23494
23495         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
23496
23497 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
23498
23499         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
23500         array of pointers.
23501         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
23502         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
23503
23504         * object.c (mono_store_remote_field_new): used by the new jit
23505         instead of mono_store_remote_field
23506         (mono_load_remote_field_new): used by the new jit
23507         instead of mono_load_remote_field
23508
23509 2003-02-05  Patrik Torstensson
23510
23511         * appdomain.c: changed unload to take the domain id instead
23512         of domain
23513         
23514         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
23515
23516
23517 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23518
23519         * appdomain.c: don't look for assemblies in ApplicationBase if
23520         PrivateBinPathProbe is set.
23521
23522 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23523
23524         * object.c: make the first argument in main_args contain the absolute
23525         path to the assembly. Fixes bug #37511.
23526
23527 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23528
23529         * icall.c: get correct UTC offset for countries not using daylight
23530         time saving. Fixes bug #30030.
23531
23532 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23533
23534         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
23535         and 1 are the family).
23536
23537 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
23538
23539         * icall.c (ves_icall_InternalExecute): removed wrong assertion
23540
23541         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
23542
23543 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
23544
23545         * reflection.c: added support for SignatureHelper tokens, which is
23546         needed by the Calli opcode.
23547
23548         * reflection.h: track changes to SignatureHelper class.
23549
23550         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
23551
23552 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23553
23554         * appdomain.c: fixed loading assemblies from PrivateBinPath.
23555
23556 2003-02-03  Patrik Torstensson
23557         * appdomain.[c|h], domain.c : 
23558          - Added support for getting a domain via domain id
23559          - Support for setting and getting domain from System.AppDomain 
23560            (used in cross appdomain channel)
23561          - Added support for get/set for a MonoAppContext on a thread 
23562            (Context class in System.Runtime.Remoting.Contexts),
23563          - Removed hack in Get/SetData and ExecuteAssembly.
23564         
23565         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
23566         the managed world to get control when a proxy is created.
23567
23568         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
23569         
23570 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
23571
23572         * icall.c
23573         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
23574         Populate the codebase field as well.
23575
23576 2003-02-02  Martin Baulig  <martin@ximian.com>
23577
23578         * debug-mono-symfile.c
23579         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
23580         (mono_debug_symfile_add_method): Allow interncalls.
23581
23582 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23583
23584         * icall.c: throw parse exception if strtod fails or the string is empty.
23585
23586 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
23587
23588         * marshal.c: handle object type separately from defined
23589         class types.
23590
23591 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
23592
23593         * marshal.c: handle NATIVE_LPSTR for strings when it's
23594         explicitly specified.
23595
23596 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
23597
23598         * reflection.c, reflection.h, icall.c: setup the reflection
23599         handle cache for ModuleBuilders and AssemblyBuilders.
23600
23601 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
23602
23603         * reflection.c (reflection_methodbuilder_to_mono_method): set
23604         pinvoke flag
23605
23606 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23607
23608         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
23609
23610 2003-01-29  Dick Porter  <dick@ximian.com>
23611
23612         * threads.c: No need for the fake_thread kludge now that Thread
23613         doesn't run a class constructor
23614         
23615 2003-01-29  Dick Porter  <dick@ximian.com>
23616
23617         * threads.c: Use g_direct_hash instead of the rather bogus
23618         g_int_hash
23619
23620 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
23621
23622         * marshal.c (mono_marshal_get_native_wrapper): add check for null
23623         (fix pinvoke12.exe)
23624         (mono_marshal_get_struct_to_ptr): generate valid IL code
23625         (mono_marshal_get_ptr_to_struct): generate valid IL code
23626         (*): correctly set sig->pinvoke, we need to memdup the signature
23627         to do that
23628
23629 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23630
23631         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
23632         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
23633
23634 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
23635
23636         * profiler.c: provide more callers information.
23637
23638 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
23639
23640         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
23641
23642         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
23643
23644         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
23645
23646 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23647
23648         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
23649         exception instead of going into an infinite loop on dates which it 
23650         can't yet handle.
23651
23652         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
23653         out-of-range exception if needed.
23654
23655         * class.c (mono_class_setup_vtable): allow a virtual method to provide
23656         an implementation for an interface method and to override an inherited
23657         method at the same time. 
23658         Imagine a scenario when a virtual method is used to override a
23659         virtual abstract method in a parent class, and this same method 
23660         provides an implementation for an method inherited from an interface. 
23661         In this case, the interface resolution code will set im->slot, which 
23662         means that the virtual method override pass will skip this method 
23663         which means a pointer to the abstract method inherited from the parent
23664         will remain in the vtable of this non-abstract class.
23665
23666         * class.c: (mono_class_setup_vtable): continue search for a real 
23667         method if only an abstract method is found.     
23668
23669 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
23670
23671         * reflection.c: add size to encoding for ByValStr and ByValArray
23672         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
23673
23674 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23675
23676         * class.c (mono_class_setup_vtable): pass the override info as an
23677         argument.
23678
23679         * class.c (mono_class_setup_vtable): set the slot of overriding methods
23680         correctly.
23681         
23682         * reflection.c (ensure_runtime_vtable); add support for method 
23683         overrides.
23684         
23685 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23686
23687         * reflection.c (resolution_scope_from_image): Hack to work to work with
23688         dynamic assemblies.
23689
23690         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
23691         added a 'force_ref' argument to force this function to allways return 
23692         a TypeRef. This is needed by mono_image_get_memberref_token ().
23693         
23694 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23695
23696         * reflection.c (mono_image_get_type_info): interfaces really don't have
23697         a parent.
23698
23699         * reflection.c (mono_image_basic_init): fill out missing fields of
23700         image structure.
23701
23702         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
23703         dynamic assemblies. This is required so dynamic assemblies show up in
23704         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
23705         Type::GetType() etc. This is consistent with MS behaviour.
23706
23707         * image.c image.h reflection.c: add newly created classes to the name 
23708         cache so mono_class_get () will find them.      
23709
23710 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23711
23712         First part of changes to get IKVM.NET running under mono.
23713         
23714         * appdomain.h, appdomain.c: added new function 
23715         mono_domain_try_type_resolve() which will emit TypeResolve events. 
23716         This function will call AppDomain::DoTypeResolve to do the actual work.
23717
23718         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
23719         moved existing code dealing with dynamic tokens to a new function 
23720         called mono_reflection_lookup_dynamic_token (). This function will 
23721         raise TypeResolve events when appropriate. Since reflection.c is not 
23722         part of libmetadata, a new hook function called 
23723         mono_lookup_dynamic_token() is added to class.c which will call this.
23724
23725         * assembly.h assembly.c: make the invoke_load_hook function public,
23726         so it can be called for dynamic assemblies.
23727
23728         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
23729
23730         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
23731         type isn't found.
23732
23733         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
23734         MonoGHashTable, since it contains pointers to objects which the GC 
23735         needs to track.
23736
23737         * assembly.c (search_loaded): remove unused variable.
23738         
23739 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
23740
23741         * object.c: fixed issue exposed by gcc-generated IL programs
23742         that use RVA data for pointers.
23743
23744 2003-01-25  Martin Baulig  <martin@ximian.com>
23745
23746         * threads.c (start_wrapper): Moved the initialization of
23747         `start_func' above the mono_new_thread_init() call to which we
23748         pass it as argument.
23749
23750 2003-01-24  Martin Baulig  <martin@ximian.com>
23751
23752         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
23753         the MonoThread pointer.
23754
23755 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
23756
23757         * icall.c: Rename `PowImpl' to Pow.
23758
23759 2003-01-23  Dick Porter  <dick@ximian.com>
23760
23761         * threads.c (start_wrapper): Create a Thread object if needed, so
23762         the Main() thread can do the class initialisation in a subthread
23763         that has been set up to allow managed code execution.
23764
23765         Pass the thread ID instead of the MonoThread pointer to the thread
23766         start and attach callbacks.  This change is required, because the
23767         jit thread start callback must be called _before_ the Thread
23768         object can be created.
23769         
23770         (mono_thread_init): Removed much object creation code that is no
23771         longer needed.  No managed code is called from here now.
23772
23773         * object.c (mono_runtime_exec_managed_code): Create a subthread
23774         for Main, and call back to the runtime to use it.
23775         Set the exit code when Main exits.
23776
23777         * gc.c: Make sure domain finalisation happens in a subthread.
23778         Re-enable threaded GC, fixing bug 31333 (again).
23779
23780         * environment.c: System.Environment internall calls (so far just
23781         ExitCode is here, the others are still in icall.c)
23782
23783         * appdomain.c (mono_runtime_cleanup): All threads running managed
23784         code should have finished before mono_runtime_cleanup() is
23785         reached, so no need to clean up threads.
23786
23787 2003-01-22  Martin Baulig  <martin@ximian.com>
23788
23789         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
23790         `gpointer func' arguments.      
23791         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
23792         but added `MonoThread *thread' argument.
23793         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
23794
23795         * threads.c (mono_new_thread_init): Added `gpointer func' argument
23796         and pass it to the mono_thread_start_cb callback.
23797         (mono_install_thread_callbacks): New public function to install a
23798         set of callbacks which are set by the debugger.
23799         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
23800
23801 2003-01-22  Martin Baulig  <martin@ximian.com>
23802
23803         * Makefile.am: Install debug-mono-symfile.h.
23804
23805 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
23806
23807         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
23808
23809 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
23810
23811         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
23812         * class.c (mono_ptr_class_get): correctly set access levels of pointers
23813         (mono_array_class_get): correctly set access levels of arrays
23814
23815 2003-01-20      Patrik Torstensson
23816         * image.h (MonoAssemblyName): changed major, minor, build, revision
23817         from signed to unsigned.
23818
23819 2003-01-20  sean kasun <skasun@azstarnet.com>
23820
23821         * reflection.c (load_cattr_value): Now this handles
23822         MONO_TYPE_SZARRAY.  Fixes bug #35629
23823
23824 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
23825
23826         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
23827         integer value
23828
23829 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23830
23831         * decimal.c: fixed bug #26056.
23832
23833 2003-01-17  Martin Baulig  <martin@ximian.com>
23834
23835         * gc.c: Raise an ExecutionEngineException instead of using g_error().
23836
23837 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23838
23839         * exception.[ch]:
23840         (mono_get_exception_type_initialization): new function.
23841
23842         * object.c: throw a TypeInitializationException when an exception is
23843         thrown invoking the class constructor.
23844
23845 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23846
23847         * reflection.c: fixed attribute reading.
23848
23849 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23850
23851         * icall.c:
23852         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
23853         provided, look for the type in the calling assembly and then in
23854         mscorlib; if the assembly name is provided, only try that one.
23855
23856 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
23857
23858         * object.c: register the vtable before there is a chance it's
23859         queried again recursively.
23860
23861 2003-01-13  Duncan Mak  <duncan@ximian.com>
23862
23863         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
23864         gc-internal.h. 
23865         
23866 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
23867
23868         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
23869
23870 2003-01-11  Martin Baulig  <martin@ximian.com>
23871
23872         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
23873         this to 20 for the release.
23874
23875 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
23876
23877         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
23878
23879         * loader.c (mono_method_get_marshal_info): bug fix
23880
23881         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
23882         structures with explicit layout
23883
23884 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
23885
23886         * profiler.c: made the output more readable (and sorted). 
23887         Added caller information for the allocation profiler.
23888
23889 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
23890
23891         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
23892
23893 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23894
23895         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
23896         to get value types.
23897         
23898 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
23899
23900         * object.c, profiler.h, profiler.c, profiler-private.h:
23901         Added object allocation profiler.
23902
23903 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
23904
23905         * reflection.h, reflection.c: handle global methods.
23906         Compress blob entries.
23907
23908 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
23909
23910         * marshal.c: fix compilation.
23911
23912 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
23913
23914         * loader.c (mono_method_get_marshal_info): impl.
23915
23916         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
23917
23918 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23919
23920         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
23921         for reference types.
23922
23923 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
23924
23925         * loader.c: fixed off by one error in loaded parameter names.
23926
23927 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
23928
23929         * marshal.c (mono_marshal_get_icall_wrapper): like
23930         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
23931         instead of a MonoMethod.
23932
23933 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23934
23935         * decimal.c: fixed bug #36537.
23936
23937 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
23938
23939         * marshal.c: throw a missing method exception if a
23940         P/Invoke method is not found.
23941
23942 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
23943
23944         * icall.c: allow a null this for constructors.
23945
23946 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
23947
23948         * icall.c: raise the proper exceptions if the arguments to the
23949         internal Invoke are incorrect.
23950
23951 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
23952
23953         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
23954
23955 2003-01-03  Martin Baulig  <martin@ximian.com>
23956
23957         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
23958
23959 2002-12-31  Martin Baulig  <martin@ximian.com>
23960
23961         * debug-mono-symfile.c: Completely rewrote the type section.
23962         Instead of using individual malloc()ed fields, we use one big
23963         continuous memory area and offsets into this area.
23964         See the comments in the source code for details.
23965
23966 2002-12-30  Martin Baulig  <martin@ximian.com>
23967
23968         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
23969
23970 2002-12-30  Martin Baulig  <martin@ximian.com>
23971
23972         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
23973         line number table in this data blob instead of using an external
23974         pointer.
23975
23976 2002-12-28  Martin Baulig  <martin@ximian.com>
23977
23978         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
23979
23980 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
23981
23982         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
23983         as a boxed return type.
23984
23985 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
23986
23987         * appdomain.c
23988         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
23989         g_build_filename to properly get separators on the filename created.
23990
23991         * object.h: Small change, introduce MonoMarshalByRefObject to
23992         track the layout of that structure in the C# universe as we make
23993         changes there.
23994
23995 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
23996
23997         * object.c: removed assert to allow static fields on interfaces.
23998         * loader.c: a TypeSpec may be used for any type, not just arrays.
23999
24000 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24001
24002         * class.c, class.h: added mono_class_array_element_size ().
24003         Ignore static methods in interfaces.
24004
24005 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24006
24007         * threads.c: fixed the build under cygwin.
24008
24009 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24010
24011         * reflection.c: handle nullref constants. Allocate keys for
24012         reflection handles with the GC.
24013
24014 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24015
24016         * threads.c, threads.h: added mono_thread_get_abort_signal()
24017         to get a suitable signal for thread abort.
24018
24019 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24020
24021         * metadata.c: fix handling of ExportedType table.
24022
24023 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24024
24025         * icall.c: added WriteWindowsDebugString internal call.
24026
24027 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24028
24029         * reflection.h: added fields to match C# implementation.
24030
24031 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24032
24033         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
24034
24035 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
24036
24037         * gc.h, gc-internal.h: Rename header for GC internal calls to
24038         gc-internal.h from gc.h as to not clash with Boehm GC having its
24039         header installed as <gc.h> in outside include paths.
24040         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
24041         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
24042
24043 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24044
24045         * icall.c: assign minor, build and revision in FillName.
24046
24047 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
24048
24049         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
24050         Added support for running code generated by Reflection.Emit.
24051
24052 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24053
24054         * appdomain.c: check for NULL argument in LoadFrom.
24055
24056 2002-12-10  Dick Porter  <dick@ximian.com>
24057
24058         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
24059
24060 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24061
24062         * appdomain.c: fix buglet when building exe file name.  Handle full
24063         assembly name (needed after latest changes to AssemblyName).
24064         * image.c:
24065         (mono_image_close): free some hashtables.
24066
24067 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
24068
24069         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
24070         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
24071         on some systems (redhat 7.3) 
24072
24073 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
24074
24075         * threads.c: delete the critical section of a sync block,
24076         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
24077
24078 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
24079
24080         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
24081
24082 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24083
24084         * appdomain.[ch]: handle the assembly preload event to try loading the
24085         assemblies using the paths we have in the current domain.
24086
24087         * assembly.[ch]: created an assembly preload hook that is called to try
24088         loading the assembly by other means that the ones provided here.
24089
24090         * domain.c: initialize the domain search path.
24091
24092         From now on, assemblies (TODO: except corlib and System) are loaded
24093         according to these rules when using mono_assembly_load ():
24094
24095                 1. It tries to load the assembly from the ApplicationBase
24096                 of the current domain appending .dll and .exe (TODO: have to
24097                 try loading from name/name.dll and name/name.exe).
24098
24099                 2. It tries the search path specified in PrivateBinPath for the
24100                 current domain (if any).
24101
24102                 3. Previous behavior.
24103
24104 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
24105
24106         * icall.c: implemented GetInterfaceMap() related icall.
24107         * domain.c, loader.h: load MethodInfo in mono_defaults.
24108
24109 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24110
24111         * gc.c: disable the finalizer thread for now, untill all the issues
24112         with it are resolved.
24113
24114 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24115
24116         * string-icalls.c: handle embedded nulls in string ctor when the
24117         length is specified.
24118
24119 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24120
24121         * class.c: look for explicit interface implementation in parent
24122         classes, too.
24123
24124 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
24125
24126         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
24127
24128 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24129
24130         * gc.c: protect handles with a critical section.
24131
24132 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24133
24134         * icall.c:
24135         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
24136         parameters. If no assembly specified, try getting the type from all
24137         the assemblies in the current domain, else, load the assembly and get
24138         the type from it.
24139
24140 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24141
24142         * marshal.c: applied patch from Aleksey Demakov that fixes
24143         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
24144
24145 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24146
24147         * icall.c: fixed get_location.
24148
24149 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
24150
24151         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
24152         declarations to make it work with older gcc. 
24153
24154         * loader.c (mono_get_method): set signature->pinvoke for native calls
24155
24156 2002-11-20  Dick Porter  <dick@ximian.com>
24157
24158         * threads.c (mono_thread_init): Set the main thread's handle
24159
24160 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24161
24162         * gc.c: allow compilation without GC support. Changed to match the
24163         mono coding style.
24164
24165 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24166
24167         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
24168
24169 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
24170
24171         * reflection.c: set a public key token on the core assemblies.
24172
24173 2002-11-18  Dick Porter  <dick@ximian.com>
24174
24175         * threads.c: Split out some thread initialisation so that other
24176         files can set the start callback function.
24177
24178         * gc.c: Run finalisers in a separate thread, to avoid stack
24179         overflow.  Fixes bug 31333.
24180
24181         * appdomain.c: Set up GC finalisation thread.
24182
24183         * reflection.c: 
24184         * object.c: 
24185         * domain.c: Use gc.h macros for GC_malloc
24186         
24187 2002-11-15  Dick Porter  <dick@ximian.com>
24188
24189         * threadpool.c: 
24190         * threads.c:
24191         * appdomain.c: Removed mono_runtime_init_with_attach(),
24192         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
24193         merging the extra parameter with the existing function.  Removed
24194         unneeded code in mono_thread_attach().
24195
24196 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
24197
24198         * image.c (mono_image_loaded_by_guid): a method to get loaded
24199         images by guid. 
24200         (load_metadata_ptrs): we store the guid as string.
24201
24202 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
24203
24204         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
24205
24206         * metadata.c (mono_guid_to_string): imported method form Zoltan
24207         Varga (slightly modified)
24208
24209         * assembly.c (mono_assembly_open): load precompiled code
24210
24211         * loader.h (MonoMethod): we store the method token for use in the
24212         aot compiler. 
24213
24214 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24215
24216         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
24217         the hook function called when an assembly is loaded.
24218         
24219         * domain.c: Modified file.
24220         (mono_domain_assembly_load): removed hash table insertion of assemblies.
24221
24222         Fixes bug #33196.
24223
24224 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
24225
24226         * reflection.c: Map PEFileKind to the value expected by the WinNT
24227         image loader. 
24228
24229 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24230
24231         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
24232         Read until the buffer is filled completely.
24233
24234 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24235
24236         * icall.c: implemented MonoType.InternalGetEvent ().
24237
24238 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24239
24240         * appdomain.c: implemented InitAppDomainSetup. Delayed
24241         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
24242         the entry_assembly.
24243
24244         * assembly.c: base_dir is now an absolute path ending with
24245         G_DIR_SEPARATOR.
24246
24247         * icall.c: modified get_location according to the above changes.
24248
24249         * object.c: init AppDomain.SetupInformation for the default domain after
24250         we have the entry assembly.
24251
24252         * domain.c: when unloading a domain, setup = NULL.
24253
24254 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
24255
24256         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
24257
24258 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
24259
24260         * object.h, object.c: introduced mono_object_get_virtual_method ()
24261         to lookup the method invoked on an object when a callvirt is done on
24262         a method.
24263         * icall.c: make MethodInfo::Invoke() always do a virtual call.
24264
24265 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24266
24267         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
24268         current domain when loaded an assembly and failed to load it.
24269
24270         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
24271
24272 2002-10-31  Dick Porter  <dick@ximian.com>
24273
24274         * icall.c: 
24275         * file-io.h: 
24276         * file-io.c: Return the error status in a parameter, as the
24277         GetLastError() value has long since been blown away if we try and
24278         look it up in a subsequent internal call invocation.  Delete the
24279         GetLastError() internal call, because it's useless.
24280
24281 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
24282
24283         * class.[ch]: added cast_class to fix bug 29517
24284
24285 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
24286
24287         * marshal.c: create valid IL code in the filter clause:
24288         the new JIT is less forgiving:-)
24289
24290 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24291
24292         * icall.c: removed get_property internal call.
24293
24294 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
24295
24296         * appdomain.h domain.c: Added an ID to appdomains.
24297         
24298         * threads.c threads.h icall.c: Implement icall
24299         Thread:GetDomainID(), and remove unused icall 
24300         CurrentThreadDomain_internal.
24301
24302 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24303
24304         * icall.c: Don't recurse through the base types in GetConstructor.
24305         Fixes bug #32063. 
24306
24307 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24308
24309         * mempool.h, mempool.c: added mono_mempool_empty() and
24310         mono_mempool_stats().
24311
24312 2002-10-23  Dick Porter  <dick@ximian.com>
24313
24314         * file-io.c: 
24315         * file-io.h: 
24316         * icall.c: Added MonoIO.GetFileType internal call
24317
24318 2002-10-17  Dick Porter  <dick@ximian.com>
24319
24320         * appdomain.c (mono_runtime_cleanup): Don't signal the async
24321         delegate semaphore before waiting for all threads to finish,
24322         because new threads can also call async delegates.  Fixes bug
24323         32004.
24324
24325         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
24326         of 3 seconds, in case another async job is queued.  (This part is
24327         needed because the bug fix reintroduced the 3s exit lag.)  This
24328         makes the mono_runtime_shutdown flag superfluous.
24329
24330 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24331
24332         * reflection.c: include ehader size in method section headers.
24333         Really check for suplicated modules entries.
24334
24335 2002-10-17  Martin Baulig  <martin@gnome.org>
24336
24337         * debug-mono-symfile.c: Added back support for locals.
24338
24339 2002-10-14  Martin Baulig  <martin@gnome.org>
24340
24341         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
24342         MONO_TYPE_VOID.
24343
24344 2002-10-14  Martin Baulig  <martin@gnome.org>
24345
24346         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
24347         mono_class_get() instead of looking in the class cache. 
24348
24349 2002-10-13  Martin Baulig  <martin@gnome.org>
24350
24351         * debug-mono-symfile.c: Set version number to 28, include the
24352         signature in method names.
24353
24354 2002-10-13  Martin Baulig  <martin@gnome.org>
24355
24356         * debug-mono-symfile.h: Set version number to 27.
24357
24358 2002-10-11  Martin Baulig  <martin@gnome.org>
24359
24360         * gc.c: Don't register/unregister NULL pointers as disappearing links.
24361
24362 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24363
24364         * metadata.c, metadata.h: added helper function to allocate signatures.
24365
24366 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24367
24368         * icall.c: added internal call to get the location of machine.config.
24369
24370 2002-10-08  Martin Baulig  <martin@gnome.org>
24371
24372         * debug-mono-symfile.c: Ignore classes with a pending init for the
24373         moment.
24374
24375 2002-10-03  Dick Porter  <dick@ximian.com>
24376
24377         * threads.c: Freebsd pthread_t is a pointer
24378
24379 2002-10-03  Dick Porter  <dick@ximian.com>
24380
24381         * socket-io.c: Implemented GetHostName_internal
24382
24383 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24384
24385         * mono-config.c:
24386         (mono_config_parse_file): don't leak the text.
24387
24388 2002-10-02  Martin Baulig  <martin@gnome.org>
24389
24390         * debug-mono-symfile.c: Added support for methods.
24391
24392 2002-10-01  Martin Baulig  <martin@gnome.org>
24393
24394         * debug-mono-symfile.c: Don't emit methods and line numbers for
24395         the dynamic symbol file, just write the type table.  We can easily
24396         have an external helper program which creates a symbol file for an
24397         IL file.        
24398
24399 2002-10-01  Dick Porter  <dick@ximian.com>
24400
24401         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
24402         Only add the handle to the cleanup array when we're about to
24403         launch the thread.  Bug 31425 deadlocked when the test was run on
24404         mono under w32.
24405
24406 2002-10-01  Martin Baulig  <martin@gnome.org>
24407
24408         * debug-mono-symfile.c: Added support for properties.
24409
24410 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24411
24412         * reflection.c: unaligned store fix from Mark Crichton
24413         <crichton@gimp.org>.
24414
24415 2002-09-27  Martin Baulig  <martin@gnome.org>
24416
24417         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
24418         New interncall.
24419
24420 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
24421
24422         * assembly.h, assembly.c: use a sane API to hook into the assembly
24423         loading process instead of a useless special-purpouse hack
24424         (ngen needs a hook, too, for example).
24425
24426 2002-09-27  Dick Porter  <dick@ximian.com>
24427
24428         * threads.c (mono_thread_init): Call GetCurrentProcess() so
24429         io-layer can set up some process handle info.  Not needed on w32,
24430         but doesn't hurt either.
24431
24432         * process.c: Pass the program name in the second parameter to
24433         CreateProcess, so the path is searched.  Include the working
24434         directory. Implemented process name, process enumeration, and some
24435         process detail internal calls.
24436         
24437         * icall.c: Added internal calls for process lookup, and some
24438         process details
24439
24440 2002-09-26  Martin Baulig  <martin@gnome.org>
24441
24442         * assembly.c (mono_install_open_assembly_hook): New global
24443         function to install a function to be invoked each time a new
24444         assembly is loaded.
24445         (mono_assembly_open): Run this callback function if set.
24446
24447         * debug-mono-symfile.c: Put back line numbers for the dynamic
24448         symbol file and also record the .il file as source file.  This
24449         allows us to install the temporary symbol file as `file.dbg' just
24450         like a compiler-generated one.
24451
24452 2002-09-26  Nick Zigarovich <nick@chemlab.org>
24453
24454         * Corrected typo in gc.c (BOHEM vs BOEHM).
24455
24456 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24457
24458         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
24459         GetProperties. Also avoid calling g_slist_length in GetProperties and
24460         GetMethods.
24461
24462 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24463
24464         * reflection.c: avoid unaligned stores (bug spotted by
24465         Mark Crichton  <crichton@gimp.org>).
24466
24467 2002-09-25  Martin Baulig  <martin@gnome.org>
24468
24469         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
24470         instead of guint64 for addresses and added prologue/epilogue info.
24471
24472 2002-09-25  Martin Baulig  <martin@gnome.org>
24473
24474         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
24475         store line number info.  For the dynamic symbol file, we only need
24476         to provide the JIT generated dynamic line number info for the dynamic
24477         symbol file.
24478
24479 2002-09-25  Martin Baulig  <martin@gnome.org>
24480
24481         * debug-mono-symfile.h: Incremented version number.
24482
24483 2002-09-24  Martin Baulig  <martin@gnome.org>
24484
24485         * class.c (mono_debugger_class_init_func): New global function
24486         pointer variable.
24487         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
24488         call it.
24489
24490         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
24491         function.  This is called via the mono_debugger_class_init_func
24492         hook to add all types to the dynamic type table.
24493         (ves_icall_MonoDebugger_GetType): New interncall to get a class
24494         from its metadata token.
24495
24496         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
24497         New interncall for the debugger.
24498
24499 2002-09-24  Nick Drochak <ndrochak@gol.com>
24500
24501         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
24502         before using it in case it is null.
24503         
24504 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24505
24506         * metadata.c: allow custom modifiers in local var signatures
24507         (bug spotted by Zoltan Varga).
24508
24509 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24510
24511         * class.c: deal with the <Module> class that may have a NULL vtable.
24512         Eliminate warnings.
24513
24514 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24515
24516         * image.c, image.h: more strong name helpers.
24517         * monosn.c: more work: convert pem keys to cryptoapi format.
24518
24519 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24520
24521         * string-icalls.c: speedup IndexOf.
24522
24523 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24524
24525         * icall.c: updates from Zoltan.2.Varga@nokia.com.
24526
24527 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
24528
24529         * icall.c: cleanup: use mono_object_domain ().
24530
24531 2002-09-23  Martin Baulig  <martin@gnome.org>
24532
24533         * debug-mono-symfile.c: Improved type support.
24534
24535 2002-09-22  Martin Baulig  <martin@gnome.org>
24536
24537         * debug-mono-symfile.c: Added support for reference types and strings.
24538
24539 2002-09-22  Martin Baulig  <martin@gnome.org>
24540
24541         * debug-mono-symfile.c: Started to work on the type table.
24542
24543 2002-09-21  Martin Baulig  <martin@gnome.org>
24544
24545         * debug-mono-symfile.c: Largely reworked the symbol table format.
24546         The symbol table is now incrementally updated each time a new
24547         method is added.  We're now also using our own magic and version
24548         so that you don't need to recompile all your classes if the
24549         dynamic table changes.
24550         (mono_debug_update_mono_symbol_file): Removed.
24551         (mono_debug_symfile_add_method): New function to add a method.
24552
24553 2002-09-21  Martin Baulig  <martin@gnome.org>
24554
24555         * icall.c
24556         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
24557         New interncall.
24558
24559         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
24560         New interncall to get a method from its metadata token.
24561
24562 2002-09-21  Martin Baulig  <martin@gnome.org>
24563
24564         * debug-mono-symfile.c: Create type table.
24565
24566 2002-09-20  Martin Baulig  <martin@gnome.org>
24567
24568         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
24569
24570 2002-09-20  Martin Baulig  <martin@gnome.org>
24571
24572         * debug-mono-symfile.c: Provide information about params and locals.
24573
24574 2002-09-20  Martin Baulig  <martin@gnome.org>
24575
24576         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
24577         New interncall.
24578
24579         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
24580         interncall to get a method from its metadata token.
24581
24582 2002-09-20  Martin Baulig  <martin@gnome.org>
24583
24584         * debug-mono-symfile.c: Added a few checks for method->header
24585         being non-NULL.  This should never happen, but for the moment
24586         let's use a g_warning() rather than a g_assert().
24587
24588 2002-09-19  Mark Crichton  <crichton@gimp.org>
24589
24590         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
24591         even if support for it isn't present.  Added an #ifdef to fix this.
24592
24593         * socket-io.c: Added checks back for Solaris support.
24594
24595 2002-09-19  Martin Baulig  <martin@gnome.org>
24596
24597         * debug-mono-symfile.c (read_string, write_string): Reflect latest
24598         changes in the symbol file format.
24599
24600 2002-09-18  Martin Baulig  <martin@gnome.org>
24601
24602         * debug-mono-symfile.c: Set version number to 21.
24603
24604 2002-09-18  Dick Porter  <dick@ximian.com>
24605
24606         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
24607         on netbsd.  Fixes bug 30051.
24608
24609 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24610
24611         * reflection.c:
24612         (set_version_from_string): little fix.
24613
24614 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24615
24616         * monosn.c, Makefile.am: added strong name utility.
24617         * reflection.h, reflection.c: implemented delayed signing,
24618         locale, version and hash id assembly attributes.
24619
24620 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24621
24622         * loader.c, metadata.c: load param attributes in signatures.
24623
24624 2002-09-16  Martin Baulig  <martin@gnome.org>
24625
24626         * debug-mono-symfile.c: Added string table with all method names.
24627
24628 2002-09-14  Martin Baulig  <martin@gnome.org>
24629
24630         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
24631         fast method lookup.
24632
24633 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24634
24635         * reflection.c: record the public key token of referenced assemblies.
24636
24637 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24638
24639         * image.c, image.h: added functions to get the strong name and the
24640         public key of an assembly.
24641         * pedump.c: use them.
24642
24643 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
24644
24645         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
24646
24647 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
24648
24649         * marshal.c (mono_marshal_get_managed_wrapper): Added
24650         MONO_TYPE_BOOLEAN 
24651
24652 2002-09-11  Martin Baulig  <martin@gnome.org>
24653
24654         * gc.c: Call GC_unregister_disappearing_link() on all links when
24655         finalizing them, this is necessary to aviod a crash in boehm's
24656         finalize handler.
24657
24658 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24659
24660         * gc.c: handle GetTarget for finalized objects spotted and fixed by
24661         nick@chemlab.org.
24662
24663 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
24664
24665         * icall.c: implemented MonoType::Module.
24666         * reflection.c, reflection.h: mono_module_get_object () from
24667         Tomi Pakarinen <tomi.pakarinen@welho.com>.
24668
24669 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24670
24671         * icall.c: ignore overridden methods in GetMethods ().
24672         Fix for FieldInfo::SetValue().
24673         * object.c: handle float/double in runtime invoke.
24674
24675 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24676
24677         * object.c: allow a constructor to be called again on an object.
24678
24679 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24680
24681         * class.h, class.c: move field layout code to it's own function and
24682         export it. Get an interface id earlier. Move fields in MonoClass
24683         so they are more cache friendly and align the bitfields.
24684         * loader.c: temporary handle get_param_names() for a runtime method.
24685         * reflection.c, reflection.h: more code to handle runtime creation of
24686         types.
24687
24688 2002-09-09  Martin Baulig  <martin@gnome.org>
24689
24690         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
24691         signature with the pinvoke field being set for the actual call.
24692
24693 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24694
24695         * icall.c: removed some unused icalls. Start of map of glib charsets
24696         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
24697
24698 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24699
24700         * debug-helpers.c: break infinite loop (found and fixed by
24701         Holger Arnold <harnold@gmx.de>).
24702
24703 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24704
24705         * icall.c: target may be null in create_delegate.
24706
24707 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24708
24709         * marshal.c: handle a boolean return type.
24710
24711 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24712
24713         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
24714
24715 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24716
24717         * gc.c: fix weakreferences.
24718
24719 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
24720
24721         * icall.c: added icall to get default codepage.
24722
24723 2002-09-03  Dick Porter  <dick@ximian.com>
24724
24725         * threads.h: 
24726         * threads.c: Use MonoThread instead of MonoObject where
24727         apropriate.
24728
24729         Store running thread objects in a hash table, so that we have all
24730         the info to hand when waiting for them to finish
24731         (means we don't need OpenThread() any more, so mingw builds should
24732         be fully functional again.)
24733
24734         * verify.c:
24735         * object.h: Added thread ID to MonoThread
24736
24737 2002-09-03  Martin Baulig  <martin@gnome.org>
24738
24739         * icall.c (System.Reflection.Assembly::get_location): New interncall.
24740
24741 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24742
24743         * icall.c: fixed leak in get_temp_path. Thanks lupus.
24744
24745 2002-09-03  Martin Baulig  <martin@gnome.org>
24746
24747         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
24748         argument to store the end address of the disassembled instruction.
24749
24750         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
24751         here from debug-symfile.h.
24752         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
24753         JIT into this struct.
24754         (MonoSymbolFile): Added `char *image_file' field.
24755         (MonoDebugGetMethodFunc): Removed.
24756         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
24757         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
24758         (mono_debug_find_method): New method.
24759
24760         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
24761         create a full symbol file.
24762         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
24763         and static symbol files.
24764         (mono_debug_find_method): The symbol file keeps an internal method hash,
24765         call this to get a MonoDebugMethodInfo from a MonoMethod.
24766
24767         * debug-symfile.[ch]: Removed.
24768
24769 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
24770
24771         * image.c (do_mono_image_open): Remove linker version check.
24772
24773 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
24774
24775         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
24776         wrappers for instance methods.
24777         
24778 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24779
24780         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
24781
24782 2002-08-28  Dick Porter  <dick@ximian.com>
24783
24784         * Makefile.am: Export HOST_CC for w32 builds
24785
24786 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24787
24788         * file-io.c process.c: MonoString are null terminated, no
24789         need for mono_string_to_utf16() anymore.
24790
24791 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24792
24793         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
24794
24795 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
24796
24797         * icall.c, reflection.h: speedup System.MonoType.
24798
24799 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24800
24801         * reflection.c: allow null as the value of a string argument in
24802         custom attributes constructors.
24803
24804 2002-08-27  Martin Baulig  <martin@gnome.org>
24805
24806         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
24807         `trampoline_address' field.
24808
24809 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
24810
24811         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
24812         check (fixes bug #29486) 
24813
24814 2002-08-27  Martin Baulig  <martin@gnome.org>
24815
24816         * debug-mono-symfile.c: Changed the file format in a way that allows us
24817         open it read-only and to use a specially malloced area for all the
24818         dynamic data.  We can now also generate a symbol file on-the-fly if we're
24819         debugging IL code and there is no MCS generated symbol file for it.
24820
24821 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24822
24823         * object.c: added a define for a good string and array
24824         creation speedup (not enabled by default because we need to deal with
24825         the synch stuff).
24826
24827 2002-08-26  Martin Baulig  <martin@gnome.org>
24828
24829         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
24830         function to create a dynamic symbol file.  This is used by the
24831         debugger to create a symbol file for IL code on-the-fly.
24832
24833 2002-08-26  Martin Baulig  <martin@gnome.org>
24834
24835         * loader.c (mono_lookup_pinvoke_call): Include the error message
24836         from g_module_error() in the error message.
24837
24838 2002-08-24  Martin Baulig  <martin@gnome.org>
24839
24840         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
24841         function to update the symbol file.  The symbol file is mmap()ed
24842         writable, but private.  This allows us to install the symbol file
24843         together with the assembly.
24844
24845 2002-08-24  Martin Baulig  <martin@gnome.org>
24846
24847         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
24848         but they can read the new symbol file format which mcs is now creating.
24849
24850         * debug-symfile.c (mono_debug_find_source_location): Moved to
24851         debug-mono-symfile.c; this is now operating on the new symbol file.
24852
24853 2002-08-23  Martin Baulig  <martin@gnome.org>
24854
24855         * debug-helpers.c (mono_method_desc_from_method): New function to get
24856         a MonoMethodDesc from a MonoMethod.
24857
24858 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24859
24860         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
24861         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
24862
24863 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
24864
24865         * string-icalls.[ch]: make helper methods static.
24866
24867 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24868
24869         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
24870         types to it and to SetValueInternal.
24871
24872         * object.c: Moved handle_enum label to its proper place. This was the
24873         f... bug! ;-)
24874
24875         This time i compiled mcs and gtk-sharp and they both work.
24876
24877 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24878
24879         * icall.c: reverted partially my previous patch until 
24880         object.c:set_value handles enums correcly.
24881
24882 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24883
24884         * icall.c:
24885         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
24886         (ves_icall_System_Environment_get_MachineName): removed warning when
24887         compiling under cygwin.
24888
24889 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24890
24891         * object.c: fixed field_get_value() for reference types.
24892
24893 2002-08-22  Dick Porter  <dick@ximian.com>
24894
24895         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
24896         Don't free a buffer while it's still needed.  Patch from Jonathan
24897         Liger <Jonathan.liger@wanadoo.fr>
24898
24899 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
24900
24901         * icall.c (ves_icall_System_Environment_get_Platform): Add new
24902         internal call.
24903
24904 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
24905
24906         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
24907         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
24908
24909         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
24910         we call unmanaged code which throws exceptions.
24911
24912 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24913
24914         * appdomain.h: added per-domain entry_assembly.
24915         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
24916         arguments.
24917         * icall.c: Assembly::GetEntryAssembly icall.
24918         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
24919         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
24920
24921 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
24922
24923         * appdomain.h, gc.c: added mono_domain_finalize ().
24924
24925 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24926
24927         * object.c:
24928         (mono_print_unhandled_exception): changed g_warning by g_printerr
24929         because g_log has a 1024 characters limit (yeah, i got a big stack
24930         trace). Don't print exception name, that should be in ToString 
24931         returned string.
24932
24933 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24934
24935         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
24936         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
24937
24938 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24939
24940         * object.c:
24941         (mono_print_unhandled_exception): after previous commit, i realized
24942         that MS calls ToString on the exception. I changed this function to
24943         do that. This way we get stack_trace for free.
24944
24945 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24946
24947         * object.c:
24948         (mono_print_unhandled_exception): invoke Message property instead of
24949         getting 'message' field from Exception. Don't allocate memory for
24950         'trace' and 'message' if not needed.
24951
24952 2002-08-18  Dick Porter  <dick@ximian.com>
24953
24954         * unicode.c: Fix asserts to match Encoder.cs checks
24955
24956 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24957
24958         * marshal.c: fix unaligned store issue and a few wrong
24959         opcode argument types.
24960
24961 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24962
24963         * icall.c: added GetUninitializedObjectInternal internal call.
24964
24965 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
24966
24967         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
24968         to the right domain.
24969
24970 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
24971
24972         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
24973
24974         * class.c (class_compute_field_layout): set blittable to false for Strings
24975
24976         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
24977
24978 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24979
24980         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
24981         first chunk of code to create types at runtime. Code to
24982         handle ReflectedType/DeclaringType. Make reflection handles
24983         domain specific.
24984
24985 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
24986
24987         * class.c: set correct name in arrays.
24988
24989 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
24990
24991         * appdomain.c (mono_domain_transfer_object): make it work with
24992         valuetypes. bug fixes.
24993
24994 2002-08-12  Dick Porter  <dick@ximian.com>
24995
24996         * object.h: Rename some parameters to avoid c++ keywords (Patch
24997         from Joseph Wenninger <kde@jowenn.at>)
24998
24999 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
25000
25001         * icall.c: added icall to implement Assembly.GetFile*.
25002
25003 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25004
25005         * reflection.h, reflection.c: code to embed managed resources.
25006
25007 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25008
25009         * class.c: move all the type size stuff into
25010         class_compute_field_layout().
25011
25012 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25013
25014         * class.c: ensure enums have always the correct instance size.
25015         * unicode.c: remove wrong assert.
25016
25017 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25018
25019         * assembly.c: fix mem corruption issue.
25020         * image.h, image.c: added mono_image_get_resource () to access
25021         managed resources.
25022         * icall.c: implemented Assembly.EntryPoint property and some
25023         Managed Resources related internalcalls.
25024
25025
25026 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25027
25028         * image.c, image.h: impemented mono_image_get_entry_point ().
25029         * appdomain.c: use mono_image_get_entry_point.
25030
25031 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25032
25033         * reflection.c: support the object type argument when loading
25034         custom attributes.
25035
25036 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
25037
25038         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
25039         String as return type.
25040
25041 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
25042
25043         * reflection.c: fix encoding of named args for custom attrs to match
25044         the ms implementation. Read them back when instantiating custom
25045         attributes.
25046
25047 2002-08-02  Radek Doulik  <rodo@ximian.com>
25048
25049         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
25050         by Dietmar as quick fix
25051         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
25052         16 as stack size, used on more places as quick fix before Dietmar
25053         will fix it properly
25054
25055 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25056
25057         * object.h, object.c: added accessors for fields and properties.
25058
25059 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25060
25061         * class.c, class.h: made mono_class_get_field_from_name ()
25062         loop on parent types.
25063         Added mono_class_get_property_from_name ().
25064
25065 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25066
25067         * class.c, class.h: move the code to setup the type vtable in its own
25068         function so that it can be reused also for types created at runtime.
25069         Eliminate the "class" identifier from the header file.
25070         * reflection.c: setup the vtable for enums so that we can create
25071         objects for use in SetConstant ().
25072
25073 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
25074
25075         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
25076         instead of the delegate itself as this pointer (bug #28383)
25077
25078 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
25079
25080         * marshal.c (mono_marshal_get_managed_wrapper): added return type
25081         conversions.
25082
25083 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25084
25085         * loader.c: don't set the pinvoke bit on icalls.
25086
25087 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
25088
25089         * debug-helpers.c (mono_method_full_name): only print a number to
25090         indicate wrapper type (so that the output is more readable in traces).
25091
25092 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
25093
25094         * class.c (mono_class_init): include method override patch from Paolo
25095
25096 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
25097
25098         * icall.c: fixed GetTypeCode().
25099
25100 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
25101
25102         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
25103         use real delegate invoke function to make it work with multicast
25104         delegates (fix bug# 28291).
25105
25106 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25107
25108         * object.c: load constant strings.
25109
25110 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25111
25112         * reflection.c: no magic numbers.
25113         * tabledefs.h: security action enum.
25114
25115 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25116
25117         * assembly.c: fix possible memory corruption.
25118
25119 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25120
25121         * reflection.h, reflection.c: added support for linking resources.
25122         * verify.c: check we have an updated corlib.
25123
25124 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
25125
25126         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
25127         string arrays.
25128         (mono_marshal_string_array): null terminate unmanaged string arrays.
25129         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
25130
25131 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25132
25133         * icall.c: Type.GetType () can now return also types from the
25134         calling assembly.
25135
25136 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25137
25138         * loader.h, loader.c: stack walking support.
25139         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
25140         GetCallingAssembly.
25141
25142 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
25143
25144         * marshal.c: added optimisations for blittable types 
25145
25146         * class.c (mono_array_class_get): do not set blittable attribute on arrays
25147         (mono_class_setup_mono_type): set blittable attribute for single
25148         and double.
25149
25150         * marshal.c (mono_string_utf8_to_builder): impl.
25151         (mono_string_builder_to_utf8): impl.
25152         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
25153
25154 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
25155
25156         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
25157         (mono_marshal_get_managed_wrapper): impl. byref types
25158
25159 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25160
25161         * icall.c:
25162         (search_method): don't display debug message. 
25163
25164 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25165
25166         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
25167
25168 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25169
25170         * appdomain.c: set the missing filename when throwing exception.
25171
25172 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25173
25174         * metadata.c (mono_type_size): code cleanup
25175         (mono_type_stack_size): removed some test code
25176
25177 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
25178
25179         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
25180         mono_get_exception_file_not_found now.
25181
25182         * exception.c (mono_exception_from_name_two_strings): New version
25183         that will call a constructor with two string arguments. 
25184         (mono_get_exception_file_not_found): New helper routine, used to
25185         report file-not-found errors.
25186
25187 2002-07-20  Dick Porter  <dick@ximian.com>
25188
25189         * process.h:
25190         * process.c: Pass file handles to CreateProcess
25191         
25192         * icall.c:
25193         * file-io.h:
25194         * file-io.c: Implemented CreatePipe
25195
25196 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25197
25198         * metadata.c (mono_get_param_info): set alignment for value types
25199
25200 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25201
25202         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
25203         Constify mono_domain_assembly_open().
25204         * loader.c: handle null namespace in icalls.
25205
25206 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25207
25208         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
25209         (emit_str_to_ptr_conv): marshal object as structs
25210
25211         * metadata.c (mono_type_to_unmanaged): marshal object as structs
25212
25213         * marshal.c (mono_marshal_get_runtime_invoke): support value types
25214
25215 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
25216
25217         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
25218         (mono_marshal_get_native_wrapper): we an now return value types
25219
25220 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25221
25222         * verify.c: more checks implemented.
25223
25224 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
25225
25226         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
25227         (fix bug #27695)
25228         (mono_marshal_get_native_wrapper): allow byref arguments
25229         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
25230         impl. PtrToStringXXX methods
25231         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
25232         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
25233         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
25234         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
25235         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
25236
25237 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25238
25239         * reflection.c: fix buglet in parsing an assembly name.
25240
25241 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25242
25243         * marshal.c (emit_ptr_to_str_conv): first impl.
25244
25245 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25246
25247         * object.c, class.h: cache the vtable in the class as suggested by
25248         vargaz@freemail.hu (Zoltan Varga).
25249
25250 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25251
25252         * class.h, loader.c: added mono_field_from_token().
25253         * verify.c: first cut of type checking code.
25254
25255 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25256
25257         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
25258
25259 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
25260
25261         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
25262         (fix bug #27782)
25263         (mono_marshal_get_remoting_invoke): impl.
25264         (mono_delegate_begin_invoke): impl.
25265         (mono_mb_emit_save_args): impl.
25266         (mono_delegate_end_invoke): impl.
25267         (mono_marshal_get_delegate_begin_invoke):
25268         (mono_marshal_get_delegate_end_invoke):
25269         (mono_marshal_get_delegate_invoke): generate a special name for
25270         those methods (including the signature) and associate them whith
25271         the delegate class. 
25272
25273 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
25274
25275         * reflection.[ch]: 
25276         (mono_reflection_type_from_name): now it has a MonoImage parameter
25277         which is used as the default image to search the type in. If the image
25278         is NULL or getting the type from it fails, it defaults to corlib.
25279
25280         * icall.c: changed 1 call to mono_reflection_type_from_name to match
25281         new parameter.
25282
25283 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25284
25285         * reflection.c: update the parameter table index.
25286
25287 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25288
25289         * domain.c: don't include the mark byte in the string hash.
25290
25291 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25292
25293         * icall.cs: icall for Type.GetTypeCode ().
25294         * verify: a couple of fixes and disabled local initialization checks.
25295
25296 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
25297
25298         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
25299
25300         * debug-helpers.c (mono_method_full_name): print the type of the
25301         runtime wrapper
25302
25303         * metadata.c (mono_signature_hash): a hash function for signatures
25304         (mono_signature_hash): better hash algorithm
25305
25306         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
25307
25308         * debug-helpers.c (mono_method_full_name): this can now generate
25309         method names with signatures
25310
25311         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
25312         method dont have this pointers.
25313
25314 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25315
25316         * reflection.c: fixup typebuilder tokens.
25317         * image.c: fix buglet.
25318         * marshal.h: remove whitespace.
25319         * metadata.h, metadata.c: reinstate code that was removed.
25320         * verify.c: handle catch directives and fix another couple of bugs.
25321
25322 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
25323
25324         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
25325         (mono_marshal_get_native_wrapper): make it comp. with the old code
25326         (mono_marshal_get_native_wrapper): support boolean
25327         (mono_marshal_get_managed_wrapper): support more types
25328
25329 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
25330
25331         * class.c (class_compute_field_layout): compute class->blittable attribute.
25332
25333 2002-07-09  Dick Porter  <dick@ximian.com>
25334
25335         * threads.c: Make the thread cleaning up cope with threads that
25336         call ExitThread()
25337
25338 2002-07-08  Radek Doulik  <rodo@ximian.com>
25339
25340         * reflection.c (method_encode_code): use non-translated values to
25341         compute finally_start, this fixes exception handling on ppc, yay!
25342
25343         * decimal.h (struct signscale): fix endianess
25344
25345 2002-07-07  Radek Doulik  <rodo@ximian.com>
25346
25347         * reflection.c: swap box_val and not val
25348
25349 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25350
25351         * reflection.c, reflection.h: handle full assembly info in type name.
25352         Handle Type arguments when loading custom attributes.
25353         * icall.c: updated to use new mono_reflection_type_from_name () method.
25354
25355 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25356
25357         * loader.c:
25358         (method_from_memberref): also print assembly name when method not found.
25359
25360 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25361
25362         * icall.c:
25363         (ves_icall_TypeGetProperties): fixed bug #27473. 
25364
25365 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25366
25367         * reflection.c: display image name and token when cannot find the
25368         .ctor for an attribute.
25369
25370 2002-07-05  Martin Baulig  <martin@gnome.org>
25371
25372         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25373
25374 2002-07-04  Dick Porter  <dick@ximian.com>
25375
25376         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
25377         compile on mingw.  This will cause mingw builds to not wait for
25378         subthreads to terminate after the main thread does.  I've lodged a
25379         bug with the mingw developers for them to wrap OpenThread().
25380
25381 2002-07-03  Dick Porter  <dick@ximian.com>
25382
25383         * threads.c: Store thread IDs instead of handles, because
25384         GetCurrentThread() returns a pseudohandle and therefore stores
25385         useless values.  mono_thread_cleanup() continues checking the
25386         array of threads until it is empty, to cope with subthreads
25387         spawning new threads after the main thread has finished.
25388
25389         * profiler.h:
25390         * profiler.c:
25391         * profiler-private.h: Pass the thread ID to thread profiler
25392         functions, instead of a handle
25393
25394 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25395
25396         * verify.c: fixes to make it more usable.
25397         * pedump.c: added --verify code to verify IL code in an assembly.
25398
25399 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25400
25401         * reflection.c: turn errors into warnings to allow compiling corlib.
25402
25403 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
25404
25405         * reflection.c: add special cases to compile corlib.
25406
25407 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25408
25409         * reflection.c: handle properties with only a set method.
25410
25411 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25412
25413         * opcodes.h: add enum with opcodes in opval order.
25414
25415 2002-07-01  Dick Porter  <dick@ximian.com>
25416         
25417         * object.h:
25418         * object.c (mono_runtime_run_main): Removed unneeded argument
25419
25420 2002-06-28  Martin Baulig  <martin@gnome.org>
25421
25422         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25423
25424 2002-06-27  Dick Porter  <dick@ximian.com>
25425
25426         * threads.c: Store the handle in both the parent thread and in the
25427         subthread, to minimise the time between starting a new thread and
25428         storing its ID.
25429
25430 2002-06-26  Dick Porter  <dick@ximian.com>
25431
25432         * appdomain.c (mono_runtime_cleanup): Close the socket library
25433         after all the threads have finished, not before
25434
25435 2002-06-26  Martin Baulig  <martin@gnome.org>
25436
25437         * debug-symfile.c (mono_debug_find_source_location): Added
25438         `guint32 *line_number' argument.  If it's not NULL, store the line number
25439         there and return the file name without the line number.
25440
25441 2002-06-25  Dick Porter  <dick@ximian.com>
25442
25443         * icall.c:
25444         * process.h:
25445         * process.c: Process forking and other support functions
25446
25447 2002-06-25  Dick Porter  <dick@ximian.com>
25448
25449         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
25450         things dont happen when the image is closed.
25451         (mono_image_lookup_resource): Walk the resource section looking
25452         for a particular entry
25453
25454         * cil-coff.h: PE resource section decoding
25455
25456 2002-06-25  Dick Porter  <dick@ximian.com>
25457         
25458         * assembly.h:
25459         * assembly.c: 
25460         (mono_assembly_foreach): Accessor functions to walk the list of
25461         loaded assemblies
25462         (mono_assembly_set_main):
25463         (mono_assembly_get_main): Process methods need to know which
25464         assembly is the "main" one
25465
25466         * object.c (mono_runtime_run_main): Record the main assembly
25467
25468         * debug-helpers.c: Fix typo
25469
25470 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
25471
25472         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
25473         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
25474
25475 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25476
25477         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
25478
25479 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
25480
25481         * image.c (do_mono_image_open): Initialize reference count,
25482         otherwise we leak the MonoImage.
25483
25484 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25485
25486         * reflection.c: small tweak to handle self-hosting.
25487
25488 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25489
25490         * reflection.c: fix type name parse code.
25491
25492 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25493
25494         * reflection.c: break out of the loop.
25495         * image.c: special case corlib.
25496
25497 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25498
25499         * reflection.c: add all the custom attrs at the end to ensure the
25500         ctors have been properly initialized when the attributes are defined
25501         in the current assembly.
25502
25503 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25504
25505         * reflection.c: handle correctly multiple-nested types.
25506
25507 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
25508
25509         * row-indexes.h: fix typos.
25510         * reflection.c: adjust for typos and fix method_def_or_ref
25511         encoding in MethodImpl table.
25512
25513 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25514
25515         * reflection.c: fix entry point patching (thanks Serge!).
25516
25517 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
25518
25519         * verify.c: add check for System.Exception
25520
25521 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25522
25523         * image.c, class.c: minifix for code just c&p'ed.
25524         * reflection.c: warning fix.
25525         * object.h, loader.h, domain.c: load also StringBuilder.
25526
25527 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25528
25529         * marshal.h, marshal.c: some support code to handle complex marshaling.
25530
25531 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25532
25533         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
25534         Better signatures with vtable error dump.
25535
25536 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
25537
25538         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
25539
25540 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
25541
25542         * icall.c (ves_icall_Type_GetField): impl.
25543
25544 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25545
25546         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
25547         to retrieve a marshal description blob for a field or param.
25548
25549 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25550
25551         * reflection.h, reflection.c: change order of nested type emission
25552         to avoid table corruption. The NestedTypes table is sorted.
25553         * icall.c: change order of GetConstructor results to workaround mcs bug.
25554
25555 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25556
25557         * reflection.h, reflection.c: handle field and param marshal
25558         information.
25559
25560 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25561
25562         * icall.c, marshal.c marshal.h: more Marshal class implementation.
25563
25564 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25565
25566         * reflection.c: fix call convention.
25567
25568 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25569
25570         * reflection.h, reflection.c: mono_image_get_memberref_token()
25571         takes a type instead of a class, now. Added
25572         mono_image_get_array_token() to create tokens for the special
25573         multi-dim array methods.
25574
25575 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25576
25577         * assembly.c: handle modules (no assembly table). Split
25578         loading references in its own function.
25579         * class.c: handle moduleref resolution scope.
25580         * image.c, image.h: cache module name in image.
25581
25582 2002-06-07  Martin Baulig  <martin@gnome.org>
25583
25584         * reflection.c (mono_image_get_type_info): Only add a class layout entry
25585         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
25586
25587 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25588
25589         * icall.c: more signature fixes that used uint instead of int.
25590
25591 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25592
25593         * reflection.c: fixed signature of field refs.
25594
25595 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25596
25597         * class.c, reflection.c: handle typerefs of nested types
25598         (both on read and when writing files).
25599
25600 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
25601
25602         * icall.c: fix method signatures that tried to workaround the previous
25603         typo, d'oh!
25604
25605 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25606
25607         * debug-helpers.c: fix typo.
25608
25609 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25610
25611         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
25612         rewrote the PE/COFF writing code (our programs are understood by the
25613         ms runtime, now).
25614
25615 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25616
25617         * gc.c, gc.h, icall.c: weakreference support.
25618
25619 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25620
25621         * Makefile.am, mono-config.c: use $(sysconfdir).
25622
25623 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25624
25625         * icall.c: changed default precision of Double.ToString() to 15.
25626         Fixed memory leak. Unified with Single.ToString.
25627
25628 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
25629
25630         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
25631
25632 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25633
25634         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
25635         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
25636         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
25637         and myself.
25638
25639 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25640
25641         * debug-symfile.c, sysmath.c: yet more compilation fixes.
25642
25643 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25644
25645         * reflection.c, socket-io.c: more compilation fixes.
25646
25647 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25648
25649         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
25650         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
25651         unicode.c: warning and compiler compatibility fixes.
25652
25653 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25654
25655         * class.h, metadata.c: fixed warnings/compilation errors.
25656
25657 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25658
25659         * Makefile.am, mono-config.c, mono-config.h: configuration file
25660         support routines.
25661         * loader.c, loader.h: make Dll mapping configurable at runtime in the
25662         config file. Export methods to insert and lookup mappings.
25663
25664 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25665
25666         * reflection.c: handle types and boxed objects in custom attr
25667         constructors.
25668
25669 2002-05-30  Martin Baulig  <martin@gnome.org>
25670
25671         * debug-symfile.c
25672         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
25673
25674 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
25675
25676         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
25677         to lookup the implmap row for a P/Invoke method.
25678         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
25679         P/Invoke method from the runtime on an as needed basis.
25680
25681 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
25682
25683         * metadata.c (mono_metadata_parse_signature): impl.
25684
25685 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25686
25687         * class.c: handle .pack directive.
25688
25689 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25690
25691         * object.c: initialize static fields with RVA data.
25692
25693 2002-05-25  Martin Baulig  <martin@gnome.org>
25694
25695         * debug-symfile.c
25696         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
25697
25698 2002-05-24  Martin Baulig  <martin@gnome.org>
25699
25700         * debug-symfile.c
25701         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
25702         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
25703         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
25704
25705 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25706
25707         * object.c: special case string ctros in invoke.
25708         * gc.c: silly whitespace changes.
25709
25710 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
25711
25712         * threadpool.[ch]: impl. a threadpool that can
25713         be used by mint and mono.
25714
25715 2002-05-22  Martin Baulig  <martin@gnome.org>
25716
25717         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
25718         The first argument is now a `MonoReflectionModuleBuilder *', the return
25719         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
25720         `methods' field to get the method builder.  The `token' argument is the
25721         unfixed token.
25722
25723         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
25724         invalid characters instead of g_assert_not_reached()ing.  This seems
25725         to be the behaviour of mscorlib.
25726
25727 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
25728
25729         * object.c (mono_runtime_invoke_array): applied patch from Rachel
25730         Hestilow to fix bug #25104
25731
25732 2002-05-21  Martin Baulig  <martin@gnome.org>
25733
25734         * debug-symfile.c (mono_debug_find_source_location): New function.
25735         Looks up an IL offset in the line number table and returns the source
25736         location as a string.
25737
25738 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25739
25740         * icall.c:
25741         (mono_double_ToStringImpl): changed %f by %g until we have something
25742         better.
25743
25744 2002-05-21  Nick Drochak  <ndrochak@gol.com>
25745
25746         * icall.c : Use different name for Math.Pow's icall.  Needed to check
25747         parameters first in C#.
25748
25749 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25750
25751         * icall.c, reflection.h: added icall to get info about an event.
25752
25753 2002-05-20  Radek Doulik  <rodo@ximian.com>
25754
25755         * object.c (mono_value_box): don't use memcpy for boxing on BIG
25756         endian
25757         (mono_value_box): don't use memcpy for small sizes on
25758         architectures with unaligned access
25759
25760 2002-05-20  Martin Baulig  <martin@gnome.org>
25761
25762         * reflection.c (mono_reflection_setup_internal_class): Don't crash
25763         if `tb->parent == NULL'.
25764         (mono_reflection_create_internal_class): New function.  This is
25765         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
25766         for enum types.
25767
25768         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
25769         New interncall.
25770
25771 2002-05-19  Martin Baulig  <martin@gnome.org>
25772
25773         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
25774         argument to get the length, don't default to the array length.
25775
25776 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
25777
25778         * assembly.c (mono_assembly_setrootdir): New function used to
25779         override the MONO_ASSEMBLIES directory.
25780
25781 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25782
25783         * icall.c: ValueType_GetHashCode() initialize local var.
25784
25785 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25786
25787         * reflection.c: sort custom attributes table.
25788
25789 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25790
25791         * reflection.c: support named args in custom attributes (write support).
25792
25793 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25794
25795         * reflection.c: fix finally position calculation.
25796
25797 2002-05-15  Radek Doulik  <rodo@ximian.com>
25798
25799         * reflection.c: fixed endianess at many places
25800
25801         * icall.c (ves_icall_InitializeArray): comment out debug msg
25802
25803 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
25804
25805         * object.c (mono_unhandled_exception): new function to handle
25806         unhandled exceptions.
25807         (mono_unhandled_exception): call the UnhandledException event.
25808         (mono_runtime_delegate_invoke): impl.
25809
25810 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
25811
25812         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
25813         returns the RVA, not the direct pointer to the data. Handle the case
25814         when the class size is fixed.
25815
25816 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25817
25818         * reflection.c: fix some endianess issues.
25819
25820 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
25821
25822         * object.c (mono_runtime_invoke): is now able to catch exceptions.
25823
25824         * threads.c (mono_thread_init): added a callback which is invoked
25825         at thread start.
25826
25827 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
25828         
25829         * icall.c: make GetHashCode return non-negative values.
25830
25831 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
25832
25833         * object.c, icall.c, gc.c: revert to address-based hashcode.
25834
25835 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
25836
25837         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
25838
25839 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25840
25841         * icall.c, class.c: special case <Module>.
25842
25843 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
25844
25845         * icall.c: fix bug in GetNow().
25846
25847 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
25848
25849         * object.c (mono_runtime_class_init): make sure that we call all
25850         static class constructors.
25851
25852 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25853
25854         * reflection.c: sort methodsemantics table.
25855
25856 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25857
25858         * reflection.h, reflection.c: honour init locals setting.
25859
25860 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
25861
25862         * icall.c: copied Double ToStringImpl for Single ToStringImpl
25863
25864 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
25865
25866         * reflection.c: support ContructorBuilders in attribute blob creation.
25867
25868 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25869
25870         * reflection.c: some changes to build a binary that can be run
25871         directly in windows.
25872
25873 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
25874
25875         * loader.c: print a big message when an icall can't be found.
25876
25877 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25878
25879         * string-icalls.c: fix bug 24248.
25880
25881 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
25882
25883         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
25884         icall.c, reflection.h: separate assembly loading by pathname and by
25885         assembly name. Use the MONO_PATH env var to search for assemblies.
25886
25887 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25888
25889         * assembly.c, image.h: add some support for assemblies
25890         with multiple modules.
25891         * class.c, class.h: export mono_class_from_typeref().
25892         * loader.c: remove duplicated code and use mono_class_from_typeref(),
25893         instead.
25894
25895 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25896
25897         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
25898         documentation says (the ECMA one is correct).
25899
25900 2002-05-02  Dick Porter  <dick@ximian.com>
25901
25902         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
25903         Don't name the synchronisation mutex.
25904
25905 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
25906
25907         * rand.c
25908         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
25909         Make the prototypes match.
25910         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
25911         Same.
25912
25913         * icall.c
25914         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
25915         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
25916         all systems have tm.tm_zone, so use strftime() with %Z to print
25917         the timezone abreviation into a temp string.
25918
25919         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
25920         rather than mono_array_addr() on a MonoString on Big Endian
25921         machines.
25922
25923 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
25924
25925         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
25926         fix bug 24041
25927
25928 2002-04-30  Dick Porter  <dick@ximian.com>
25929
25930         * socket-io.c: Cope with SOCKET being an integer rather than a
25931         pointer now.
25932
25933         * threads.c: Added Thread_free_internal, to deal with thread
25934         handle cleanup.  Moved calls to handle_store() and handle_remove()
25935         to start_wrapper(), so each can only be called once.  Allocate
25936         synchronisation blocks with GC_malloc(), and use GC finalisation
25937         to close the handles.
25938
25939         * icall.c: added System.Threading.Thread::Thread_free_internal
25940
25941 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25942
25943         * icall.c: support Environment.Exit, CommandLineArgs().
25944
25945 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25946
25947         * object.c, object.h: added mono_runtime_run_main () and
25948         mono_runtime_get_main_args () for use in System.Environment.
25949
25950 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25951
25952         * gc.c: fix thinko, enable actual finalization since the jit is now
25953         fixed.
25954
25955 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25956
25957         * gc.c, object.c: take into account that an object may be offset wrt the address
25958         returned by GC_malloc().
25959
25960 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
25961
25962         * image.c: handle files without entries in the assembly table (modules).
25963
25964 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
25965
25966         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
25967         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
25968         allowed to be null when it's System.Object class setup.
25969
25970 2002-04-27  Martin Baulig  <martin@gnome.org>
25971
25972         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
25973         if `tb->parent == NULL' rather than crashing.
25974
25975 2002-04-28  Nick Drochak  <ndrochak@gol.com>
25976
25977         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
25978         calling acos() where asin() should have been called.
25979
25980 2002-04-26  Martin Baulig  <martin@gnome.org>
25981
25982         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
25983         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
25984         there's a subdirectory called `System', but we don't want to read that
25985         subdirectory as an assembly.
25986
25987 2002-04-25  Martin Baulig  <martin@gnome.org>
25988
25989         * debug-symfile.c: Reflect latest MonoString changes.
25990
25991 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25992
25993         * rand.c, rand.h: instance method icalls need to have an explicit
25994         this pointer as first argument in the C implementation.
25995
25996 2002-04-25  Nick Drochak <ndrochak@gol.com>
25997
25998         * icall.c: Fix typo in map for GetNonZeroBytes
25999
26000 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26001
26002         * string-icalls.c : String does now passes unit tests without any 
26003         errors, the following changes has been made:
26004         
26005         Implemented replace methods.
26006         Renaming of methods to (try) follow the standard.
26007         Fixed compare ordinal
26008         Made all memory allocated directly to function instead of via icall function.
26009         Small performance fix in is_in_array function
26010                         
26011  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
26012
26013         c (mono_string_Internal_ctor_charp_int_int):
26014         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
26015         sindex < 0, throw ArgumentOutOfRangeException instead of
26016         ArgumentNullException.
26017
26018         Added new check for length == 0, however
26019         I need to make it return String.Empty from the C code.
26020         
26021         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
26022         that calculate the length for us here.
26023         
26024         (mono_string_Internal_ctor_sbytep_int_int): Replaced
26025         mono_string_new_utf16 with mono_string_new, since value is utf8.
26026
26027 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26028
26029         * object.c: register the object for finalization if needed.
26030         Allocate one more char in the string for the terminating 0 char.
26031
26032 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26033
26034         * class.c, class.h, image.c: check if a type implemenst a destructor.
26035         Use the proper key for array class lookups.
26036         * icall.c: register the icalls in the System.GC class.
26037         * gc.c, gc.h: GC-related functions and icalls.
26038
26039 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26040
26041         * icall.c:
26042         * socket-io.c:
26043         * unicode.c: free some strings gotten from mono_string_to_utf8 and
26044         changed a couple of free () by g_free ().
26045
26046         * decimal.c: one-liner in the comments for decimal2string ().
26047
26048 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26049
26050         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
26051
26052 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26053
26054         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
26055         * object.c (mono_runtime_invoke_array) : handle null in params
26056
26057 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26058
26059         * string-icalls.c: fixed bug in split (one off bug)
26060
26061 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26062
26063         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
26064         * icalls.c: added String::Equals as internal method
26065
26066 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26067
26068         * threads.c: fixed bug in the double interlocked functions
26069
26070 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
26071
26072         * threads.c: implemented all of the new interlocked icalls.
26073         * string-icalls.c: fix a bug in insert.
26074         * icalls.c: added the icalls for interlocked, removed old string functions.
26075         
26076 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26077
26078         * loader.c: fix off-by-one error when reading argument names.
26079
26080 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26081
26082         * profiler.c: win32 counter implementation (untested).
26083         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
26084         (the latter needs testing and more complete impl. from win32 folks).
26085
26086 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
26087
26088         * object.c: mono_array_new_full workaround mono_array_class_get
26089         problem.
26090
26091 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26092
26093         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
26094         * object.h (mono_string_chars): Changed casting type.
26095
26096 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26097
26098         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
26099                            method signatures to use gunichar2 instead of gint16.
26100
26101 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
26102
26103         * object.h, object.c: domain-specific versions of mono_object_new and
26104         mono_array_new.
26105
26106 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
26107
26108         * object.c: changed String layout
26109
26110         * string-icalls.c (mono_string_Internal_ctor_chara): added
26111         internal string constructors.
26112
26113 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
26114
26115         * threads.c: pass 'this' to the thread start routine.
26116
26117 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26118
26119         * string-icalls.c: fix IndexOf and LastIndexOf. Now
26120         InternalCompareStr don't call twice mono_string_cmp_char for the last
26121         character. Improved performance in mono_string_cmp_char.
26122
26123 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26124
26125         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
26126         code into its own library: libmonoruntime.
26127
26128 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
26129
26130         * object.h, object.c: changed array format so that szarrays do not
26131         require a bounds structure.
26132         * icall.c, appdomain.c: support for new szarray format.
26133
26134 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
26135
26136         * metadata.c: compare also the retuns type when comparing signatures:
26137         we didn't do this as an optimization since really overloaded methods
26138         must differ also in the arguments, but this doesn't work with
26139         low-level IL code (or when using explicit conversion operators: see
26140         bug#23498 for an example).
26141
26142 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26143
26144         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
26145
26146 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26147
26148         * icall.c: make MonoType::GetElementType its own icall.
26149
26150 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26151
26152         * icall.c: remove MonoMethod_get_Name().
26153         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
26154         object.
26155
26156 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26157
26158         * string-icalls.c: optimized a few methods.
26159
26160 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26161
26162         * icall.c: added all new string internal calls
26163         * string-icalls.c: added, new string internal call implementation.
26164         * object.c: added mono_string_new_size for allocating a string a size
26165
26166 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
26167
26168         * object.c (mono_object_isinst): use the same code as in the
26169         optimized x86 version.
26170
26171 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26172
26173         * profiler.c: TSC-based timer code (faster and more accurate).
26174         Not hooked up in configure, yet (set USE_X86TSC to 1).
26175
26176 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
26177
26178         * profiler.c, profiler.h: track time spent compiling methods.
26179         * threads.c: track thread creation/destruction.
26180
26181 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
26182
26183         * profiler.c, profiler.h, profiler-private.h: profiling interface
26184         and sample implementation. Moved here so that it can be used also by
26185         the jit.
26186
26187 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
26188
26189         * reflection.c, reflection.h: keep types and other handles separate in
26190         the hash tables for referred tokens. Add guid for modules.
26191
26192 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26193
26194         * assembly.c: fix bugs found with valgrind.
26195         * metadata.h, metadata.c: added mono_metadata_guid_heap().
26196
26197 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
26198
26199         * threads: added icall support for getting current domain for
26200                    the thread.
26201  
26202 2002-04-13  Martin Baulig  <martin@gnome.org>
26203
26204         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
26205         (MonoDebugVarInfo): Added `index' field for register based addresses.
26206         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
26207         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
26208         `MonoDebugVarInfo *params' and `guint32 this_offset' with
26209         `MonoDebugVarInfo *this_var'.
26210
26211         * debug-symfile.c (relocate_variable): New static function to write
26212         a location description for a local variable or method parameter.
26213
26214 2002-04-12  Martin Baulig  <martin@gnome.org>
26215
26216         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
26217         stack offset and begin/end scope address of a local variable.
26218         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
26219         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
26220         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
26221
26222         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
26223         Added new relocation types for start/end scope of a local variable.
26224
26225 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26226
26227         * object.h: add mono_object_domain() macro.
26228         * reflection.c: handle typespecs.
26229         * icall.c: MonoMethod::get_Name() implementation.
26230
26231 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26232
26233         * icall.c: String::GetHashCode() icall implementation.
26234
26235 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26236
26237         * icall.c: String::IndexOfAny icall.
26238         * object.c, object.h: make array->max_length more useful.
26239         Intrduced mono_object_class() and mono_string_length() macros.
26240
26241 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26242
26243         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
26244         instead of g_unichar_isdigit.
26245
26246 2002-04-11  Nick Drochak  <ndrochak@gol.com>
26247
26248         * icall.c: Implement a simple Double.ToString().
26249
26250 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26251
26252         * appdomain.h: only io-layer.h is supposed to be included.
26253         * icall.c: explicitly import environ. Fix warning.
26254
26255 2002-04-10  Nick Drochak  <ndrochak@gol.com>
26256
26257         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
26258                 return true even if it's not Daylight Savings time.
26259                 Only return false for the case where the function isn't
26260                 implemented for a plaform (read Windows).
26261
26262 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26263
26264         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
26265         data with a mutex.
26266
26267 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
26268
26269         * mempool.c (mono_mempool_alloc): only use g_malloc when
26270         absolutely necessary.
26271
26272 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26273
26274         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
26275
26276         * class.c (mono_class_vtable): use domain mempool to allocate vtable
26277         (mono_class_proxy_vtable): use domain mempool
26278
26279 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26280
26281         * appdomain.h, appdomain.c: split initialization that requires the
26282         execution engine support into mono_runtime_init().
26283
26284 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26285
26286         * class.c (mono_class_init): don't include vtable inside MonoClass
26287         to save some memory, gather some statistics.
26288         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
26289
26290 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26291
26292         * icall.c: internalcall implementation for ValueType.Equals().
26293
26294 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
26295
26296         * object.c (mono_message_init): moved 
26297         (mono_runtime_exec_main): new arch. independent impl.
26298         (mono_runtime_invoke_array): new method - like
26299         mono_runtime_invoke, but you can pass an array of objects.
26300         (mono_remoting_invoke): new arch. independent impl.
26301         (mono_message_invoke): new arch. independent impl.
26302         (mono_runtime_class_init): new arch. independent impl.
26303         (mono_runtime_object_init): new arch. independent impl.
26304
26305 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26306
26307         * metadata.c, object.c, reflection.c: documented the exported
26308         functions.
26309
26310 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
26311
26312         * icall.c: simpler code to pass the assembly builder data to corlib.
26313         Implement GetNestedTypes() internalcall.
26314
26315 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26316
26317         * class.c: warn if a type can't be loaded.
26318
26319 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
26320
26321         * image.h: typedef MonoImageOpenStatus
26322         * types.h: removed unused file
26323         
26324 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
26325
26326         * icall.c: Enum_ToObject accepts enum value arguments.
26327
26328 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26329
26330         * class.c: move initialization of properties, events and nested
26331         classes, so that they happen for interfaces, too.
26332
26333 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26334
26335         * icall.c: cleanup some ugly casts in Array_SetValue*.
26336
26337 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26338
26339         * icall.c: the values array fro enums is of the correct type, now.
26340         Implement (correctly) getFullName instead of assQualifiedName for
26341         MonoType.
26342         * reflection.h, reflection.c: added mono_type_get_name ().
26343
26344 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26345
26346         * assembly.c, image.h: for each MonoImage, record from wich assembly
26347         it was loaded.
26348         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
26349         Make Type.Assembly work.
26350
26351 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
26352
26353         * debug-symfile.h: use char* instead of gpointer to avoid
26354         unnecessary casts.
26355
26356         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
26357
26358         * icall.c (ves_icall_InternalExecute): impl. FielSetter
26359         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
26360
26361 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
26362
26363         * icall.c (mono_message_init): impl. (code cleanup)
26364         (ves_icall_InternalExecute): impl. FieldGetter
26365
26366         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
26367         defined we call all (non-static)methods through the vtable. 
26368
26369 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
26370
26371         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
26372         finalizer even though the memory is still referenced (and the chunk of
26373         memory is not freed).
26374
26375 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26376
26377         * assembly.c: fix brokeness.
26378
26379 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
26380
26381         * class.c: kill some warnings. Check explicit interface method
26382         implementation also without considering the namespace.
26383         Load also literal strings in static class data.
26384
26385 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
26386
26387         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
26388         (default_assembly_name_resolver): Make the resolver take the
26389         "base" directory where the assembly was originally defined, so we
26390         can load DLLs that are in the same directory as the assembly that
26391         is being referenced.
26392
26393 2002-03-28  Dick Porter  <dick@ximian.com>
26394
26395         * file-io.h: 
26396         * file-io.c:
26397         * socket-io.c: 
26398         * unicode.h: 
26399         * unicode.c: Warning cleanups
26400
26401 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
26402
26403         * object.h, reflection.h: use the correct type instead of MonoObject.
26404
26405 2002-03-28  Martin Baulig  <martin@gnome.org>
26406
26407         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
26408         (mono_debug_update_symbol_file): Initialize classes if necessary.
26409
26410 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26411
26412         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
26413         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
26414
26415 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
26416
26417         * assembly.h: fix function prototype.
26418         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
26419         * mono-endian.h: use const cast.
26420
26421 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26422
26423         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
26424
26425 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26426
26427         * loader.c: don't assert when a typeref can't be loaded, give
26428         a chance to the runtime to trow an exception instead.
26429         * loader.h: fix warning.
26430
26431 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26432
26433         * class.c (mono_class_proxy_vtable): added proxy support
26434
26435 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
26436
26437         * icall.c: removed last of PAL calls, added System.Environment
26438         * file-io.h, file-io.c: MonoIO implementation
26439         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
26440
26441 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26442
26443         * appdomain.c: do not use the byte marker in ldstr table lookup.
26444         * debug-helpers.c: allow two ':' to separate class and method name.
26445         * object.c: allocate arrays bounds with the GC, too.
26446         * verify: add a few more checks.
26447
26448 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
26449
26450         * reflection.c: output also literal strings. Allocate parameter data
26451         with GC_malloc() (thanks, Martin, for catching this!).
26452
26453 2002-03-26  Martin Baulig  <martin@gnome.org>
26454
26455         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
26456         include the `this' offset in the `param_offsets'.
26457
26458 2002-03-25  Martin Baulig  <martin@gnome.org>
26459
26460         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
26461         mono_debug_get_class() function to get the classes. Added new
26462         relocation types for arrays and strings.
26463         (mono_debug_get_class): New static function to search in all
26464         referenced assemblies for a metadata token.
26465
26466         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
26467
26468 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
26469
26470         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
26471         hold gc-allocated objects. Make the string heap a stream like the
26472         others. Removed duplicated code when writing stream info.
26473         Added asserts to catch possible buffer overflows. Set the sorted map
26474         for tables that need sorting. Added some documentation.
26475
26476 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
26477
26478         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
26479         for interned strings and vtables.
26480
26481 2002-03-24  Martin Baulig  <martin@gnome.org>
26482
26483         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
26484         it in the array since it was created with g_slist_prepend().
26485
26486 2002-03-24  Martin Baulig  <martin@gnome.org>
26487
26488         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
26489         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
26490         (mono_debug_method_from_token): Renamed to
26491         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
26492         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
26493
26494         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
26495         relocation types.
26496
26497         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
26498
26499 2002-03-24  Martin Baulig  <martin@gnome.org>
26500
26501         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
26502         (mono_debug_method_from_token): New func.
26503
26504         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
26505         New interncall, calls mono_debug_local_type_from_signature().
26506         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
26507         calls mono_debug_method_from_token().
26508
26509 2002-03-23  Martin Baulig  <martin@gnome.org>
26510
26511         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
26512         specifies the number of bytes to be converted, not the array size.
26513         Return the number of chars, not the number of bytes.
26514         (ves_icall_iconv_get_chars): The `byteCount' argument
26515         specifies the number of bytes to be converted, not the array size.
26516
26517 2002-03-23  Martin Baulig  <martin@gnome.org>
26518
26519         * reflection.h (MonoReflectionSigHelper): New type.
26520
26521         * reflection.c (mono_reflection_sighelper_get_signature_local),
26522         (mono_reflection_sighelper_get_signature_local): New functions.
26523
26524         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
26525         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
26526         interncalls.
26527
26528 2002-03-23  Martin Baulig  <martin@gnome.org>
26529
26530         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
26531         is_writeable is set.
26532         (mono_raw_buffer_update): New function to write the modified map
26533         back to disk.
26534
26535         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
26536
26537         * debug-symfile.c (mono_debug_update_symbol_file): Call
26538         mono_raw_buffer_update() when done writing.
26539
26540 2002-03-23  Martin Baulig  <martin@gnome.org>
26541
26542         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
26543
26544         * debug-symfile.c: Added support for arguments and local variables.
26545
26546 2002-03-23  Dick Porter  <dick@ximian.com>
26547
26548         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
26549         protected by ifdefs, hence breaking the w32 build.
26550
26551 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26552
26553         * object.c: implement is_interned() the right way.
26554
26555 2002-03-21  Martin Baulig  <martin@gnome.org>
26556
26557         * debug-symfile.[ch]: New files to handle debugging information
26558         files. There's also support to dynamically update these symbol
26559         files to include machine dependent information.
26560
26561 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
26562
26563         * threads.c (mono_thread_create): new function to create thread
26564         from C
26565
26566 2002-03-20  Martin Baulig  <martin@gnome.org>
26567
26568         * icall.c (ves_icall_InternalInvoke): Create a new object if the
26569         method is a constructor.
26570         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
26571         points to ves_icall_InternalInvoke().
26572
26573 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
26574
26575         * file-io.c: Flush shouldn't throw exceptions.
26576
26577 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
26578
26579         * file-io.c: FileStream flush support; FileSetLength now
26580         restores file pointer.
26581
26582 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
26583
26584         * class.c: set image for pointer classes.
26585
26586 2002/03/19  Nick Drochak <ndrochak@gol.com>
26587
26588         * sysmath.c: Forgot one.
26589
26590 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
26591
26592         * sysmath.c: Avoid redefining existing names.
26593
26594 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
26595
26596         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
26597         handled by runtime as icall rather than dllimport from libm.so
26598         * file-io.c, file-io.h: fixed handle argument type.
26599
26600 2002-03-18  Dick Porter  <dick@ximian.com>
26601
26602         * reflection.c (mono_image_get_type_info): rename interface to
26603         iface, because of "#define interface struct" on windows.
26604
26605 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
26606
26607         * class.c, class.h: rename and export mono_ptr_class_get().
26608         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
26609         * reflection.c, reflection.h, icall.c: better/saner type name
26610         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
26611         method signatures.
26612
26613 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
26614
26615         * class.c (mono_class_init): removed hardcoded GHC_SLOT
26616
26617         * icall.c (ves_icall_InternalInvoke): impl.
26618
26619 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
26620
26621         * reflection.c: output the interface map table, too.
26622
26623 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
26624
26625         * class.c (class_compute_field_layout): separate computation of 
26626         static field layout
26627
26628 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
26629
26630         * icall.c: added System.Buffer support.
26631         * file-io.c: moved file icalls from PAL to FileStream.
26632
26633 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
26634
26635         * icall.c (ves_icall_System_Object_GetHashCode): impl.
26636
26637 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
26638
26639         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
26640
26641 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
26642
26643         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
26644
26645 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
26646
26647         * debug-helpers.{c,h}: moved here from monograph some useful functions
26648         to locate a method by name/signature in a class or image. Included
26649         also a small and flexible IL disassembler.
26650
26651 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26652
26653         * reflection.c: fixup tokens in methods with small header size, too.
26654
26655 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
26656
26657         * object.c (mono_string_to_utf8): remove assert(!error), instead
26658         print a warning. 
26659
26660 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
26661
26662         * icall.c: update to the new mono_Array_class_get interface.
26663
26664 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
26665
26666         * appdomain.c, object.c: Boehm-GC enable.
26667         * icall.c: make get_data_chunk() support split data requests.
26668         Ensure a class is initialized in more cases. Return only the first
26669         property found in GetProperties() or the compiler gets confused. 
26670         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
26671         * reflection.h, reflection.c: add fixup mechanism for field and method
26672         tokens. Initialize assembly->typeref in a single place. Output
26673         properties after events. Support custom attributes for events, too.
26674         Typo fix for paramter custom attrs.
26675
26676 2002-03-07  Martin Baulig  <martin@gnome.org>
26677
26678         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
26679
26680 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
26681
26682         * class.c (mono_array_class_get): fix. for multi. dim. arrays
26683
26684 2002-03-06  Martin Baulig  <martin@gnome.org>
26685
26686         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
26687         non-zero lower bounds. See testcases #F10-#F13.
26688
26689 2002-03-05  Martin Baulig  <martin@gnome.org>
26690
26691         * exception.c (mono_get_exception_argument_out_of_range): New exception.
26692
26693         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
26694         ves_icall_System_Array_GetValue(), only calculate the absolute array position
26695         here.
26696         (ves_icall_System_Array_SetValue): Likewise.
26697         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
26698         as argument and does the actual work. This function is used when copying a
26699         multi-dimensional array.
26700         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
26701         now do all the widening conversions of value types.
26702         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
26703
26704 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26705
26706         * class.c: remove some magic numbers and use the smbolic names,
26707         instead. Added init_events() to load event info at class init time.
26708         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
26709         and mono_metadata_methods_from_event().
26710         * reflection.h, reflection.c: added support for writing out the evnets
26711         related information.
26712
26713 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26714
26715         * reflection.h, icall.c: use a different method (GetInterfaces)
26716         to gather interface info and add isbyref, isprimitive and
26717         ispointer to the ves_icall_get_type_info() return value.
26718
26719 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
26720
26721         * class.h: stared adding support for events.
26722         * icall.c: split find_members implementation. Added debug icall to get
26723         the address of an object.
26724         * reflection.c: handle TypeBuilders in mono_type_get_object().
26725
26726 2002-03-01  Martin Baulig  <martin@gnome.org>
26727
26728         * icall.c (ves_icall_System_Array_GetLength): This must throw an
26729         ArgumentOutOfRangeException(), not an ArgumentException().
26730         (ves_icall_System_Array_GetLowerBound): Likewise.
26731         (ves_icall_System_Array_GetValue): Improved argument checking.
26732         (ves_icall_System_Array_SetValue): Improved argument checking.
26733
26734 2002-03-01  Martin Baulig  <martin@gnome.org>
26735
26736         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
26737         called with invalid arguments rather than just dying with g_assert().
26738         (ves_icall_System_Array_SetValue): Likewise.
26739         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
26740         raise a NotImplementedException instead.
26741         (ves_icall_System_Array_GetLength): Added argument checking.
26742         (ves_icall_System_Array_GetLowerBound): Added argument checking.
26743
26744 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
26745
26746         * object.h (mono_assert): new macros mono_assert and
26747         mono_assert_not_reached
26748
26749 2002-02-28  Martin Baulig  <martin@gnome.org>
26750
26751         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
26752         and "System::String::IsInterned" to "System::String::_IsInterned".
26753
26754 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
26755
26756         * icall.c: remove hacks for typebuilder. Added icall to create a
26757         modified type from a tybebuilder.
26758         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
26759         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
26760         to create a backing MonoClass for a TypeBuilder.
26761
26762 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26763
26764         * class.c, class.h: more refactoring of class init.
26765         Export mono_class_setup_mono_type() and mono_class_setup_parent().
26766
26767 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
26768
26769         * marshal.c, marshal.h: start of marshaling interface.
26770
26771 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
26772
26773         * icall.c: fix order in assembly qualified name icall.
26774
26775 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
26776
26777         * class.c: do not free str, since we store it in the hash table.
26778         * reflection.h: add label field to MonoILExceptionInfo.
26779         * reflection.c: handle references to more than one assembly. Handle
26780         case when there isn't a module created in the assembly.
26781
26782 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26783
26784         * class.c: Fix typo. Start refactoring of class init code.
26785
26786 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26787
26788         * appdomain.c: exit with 1 on error.
26789         * class.c: we already have the name in MonoClassField.
26790         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
26791         MonoStreamHeader instead of an offset of image->raw_metadata.
26792
26793 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
26794
26795         * appdomain.c (mono_init): Be even more descriptive about the error.
26796
26797 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
26798
26799         * appdomain.c: give the user an informative message when corlib can't
26800         be loaded.
26801
26802 2002-02-26  Martin Baulig  <martin@gnome.org>
26803
26804         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
26805         New icall to get the time zone data.
26806
26807 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26808
26809         * reflection.c: set virtual and raw size of section correctly.
26810         * threads.c: transfer domain information to newly created threads.
26811
26812 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
26813
26814         * class.c: when instancing a class in a domain, load the default
26815         vaules for static fields from the constant table. Fix System.Enum to
26816         not be an enum.
26817         * icall.c: implement Object::GetType() internalcall. Implemented
26818         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
26819         Fixed checking of binding flags in find_members().
26820         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
26821         * reflection.c: handle enumerations when writing to the constant
26822         table. Use a different object cache for types.
26823
26824
26825 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
26826
26827         * object.c (mono_object_isinst): fix for arrays
26828
26829         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
26830
26831 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
26832
26833         * object.c: don't use mprotect ()  and fix intern pool hash table
26834         lookup for big endian systems.
26835
26836 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26837
26838         * icall.c: change type_is_subtype_of () signature.
26839
26840 2002-02-21  Mark Crichton  <crichton@gimp.org>
26841
26842         * rand.c, rand.h: Added random number generator for
26843         System.Security.Cryptography classes.
26844
26845         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
26846
26847         * icall.c: Added System.Security.Cryptography calls.
26848
26849 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
26850
26851         * class.c, icall.c, metadata.c: better support for pointer types.
26852         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
26853         * reflection.c: Add support for getting custom attrs for properties
26854         and simplify some code.
26855
26856 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26857
26858         * icall.c: change getToken () and add custom attribute GetBlob()helper
26859         method.
26860         * reflection.h: add custom attrs array to the reflection builder structures.
26861         * reflection.c: encode and emit custom attributes for all the relevant
26862         reflection objects. Cache fieldref and methodref tokens. Change
26863         mono_image_create_token() interface to take a MonoDynamicAssembly.
26864         More complete custom attributes decoder. Load custom attributes for
26865         Assembly, Field, Method and Constructor objects, too. Make the
26866         returned array an Attribute[] one, not object[]. Added
26867         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
26868         custom attribute constructor.
26869
26870 2002-02-20  Dick Porter  <dick@ximian.com>
26871
26872         * icall.c:
26873         * rawbuffer.c:
26874         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
26875         problem code out for now).
26876
26877 2002-02-19  Radek Doulik  <rodo@ximian.com>
26878
26879         * object.c (mono_ldstr): use hash table to avoid multiple swapping
26880
26881 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
26882
26883         * icall.c: register the GetCustomAttributes method.
26884         * object.c, object.h: add mono_string_new_len ().
26885         * reflection.h, reflection.c: added mono_runtime_invoke(),
26886         mono_install_runtime_invoke(). Added
26887         mono_reflection_get_custom_attrs () to load custom attributes and
26888         create the attribute objects.
26889
26890 2002-02-19  Dick Porter  <dick@ximian.com>
26891         * threads-dummy-types.c:
26892         * threads-dummy-types.h:
26893         * threads-dummy.c:
26894         * threads-dummy.h:
26895         * threads-pthread-types.c:
26896         * threads-pthread-types.h:
26897         * threads-pthread.c:
26898         * threads-pthread.h:  Deleted obsolete files
26899
26900 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
26901
26902         * class.c (mono_class_vtable): runtime init the class when we
26903         allocate static class data.
26904
26905         * icall.c (ves_icall_System_Array_SetValue): check for null values.
26906
26907         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
26908         and String - but we will need generic marshalling support in the
26909         future. 
26910         (mono_init): set the domain name in a ms compatible way
26911
26912         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
26913         String[].
26914
26915 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
26916
26917         * object.c (mono_array_clone): use alloca() instead of g_malloc  
26918         for sizes
26919
26920         * appdomain.c (mono_domain_unload): impl.
26921
26922 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
26923
26924         * appdomain.c, object.c: fix intern pool implementation.
26925         * class.c: fix alignment code.
26926
26927 2002-02-16  Radek Doulik  <rodo@ximian.com>
26928
26929         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
26930         and s2 > s1, just copy lower bytes to be compatible with little
26931         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
26932         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
26933
26934         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
26935         force big_endian to be 1 for big endian machines 
26936         (ves_icall_iconv_new_decoder): ditto
26937
26938 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
26939
26940         * socket-io.c (convert_sockopt_level_and_name): If the system
26941         doesn't define SOL_IP or SOL_TCP, get them by hand using
26942         getprotobyname() and caching the values (because this could be a
26943         slow operation).
26944         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
26945         Use the appropriate struct when the system does support it. Ie,
26946         not all systems have struct ip_mreqn so use struct ip_mreq when
26947         appropriate.
26948
26949 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
26950
26951         * reflection.c: handle finally clauses.
26952
26953 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
26954
26955         * socket-io.c: use g_snprintf() instead of snprintf.
26956
26957 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
26958
26959         * reflection.c (mono_param_get_objects): Cast second argument to
26960         mono_method_get_param_names to a const char** to silence the
26961         compiler warning.
26962
26963         * appdomain.c (mono_domain_assembly_open): Put parens around the
26964         truth statement in the for-loop.
26965
26966         * unicode.c (iconv_convert): Got rid of a compiler warning about
26967         int i being unused when the system has a new iconv.
26968         (iconv_get_length): Same.
26969
26970         * image.c (load_class_names): Cast the second argument to
26971         g_hash_table_insert() to char* to hush compiler warnings about the
26972         arg being a const.
26973         (mono_image_open): Same here.
26974
26975         * socket-io.c: Don't conditionally include sys/filio.h or
26976         sys/sockio.h here anymore since we now get them from
26977         io-layer/io-layer.h
26978         (inet_pton): If the system doesn't support inet_aton, implement
26979         using inet_addr and also #define INADDR_NONE if it isn't defined
26980         by the system.
26981
26982 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
26983
26984         * metadata.c, metadata.h: added function to get packing and size info
26985         of a typedef.
26986         * reflection.h, reflection.c: handle field RVA data. Save info about
26987         the table layout if needed. Assign typedef indexes to all the types
26988         before dumping the info about them to avoid forward reference problems.
26989
26990 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
26991
26992         * socket-io.c (convert_sockopt_level_and_name): ifdef
26993         SO_ACCEPTCONN because it is not defined on my system (old debian)
26994
26995 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
26996
26997         * opcode.c: use stddef.h to get NULL.
26998
26999 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27000
27001         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
27002         for FIONBIO, FIONREAD and SIOCATMARK.
27003         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
27004         define INADDR_NONE and besides, inet_addr() is deprecated and
27005         should not be used. Use inet_pton() instead - it also has the
27006         added bonus that it can easily handle IPv6 addresses as well.
27007         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
27008
27009 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
27010
27011         * decimal.c: remove _MSC_VER conditional.
27012
27013 2002-02-13  Dick Porter  <dick@ximian.com>
27014
27015         * socket-io.c: 
27016         * icall.c: Internal calls for Blocking, Select, Shutdown,
27017         GetSocketOption and SetSocketOption
27018
27019 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27020
27021         * assembly.cs: better resolver: use it instead of some kludgy
27022         code.
27023
27024 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
27025
27026         * reflection.c: the best way to speed-up the compiler is to avoid
27027         infinite loops.
27028
27029 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
27030
27031         * class.c (mono_class_vtable): changed the object layout
27032         (obj->vtable->class). 
27033         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
27034
27035 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27036
27037         * assembly.c: look for assemblies in the assembly dir, too.
27038
27039 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27040
27041         * class.c: fix thinko in mono_class_from_type().
27042
27043 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27044
27045         * exception.h, exception.c: added TypeLoadException.
27046         * object.h, object.c: added mono_array_clone ().
27047         * icall.c: handle throwOnError in AssemblyGetType().
27048         Added Array.Clone().
27049         * opcode.h, opcode.c: use a single value for the opcode val.
27050         Compile fix for non-gcc compilers.
27051
27052 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
27053
27054         * opcodes.c, opcodes.h: export interesting info about opcodes.
27055
27056 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
27057
27058         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
27059         icalls. 
27060
27061         * class.c (class_compute_field_layout): set element_class for enums
27062         (mono_class_create_from_typedef): set element_class for normal classes
27063
27064         * icall.c (ves_icall_System_Enum_get_value): impl.
27065
27066         * class.c (mono_class_create_from_typedef): do not set valuetype
27067         flag for System.ValueType and System.Enum
27068
27069 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
27070
27071         * unicode.c (iconv_convert): fix big endian problem.
27072
27073 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27074
27075         * class.c: add asserts if we are ever going to scribble over memory.
27076         * socket-io.c: not all systems have AF_IRDA defined.
27077
27078 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
27079
27080         * class.c (class_compute_field_layout): do not consider static
27081         fields to compute alignment
27082
27083 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
27084
27085         * appdomain.c (mono_appdomain_get): impl.
27086         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
27087
27088 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
27089
27090         * icall.c: ignore "file://" prefix when loading an assembly.
27091
27092 2002-01-23  Dick Porter  <dick@ximian.com>
27093
27094         * socket-io.c:
27095         * icall.c:
27096         * Makefile.am: Added socket support
27097
27098 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27099
27100         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
27101         code back.  This should return the assemblies that are loaded by
27102         the runtime on behalf of an application domain. 
27103
27104         The current implementation is still broken, it just returns every
27105         assembly loaded, but until we get real applications domain this
27106         will do.
27107
27108 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
27109
27110         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
27111         AppDomain object.
27112
27113 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27114
27115         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
27116         the mono_class_from_name lookup.
27117         (ves_icall_get_parameter_info): ditto.
27118         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
27119         method.
27120         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
27121
27122 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
27123
27124         * class.c: load also nested classes on class init.
27125         System.ValueType instance methods gets passed boxed
27126         values, unless methods in derived classed that get a pointer to the
27127         data.
27128         * icall.c: use better name parsing code in GetType().
27129         * image.c, image.h: add mono_image_loaded ().
27130         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
27131         * reflection.c, reflection.h: added mono_reflection_parse_type().
27132
27133 2002-01-22  Veronica De Santis <veron78@interfree.it>
27134
27135         * icall.c : Added mapping of internal calls for Manual and Auto reset events
27136         * threads.c : Added the implementation of internal calls for events
27137         * threads.h : Added prototypes of internal calls for events
27138         
27139 2002-01-21  Radek Doulik  <rodo@ximian.com>
27140
27141         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
27142
27143 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
27144
27145         * class.c (mono_class_init): set min_align to 1 (instead of 0)
27146         (mono_class_value_size): use min_align
27147
27148 2002-01-20  Dick Porter  <dick@ximian.com>
27149
27150         * threads.h:
27151         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
27152         so it compiles on w32.
27153
27154 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
27155
27156         * metadata.c (mono_type_stack_size): impl.
27157
27158         * class.c (mono_class_get_field): impl. memberref token
27159
27160 2002-01-16 Veronica De Santis <veron78@@interfree.it>
27161
27162         * icall.h : Added the internal calls mapping for CreateMutex_internal
27163                     and ReleaseMutex_internal.
27164         * threads.h : Added the prototype of mutexes internal calls.
27165         * threads.c : Added the implementations of mutexes internal calls.
27166
27167 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27168
27169         * metaparse.h: removed unused file.
27170         * reflection.c, reflection.h: added stream_data_align () function 
27171         to align data in streams and keep stream aligned. Add support for
27172         exception support in method headers.
27173
27174 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
27175
27176         * unicode.c: make iconv_convert () return the number of bytess written
27177         in the output buffer.
27178
27179 2002-01-15  Dick Porter  <dick@ximian.com>
27180         * threads.c: Make the runtime's idea of infinite timeouts coincide
27181         with the class library's
27182
27183         Fix a particularly egregious bug in mono_thread_cleanup(). That
27184         code was so utterly bogus it must have been written on a Monday.
27185
27186 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27187
27188         * reflection.h: add subtypes field to TypeBuilder.
27189         * reflection.c: encode constants for literal fields.
27190         Handle subtypes. Fix user string token (and add a zero byte)
27191         at the end.
27192         
27193 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
27194
27195         * class.c (mono_class_init): bug fix: assign slot numbers for
27196         abstract methods.
27197
27198 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27199
27200         * reflection.c: don't try to output a code RVA for abstract methods.
27201         Small fixes for method header format. Output parameter info to the
27202         ParamDef table. Save method overriding info to MethodImpl table.
27203         Fix property support. Allow typedef.extends to be a type in the
27204         building assembly.
27205         * verify.c: fix off-by-one error.
27206
27207 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
27208
27209         * class.c: fix mono_class_from_mono_type () for szarray types.
27210         Remove unused cache check in mono_class_from_type_spec().
27211         * icall.c: *type_from_name () functions handle simple arrays and byref.
27212         * reflection.c: handle byref and szarray types. Handle methods without
27213         body (gets P/Invoke compilation working). Handle types and fields in
27214         get_token ().
27215         * reflection.h: add rank to MonoTypeInfo.
27216
27217 2002-01-10  Dick Porter  <dick@ximian.com>
27218
27219         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
27220         internal calls
27221
27222 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27223
27224         * icall.c: initialize class in type_from_handle ().
27225         Loop also in parent classes for get_method ().
27226         * reflection.c: properly encode class and valuetype types.
27227         Start on encoding TypeBuilder types. Handle fieldrefs.
27228         Use correct length when registering a user string.
27229         Handle ConstructorBuilder and MonoMethod in get_token ().
27230         Make mono_type_get_object () aware of cached types.
27231         * object.c: back out change to mono_string_new ().
27232
27233 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
27234         * object.c: mono_string_new should return a NULL when the string 
27235         passed in is NULL -- not try to deference it.
27236         
27237 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27238
27239         * icall.c: hack to make IsSubType work for TypeBuilders.
27240         * reflection.c: emit constructors before methods.
27241         Retrieve param names in mono_param_get_objects().
27242
27243 2002/01/05  Nick Drochak  <ndrochak@gol.com>
27244
27245         * Makefile.am: fix list of headers and sources so automake 1.5
27246         doesn't complain. Removed \# at end of list.
27247
27248 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27249
27250         * reflection.c: get token for a method ref. Set return type of
27251         constructor to void.
27252         * loader.c: debug message.
27253         * class.c: typo fix.
27254
27255 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
27256
27257         * icall.c: fix array init with rank > 1. FindMembers
27258         loops in parent class as well.
27259         * image.c: do not insert nested types in name cache.
27260         * reflection.c: warning fix.
27261         * reflection.h: add override method (for interface impl).
27262
27263 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
27264
27265         * metadata.c: fix customattr decoding.
27266
27267 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
27268
27269         * rawbuffer.cs: Added native Win32 implementation, avoids using
27270         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
27271
27272 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
27273
27274         * class.c: make the low-level routines handle the cache.
27275
27276 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
27277
27278         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
27279
27280 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
27281
27282         * class.c: fix mono_array_element_size() for objects.
27283         * class.h, class.c: add properties to MonoClass and load them
27284         at init time.
27285         * icall.c: check with isinst() when assigning a value to an array
27286         instead of requiring the classes to match exactly.
27287         Implemented icall for System.Type::GetType().
27288         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
27289         enums. Handle bindingflags when looking for methods and fields.
27290         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
27291         and mono_metadata_methods_from_property().
27292         * reflection.h, reflection.c: added structures for propreties,
27293         parameters and enums. Implemented mono_property_get_object() and
27294         mono_param_get_objects().
27295
27296 2001-12-18  Dick Porter  <dick@ximian.com>
27297
27298         * file-io.c: Use mono_string_to_utf16() instead of
27299         mono_string_chars()
27300
27301         * object.c: Added mono_string_to_utf16(), which copies the non
27302         NULL-terminated MonoString into a new double-null-terminated
27303         buffer.
27304
27305 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
27306
27307         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
27308
27309 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
27310
27311         * file-io.c: raise exceptions if handle is invalid.
27312
27313 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
27314
27315         * assembly.c: yet another check for mscorlib.
27316         * class.c, class.h: load nesting info for classes.
27317         * icall.c: many new functions to support the Reflection classes.
27318         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
27319         * reflection.h, reflection.c: mono_image_create_token(),
27320         mono_assembly_get_object(), mono_type_get_object(),
27321         mono_method_get_object(), mono_field_get_object(): methods to return
27322         objects that parallel the C representation of assemblies, types,
27323         methods, fields.
27324
27325 2001-12-11  Dick Porter  <dick@ximian.com>
27326
27327         * icall.c:
27328         * file-io.c: Internal calls for file IO.
27329
27330 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
27331
27332         * tabledefs.h: missing FileAttributes.
27333         * verify.h, verify.c: use is_valid_string () to simplify and check for
27334         valid strings more correctly. Fix warnings and speeling.
27335         Check more tables: Filed, File, ModuleRef, StandAloneSig.
27336         Check code: branches, maxstack, method calls.
27337
27338 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
27339
27340         * object.c (mono_object_allocate): removed static, so that the jit
27341         can allocate value types.
27342
27343         * icall.c (ves_icall_System_DateTime_GetNow): impl.
27344
27345 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27346
27347         * class.c: init enum types right away and register the
27348         token->MonoClass map in mono_class_create_from_typedef ().
27349         * verify.h, verify.c: first cut of the verifier.
27350         * pedump.c: add --verify switch to verify metadata tables.
27351         * tabledefs.h: add some missing enums.
27352
27353 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
27354
27355         * class.c (mono_install_runtime_class_init): impl.
27356         (mono_class_init): renamed mono_class_metadata_init to
27357         mono_class_init, also removed the metadata_inited flag
27358
27359         * object.c (mono_object_isinst): use faster algorithm
27360
27361 2001-11-30  Radek Doulik  <rodo@ximian.com>
27362
27363         * mono-endian.h: reverted last change
27364         added function prototypes
27365
27366         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
27367         add mono-endian.c back
27368
27369         * mono-endian.c: returned back, as Paolo pointed out, it's needed
27370         for unaligned access, I've mistaked it with endianess. I am
27371         sorry.
27372         (mono_read16): fix reverted endianess
27373         (mono_read64): ditto
27374         (mono_read32): ditto
27375
27376 2001-11-30  Dick Porter  <dick@ximian.com>
27377
27378         * exception.c: Implement mono_exception_from_name()
27379
27380 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27381
27382         * metadata.h, metadata.c: remove params_size and locals_size and their
27383         calculation from the metadata code: they are only usefult to the
27384         interp.
27385
27386 2001-11-29  Radek Doulik  <rodo@ximian.com>
27387
27388         * object.c (mono_ldstr): swap bytes here, it's probably not the
27389         best place, but works for me now, I'll redo it once I know mono
27390         better, also note that I add PROT_WRITE and don't reset back, also
27391         note that it's only affects big endians, so x86 should be OK
27392
27393         * mono-endian.h (read16): use just glib macros for both endians
27394
27395         * mono-endian.c: removed as glib macros are used in in
27396         mono-endian.h so we don't need to care about endianess for read
27397         macros as glib does that for us already
27398
27399 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
27400
27401         * class.h, class.h: take minimum alignment into consideration so
27402         that the fields of a class remain aligned also when in an array.
27403
27404 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27405
27406         * loader.h, loader.c: add mono_method_get_param_names().
27407         * class.c: 0-init class fields.
27408
27409 2001-11-26  Dick Porter  <dick@ximian.com>
27410
27411         * icall.c:
27412         * threads-types.h:
27413         * threads.c: New file that handles System.Threading on all platforms
27414
27415         * object.c: 
27416         * object.h: Remove the synchronisation struct from MonoObject,
27417         replace it with a pointer that gets initialised on demand
27418
27419         * Makefile.am: Replace all the system-specific threading code with
27420         a single file that uses the new wrapper library
27421
27422 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
27423
27424         * class.c, class.h: add mono_install_trampoline() so that the runtime
27425         can register a function to create a trampoline: removes the ugly
27426         requirement that a runtime needed to export arch_create_jit_trampoline.
27427         * object.h, object.c: added mono_install_handler() so that the runtime
27428         can install an handler for exceptions generated in C code (with
27429         mono_raise_exception()). Added C struct for System.Delegate.
27430         * pedump.c: removed arch_create_jit_trampoline.
27431         * reflection.c: some cleanups to allow registering user strings and
27432         later getting a token for methodrefs and fieldrefs before the assembly
27433         is built.
27434         * row-indexes.h: updates and fixes from the new ECMA specs.
27435
27436 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
27437
27438         * class.h, class.c: add enum_basetype field to MonoClass.
27439         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
27440         to get index in the constant table reated to a field, param or
27441         property.
27442         * reflection.h, reflection.c: handle constructors. Set public-key and
27443         version number of the built assembly to 0.
27444         * row-indexes.h: update from new ECMA spec.
27445
27446 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27447
27448         * class.h, class.c: add a max_interface_id to MonoClass.
27449         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
27450         since it's used to do that. Added mono_type_type_from_obj().
27451         Make GetType() return NULL instead of segfaulting if the type was not
27452         found. Handle simple arrays in assQualifiedName.
27453         * object.h: add a struct to represent an Exception.
27454         * reflection.c: output call convention in method signature.
27455         Add code to support P/Invoke methods and fixed offsets for fields.
27456
27457 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
27458
27459         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
27460         the value.
27461         * icall.c: use mono_array_addr instead of array->vector: fixes the
27462         reflection image writing.
27463         * reflection.c: init call convention byte to 0 in method signature.
27464         Encode the property signature. Don't output property-related methods
27465         twice. Really process the properties for a type (don't cast a field to
27466         a property, my mom always told me that).
27467         Fix 64 bit issues in pointer alignment in a different and more
27468         readable way.
27469
27470 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
27471
27472         * loader.h: Removed type class from MonoDefaults, added monotype
27473
27474         * loader.c: Loaded MonoType, removed loading of Type
27475
27476         * icall.c (my_mono_new_object): Now returns a System.MonoType,
27477         and fills in System.Type._impl with a RuntimeTypeHandle rather
27478         than the actual MonoClass *
27479
27480         (ves_icall_type_from_handle): change from type_class to
27481         monotype_class
27482
27483         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
27484         implemented
27485
27486         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
27487         implemented
27488
27489         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
27490
27491         (ves_icall_System_Reflection_Assembly_GetType): implemented
27492
27493         (ves_icall_System_MonoType_assQualifiedName): implemented
27494
27495         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
27496
27497 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
27498
27499         * assembly.c (mono_assembly_open): Implement a cache for the
27500         assemblies. 
27501
27502         (mono_assembly_close): only destroy the assembly when the last
27503         reference is gone.
27504         
27505 2001-11-09  Dick Porter  <dick@ximian.com>
27506
27507         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
27508
27509 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
27510
27511         * class.c (mono_class_metadata_init): bug fix: compute the right slot
27512
27513 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27514
27515         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
27516         from Martin Weindel.
27517         * object.h: add mono_string_chars ().
27518
27519 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
27520
27521         * reflection.c (build_compressed_metadata): Eliminates warnings
27522         and uses 64-bit clean code.
27523
27524         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
27525         (mono_type_equal): Change signature to eliminate warnings.
27526
27527 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27528
27529         * icall.c, loader.c: remove the internalcall array constructors.
27530         Changes to match the new MonoArray structure.
27531         * object.h, object.c: an array object doesn't allocate an extra
27532         vector. Add mono_array_new_full () to create jagged arrays easily.
27533
27534 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27535
27536         * metadata.h, metadata.c: add mono_metadata_field_info () to
27537         retreive all the info about a field from vairous tables.
27538         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
27539         * class.h, class.c: augment MonoClassField with more info.
27540         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
27541         policy and load a field's RVA if needed.
27542
27543 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
27544
27545         * class.c (mono_class_metadata_init): create a trampoline for all
27546         virtual functions instead of actually compiling them.
27547
27548 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
27549
27550         * class.h, class.c: include name in MonoClassField.
27551         * class.c: fix fundamental type of System.Object and System.String.
27552         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
27553         tokens in ldtoken.
27554         * icall.c: remove internalcalls for the Reflection stuff that is now
27555         done in C# code.
27556         * loader.c: mono_field_from_memberref () implementation.
27557         * mono-endian.c: thinko (s/struct/union/g).
27558         * object.c, object.h: make the mono_string_* prototypes actually use
27559         MonoString instead of MonoObject.
27560         * reflection.c, reflection.h: updates for changes in the reflection
27561         code in corlib: we use C structures that map to the actual C# classes.
27562         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
27563         fat method header if needed and use the info from the ILGenerator for
27564         methods. Handle fields in types. Misc fixes.
27565
27566 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
27567
27568         * class.c (mono_class_metadata_init): bug fix: always allocate
27569         space for static class data
27570
27571 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
27572
27573         * class.c (mono_compute_relative_numbering): use relative
27574         numbering to support fast runtime type checks.
27575
27576 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
27577
27578         * class.c (mono_class_create_from_typeref): added debugging output
27579         to print class name when MonoDummy is returned instead of real class
27580
27581 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
27582
27583         * class.c (mono_class_metadata_init): interface offset table now
27584         contains pointers into the vtable - this is more efficient for the jit
27585
27586 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
27587
27588         * class.c (mono_class_metadata_init): use a temporary vtable (the
27589         old algorithm only worked for the interpreter, but not for the jit)
27590
27591 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
27592
27593         * loader.c (method_from_memberref): use mono_class_get to get the
27594         class of an array instead of using System.Array directly.
27595         (mono_get_method): also add MEMBERREF methods to the method cache
27596         which usefull for arrays.
27597
27598 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
27599
27600         * pedump.c (arch_compile_method): added to compute vtable entry
27601
27602         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
27603         number of interfaces.
27604         
27605         * class.h: merged MonoArrayClass into MonoClass
27606
27607         * class.c (mono_class_create_from_typedef): compute the vtable size and
27608         allocate space to include the vtable inside MonoClass
27609         (mono_class_metadata_init): initialize the vtable
27610
27611 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
27612
27613         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
27614         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
27615         * image.c: endian fixes by Laurent Rioux.
27616         * object.h, object.c: rename MonoStringObject to MonoString and
27617         MonoArrayObject to MonoArray. Change some function names to conform to
27618         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
27619         guint16* as first argument, so don't use char*.
27620         Provide macros to do the interesting things on arrays in a portable way.
27621         * threads-pthread.c: updates for the API changes and #include <sched.h>
27622         (required for sched_yield()).
27623         * icall.c: updates for the API changes above.
27624         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
27625         platforms that need them.
27626
27627 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
27628
27629         * class.c: set the correct type for all the fundamental
27630         type when loading the class.
27631
27632 2001-10-05  Dick Porter  <dick@ximian.com>
27633
27634         * threads-pthread.c (pthread_mutex_timedlock): Simple
27635         compatibility version for C libraries that lack this call.
27636
27637 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27638
27639         * class.c: MonoTypes stored in MonoClass are stored as
27640         fundamental MonoTypes when the class represents a
27641         fundamental type (System.Int32, ...).
27642         The TypeHandle return by ldtoken is a MonoType*.
27643         * icall.c: ves_icall_get_data_chunk () write out all the
27644         PE/COFF stuff. Implement ves_icall_define_method (),
27645         ves_icall_set_method_body (), ves_icall_type_from_handle ().
27646         * image.c: properly skip unknown streams.
27647         * loader.h, loader.c: add type_class to mono_defaults.
27648         * metadata.c, metadata.h: export compute_size () as
27649         mono_metadata_compute_size () with a better interface.
27650         Typo and C&P fixes.
27651         * pedump.c: don't try to print the entry point RVA if there is no entry point.
27652         * reflection.c, reflection.h: many cleanups, fixes, output method
27653         signatures and headers, typedef and typeref info, compress the metadata
27654         tables, output all the heap streams, cli header etc.
27655         * row-indexes.h: typo fixes.
27656
27657 2001-10-04  Dick Porter  <dick@ximian.com>
27658
27659         * object.h: Add a synchronisation mutex struct to MonoObject
27660
27661         * object.c (mono_new_object): Initialise the object
27662         synchronisation mutexes
27663
27664         * icall.c: System.Threading.Monitor internal calls
27665         
27666         * threads-pthread.h:
27667         * threads-pthread.c: System.Threading.Monitor internal calls
27668
27669         * threads-types.h: New file, includes the system-specific thread
27670         structures
27671         
27672         * threads-pthread-types.h:
27673         * threads-pthread-types.c: New files, handle pthread-specific
27674         synchronisation types
27675
27676         * threads-dummy-types.h: 
27677         * threads-dummy-types.c: New files of dummy support for
27678         thread-specific types
27679
27680         * metadata.c:
27681         * image.c:
27682         * pedump.c: include mono-endian.h not endian.h
27683         
27684         * Makefile.am: More threads files.
27685         Name mono-endian.h not endian.h
27686
27687 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
27688
27689         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
27690         stuff and implement a few more bits.
27691         * icall.c: a field needs to be dereferenced twice. Do not use the same
27692         name for two variables in the same scope.
27693         * image.c, image.h: cleanups.
27694
27695 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
27696
27697         * class.c (mono_class_metadata_init): bug fix: compute the right size
27698
27699 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
27700
27701         * icall.c: implemented some of the Reflection internalcalls.
27702         * image.c, image.h: start writing out the PE/COFF image.
27703         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
27704         that does the reverse than decode_blob_size ().
27705         * object.c: use mono_metadata_encode_value (). Move here
27706         temporary implementation of mono_string_to_utf8 ().
27707         * rawbuffer.c: make malloc_map static.
27708
27709 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27710
27711         * metadata.c: fix type comparison for arrays.
27712         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
27713         Added a couple of new classes to monodefaults.
27714         * icall.c: added a couple of Reflection-related internalcalls.
27715         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
27716         Added a byval_arg MonoType to MonoClass.
27717
27718 2001-09-28  Dick Porter  <dick@ximian.com>
27719
27720         * icall.c:
27721         * threads-pthread.h: 
27722         * threads-pthread.c: Implemented internal calls for
27723         LocalDataStoreSlot operations.  Applied mutexes around all shared
27724         data.  Reworked the thread creation and Start() operations to
27725         avoid a race condition.
27726         
27727         * threads-dummy.h:
27728         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
27729
27730 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
27731
27732         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
27733
27734 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
27735
27736         * class.c, loader.c: warn and return NULL instead of erroring out.
27737         * icall.c: added System.AppDomain::getCurDomain().
27738         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
27739
27740 2001-09-25  Dick Porter  <dick@ximian.com>
27741
27742         * threads-pthread.h:
27743         * threads-pthread.c: Implemented timed thread joining and added
27744         System.Threading.Thread::Join_internal internal call
27745
27746         * icall.c: Added System.Threading.Thread::Join_internal internal call
27747
27748         * threads-dummy.h:
27749         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
27750
27751 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
27752
27753         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
27754         mono_string_intern () to implement the semantics of the ldstr opcode
27755         and the interning of System.Strings.
27756         * icall.c: provide hooks to make String::IsIntern and String::Intern
27757         internalcalls.
27758
27759 2001-09-23  Dick Porter  <dick@ximian.com>
27760
27761         * threads-dummy.c: 
27762         * threads-dummy.h: New files of dummy threading routines
27763
27764         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
27765         support code based on system specifics
27766
27767         Rename PTHREAD_LIBS to THREAD_LIBS
27768         
27769 2001-09-23  Dick Porter  <dick@ximian.com>
27770
27771         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
27772         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
27773         internal calls.
27774         (mono_thread_init): Set up a Thread object instance to return when
27775         the main thread calls Thread.CurrentThread
27776         (mono_thread_cleanup): Wait for all subthreads to exit
27777
27778         * icall.c: New internal calls for System.Threading.Thread::Sleep
27779         (including Schedule) and CurrentThread
27780
27781         * threads.h: New file, to insulate thread-specific stuff from the
27782         rest of the code
27783
27784 2001-09-21  Dick Porter  <dick@ximian.com>
27785
27786         * threads-pthread.h: 
27787         * threads-pthread.c: New file, for handling pthreads-style
27788         threading support.  Start() now starts a new thread and executes
27789         the ThreadStart delegate instance.
27790
27791         * icall.c: Added the internalcall for
27792         System.Threading.Thread::Start_internal
27793
27794         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
27795
27796 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
27797
27798         * loader.c: work around the different signatures for delegates
27799         constructors csc generates in compiled code vs the ones compiled in mscorlib.
27800
27801 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
27802
27803         * class.h, class.c: add mono_class_get_field_from_name ().
27804         * *: Fix C comments and other ANSI C issues.
27805
27806 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
27807
27808         * endian.h, assembly.c: fix some endianness issues.
27809
27810 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
27811
27812         * loader.h, load.c: add delegate_class to mono_defaults.
27813         Handle runtime provided methods in mono_get_method ().
27814
27815 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
27816
27817         * loader.c (mono_get_method): use pinvoke for internal call
27818
27819         * icall.c: use pinvoke for internal call
27820
27821         * loader.c (method_from_memberref): set the method name
27822
27823 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
27824
27825         * metadata.c: help the compiler generate better code for
27826         mono_class_from_mono_type ().
27827
27828 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
27829
27830         * class.c (mono_class_metadata_init): delayed computing of the
27831         class size to mono_class_metadata_init ()
27832
27833 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
27834
27835         * class.c, class.h: add an interfaces member to MonoClass.
27836         * image.c, image.h: add assembly_name field to MonoImage
27837         from the assembly table.
27838         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
27839
27840 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
27841
27842         * class.c: Handle Array in mono_class_from_mono_type ().
27843         * metadata.c, pedump.c: some endian fixes.
27844
27845 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
27846
27847         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
27848         * metadata.c: fix small problem introduced with the latest commit.
27849
27850 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
27851
27852         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
27853         We don't need a MonoMetadata pointer anymore to compare signatures in
27854         mono_metadata_signature_equal (), update callers.
27855         Reduced memory usage an number of allocations for MonoMethodHeader and
27856         MonoMethodSignature.
27857
27858 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
27859
27860         * metadata.c: added compare for szarray.
27861
27862 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
27863
27864         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
27865         and add a couple more types to it and mono_defaults. Give an hint on
27866         classes that need implementing in our corlib and are referenced
27867         in mscorlib.
27868
27869 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
27870
27871         * class.h, class.c: keep track if a class is also an Enum.
27872         * loader.c: Implement a couple more types for use in libffi
27873         marshalling. Gives better diagnostics when failing to dlopen
27874         a library. Set method->klass for P/Invoke methods, too.
27875
27876 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
27877
27878         * class.c, class.h: add a MonoType this_arg to MonoClass that
27879         represents a pointer to an object of the class' type that
27880         can be used by the interpreter and later the type cache.
27881         Add best guess alignment info for valuetype objects.
27882
27883 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
27884
27885         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
27886         into MonoType: one less level of indirection and allocation and
27887         simplifies quite a bit of code. Added cache for MonoTypes that are
27888         used frequently, so that we don't need to allocate them all the time.
27889
27890 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
27891
27892         * class.c (mono_class_create_from_typedef): System.Enum is also a
27893         value type, although it does not derive from System.ValueType
27894         (maybe a bug in the ms compiler?)
27895
27896         * metadata.c (mono_type_size): return the right size for value types
27897
27898         * loader.c (mono_get_method): only initialize method header if not abstract
27899
27900         * class.c (mono_class_from_mono_type): use mono_default values. 
27901
27902 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
27903
27904         * *: use MonoClass pointers instead of <type_tokens>
27905         
27906         * class.h: new flag: metadata_inited.
27907
27908         * class.c (mono_class_metadata_init): impl.
27909         (mono_class_instance_size): impl.
27910         (mono_class_data_size): impl.
27911
27912 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27913
27914         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
27915         MonoClass now has the name and name_space fields. 
27916         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
27917         mono_get_method () takes and optional MonoClass as argument.
27918         Removed mono_typedef_from_name() and added mono_class_token_from_name()
27919         instead that takes advantage of a map from class names to typedef
27920         tokens in MonoImage.
27921
27922 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
27923
27924         * metadata.c: zero is not a valid alignment boundary.
27925         Merge MONO_TYPE_VOID in default decoding code.
27926
27927 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
27928
27929         * image.h: merged MonoMetadata into MonoImage
27930
27931         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
27932         identify the type of elements.
27933
27934 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
27935
27936         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
27937         * cil-coff.h: split MonoMSDOSHeader and add size info.
27938         * image.c: add some consistency checks.
27939         * metadata.c: fix row size computation: one programmer
27940         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
27941         add explanation for the locator routine.
27942         Fix decoding of size in method header.
27943         
27944 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
27945
27946         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
27947         (g_concat_dir_and_file): Bring g_concat_dir_and_file
27948         function from gnome-libs.  This uses the right path separator
27949         based on the OS, and also works around a bug in some systems where
27950         a double slash is not allowed. 
27951         (default_assembly_name_resolver): Use g_concat_dir_and_file
27952         (mono_assembly_open): ditto.
27953
27954 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
27955
27956         * metadata.c (mono_metadata_signature_equal): impl.
27957
27958         * *: void is now a realy MonoType (instead of using NULL)
27959         
27960         * metadata.c (do_mono_metadata_parse_type): use
27961         mono_metadata_parse_type to parse void value.
27962
27963 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
27964
27965         * metadata.c, metadata.h: in the signature and method header store
27966         only the space required for holding the loca vars and incoming arguments.
27967
27968 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
27969
27970         * metadata.c (do_mono_metadata_parse_type): treat void like any
27971         other type (instead of assigning NULL);
27972
27973 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
27974
27975         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
27976
27977 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
27978
27979         * image.c (do_mono_image_open): added a cache for arrays.
27980
27981 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
27982
27983         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
27984         decode a single column from a row in a metadata table and changes
27985         to take advantage of it in the typedef locator (gives a nice speed up).
27986         Store offset info for function params.
27987
27988 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
27989
27990         * image.h (MONO_IMAGE_IS_CORLIB): removed 
27991
27992 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
27993
27994         * assembly.c: how could mono_assembly_close () had ever worked?
27995         * metadata.c, metadata.h: provide offset info for local vars.
27996         Implement mono_type_size () to take care of alignment as well
27997         as size (it was mono_field_type_size in cli/class.c before).
27998
27999 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
28000
28001         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
28002
28003         * assembly.h (CORLIB_NAME): set to corlib.dll
28004
28005         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
28006
28007 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28008
28009         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
28010         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
28011         tokentype.h: massive namespace cleanup.
28012
28013 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
28014
28015         * metadata.h, metadata.c: decode exception clauses when parsing method header.
28016
28017 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
28018
28019         * metadata.c (mono_metadata_free_type): added check for type !=
28020         NULL (void) before calling mono_metadata_free_type()
28021
28022 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
28023
28024         * metadata.h, row_indexes.h: added header with enumerations to use
28025         to index in the columns from tables in metadata and to decode coded
28026         tokens: we should start using this instead of embedding magic numbers
28027         all over the code.
28028
28029 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
28030
28031         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
28032         Move metadata_t info from cli_image_info_t to MonoImage, where
28033         it's easily accessible. Changed all the uses accordingly.
28034         Added the method and class caches to MonoImage.
28035         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
28036         and mono_metadata_decode_value () signature to be more consistent
28037         with the other parse functions (and simplify code). Taken advantage
28038         of zero-length array allocation with GCC. Removed reduntant (and
28039         wrong) MonoFieldType struct and use MonoParam instead. Changed
28040         mono_metadata_parse_field_type () to use common code for parsing.
28041         Added mono_metadata_typedef_from_field () and
28042         mono_metadata_typedef_from_method () to lookup a typedef index from a
28043         field or method token.
28044         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
28045
28046 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
28047
28048         * metadata.c (mono_metadata_parse_field_type): Implement. 
28049         (do_mono_metadata_parse_type): Split engine from
28050         mono_metadata_parse_type, so that we can create smaller structures
28051         for things that just have one pointer to the MonoType (look at
28052         the MonoFieldType)
28053
28054 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
28055
28056         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
28057         as Jan Gray found out, it is incorrect. 
28058
28059 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
28060
28061         * assembly.c: Implement asssembly loading.  This loads an image
28062         and loads all the referenced assemblies.  Come to think of it, we
28063         could always do lazy loading of the assemblies. 
28064
28065         * image.c (mono_image_open): Keep loaded images in a hashtable.
28066
28067         * image.h (MonoImage): Add reference count.
28068
28069 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
28070
28071         * assembly.c (mono_assembly_open): Keep track of the file name in
28072         case the assembly has no ASSEMBLY table.
28073
28074         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
28075         from get.c here.
28076
28077 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
28078
28079         * metadata.c, metadata.h: decode local vars in method header
28080         parse function. Change callers accordingly.
28081
28082 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
28083
28084         * metadata.h, cil-coff.h: protect against multiple inclusion.
28085         Added some new structures to hold information decoded from metadata:
28086         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
28087         and relevant decoding/free functions.
28088         * metadata.c: implement decoding functions. Add warning for out of bounds
28089         index in mono_metadata_locate(). Implement mono_get_method () to retreive
28090         all the info about a method signature and invocation. Remove check on
28091         uninitialized local var in parse_mh() and fix memory leak.
28092
28093 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
28094
28095         * metadata.h: More macros.
28096
28097         * tokentype.h: New file.
28098
28099 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
28100
28101         * assembly.c: added a consistency check and initialize
28102         some structures with g_new0().
28103         * metadata.c: fixed a couple more bugs in table size computation
28104         and add other checks for out-of bound access to metadata.
28105
28106 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
28107
28108         * metatada.c: fix bugs computing table sizes. Spew a
28109         warning when index in string heap is out of bounds.
28110
28111 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
28112
28113         * metadata.h: Add a couple of macros to manipulate tokens. 
28114
28115 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
28116
28117         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
28118         cli_section_tables).
28119
28120 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
28121
28122         * metadata.c (mono_metadata_user_string): New function, provides
28123         access to the UserString heap. 
28124
28125 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
28126
28127         * metadata.c: Add inline documentation.
28128
28129 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
28130
28131         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
28132         files. 
28133
28134 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
28135
28136         * typeattr.h: New file, TypeAttribute flags. 
28137
28138 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
28139
28140         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
28141         mono_assembly_ensure_section): Section loading code.
28142         (load_section_tables): Load the sections.
28143
28144         * mono/metadata/metadata.c (mono_metadata_locate_token,
28145         mono_metadata_locate): Functions to locate the information
28146         definition given a token or a table and an index.
28147         (mono_metadata_compute_table_bases): New.
28148         (compute_size): New function to compute the sizes of the various
28149         tables.
28150
28151         * mono/metadata/metadata.h: Finish listing the different index
28152         types. 
28153
28154         * mono/metadata/pedump.c: Improve to dump new information.
28155
28156 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
28157
28158         * mono/metadata/metadata.c: Entered all the tables matching
28159         Beta2. 
28160
28161         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
28162
28163
28164