2008-10-19 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
2
3         * debug-helpers.c (mono_method_full_name): Include generic arguments.
4
5 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
6
7         * loader.c: fixed check for interface type.
8
9 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
10
11         * appdomain.c: check for NULL setup before it's referenced.
12
13 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
14
15         * class.c: remove the unused old vtable setup code.
16
17 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
18
19         * class.c: don't depend on interface order in
20         setup_interface_offsets (bug #435777).
21         * reflection.c: sort the InterfaceImpl table (patch from
22         Jb Evain  <jbevain@novell.com>).
23
24 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
25
26         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
27         the low level assemblies lock.
28
29 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
30
31         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
32         object.c, reflection.c, socket-io.c, threads.c: introduced
33         mono_framework_version () to return the major framewrok version,
34         changed the code that was using more complex patterns to use it.
35         Return the correct value for PlatformID for OSX.
36
37 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
38
39         * icall-def.h, process.h, process.c: added an icall to get info about
40         processes using mono-proclib.
41
42 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
43
44         * mono-perfcounters.c: use the mono-proclib functions to
45         access process information.
46
47 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
48
49         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
50         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
51         reflection.c: remove rawbuffer usage: mmap support is more sanely
52         provided by utils/mono-mmap.
53
54 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
55
56         * gc.c: use posix semaphores when possible so that
57         mono_gc_finalize_notify() is signal safe.
58
59 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
60
61         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
62         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
63         be #ifdef-ed out, the linker will remove the rest.
64
65         * marshal.c: Implement DISABLE_COM.
66
67         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
68
69 2008-10-11  Miguel de Icaza  <miguel@novell.com>
70
71         * locales.c (string_invariant_compare_char): Optimization: do not
72         call g_unichar_type unless we actually need the information.
73
74 2008-10-10  Mark Probst  <mark.probst@gmail.com>
75
76         * object.c, class-internals.h: Also create remoting trampolines
77         for generic methods.  Pass the domain to the remoting trampoline
78         creation function, too.
79
80 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
81
82         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
83
84 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
85
86         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
87         Vector4ui.
88
89 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
90
91         * assembly.c:
92         * locales.c: remove the use of g_strdown. Fixes bug #322313.
93
94 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
95
96         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
97         for the least possible amount of time (extending the fix in r113458).
98
99 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
100
101         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
102
103 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
104
105         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
106         as possible simd intrinsic types.
107         Optimized the test to check for the common prefix first.
108
109 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
110
111         * class.c: back out part of a broken optimization committed on
112         May 23th (bug #433908).
113
114 2008-10-09  Mark Probst  <mark.probst@gmail.com>
115
116         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
117         Win32.  Should fix #432388 for most cases until we have the new
118         profiler on Win32.
119
120 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
121
122         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
123         instead of using inst->id so the hash is stable for AOT.
124
125 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
126
127         * appdomain.c:
128         * icall.c: create a .ini file for shadow-copied assemblies that
129         contains the location of the original assembly. Use this to return the
130         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
131         Also fix the number of '/' for windows when returning the CodeBase.
132         Fixes bug #430920.
133
134 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
135
136         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
137
138         Code is contributed under MIT/X11 license.
139
140 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
141
142         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
143           if if the class vtable needs initialized.
144
145         Code is contributed under MIT/X11 license.
146
147 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
148
149         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
150           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
151           STRING->BSTR, and CLASS->INTERFACE.
152
153         Code is contributed under MIT/X11 license.
154
155 2008-10-07  Marek Habersack  <mhabersack@novell.com>
156
157         * sysmath.h: changed the declaration of the
158         ves_icall_System_Math_Round2 icall by adding an extra
159         away_from_zero parameter.
160
161         * sysmath.c (ves_icall_System_Math_Round2): added support for
162         away from zero rounding. The icall now takes an extra boolean
163         parameter to signal that away from zero operation is requested.
164
165 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
166
167         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
168         the delegate klass so it can work with full-aot.
169         (mono_marshal_get_delegate_end_invoke): Ditto.
170         (mono_marshal_get_delegate_invoke): Ditto.
171
172 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
173
174         * gc.c, attach.h, attach.c: remove a bad pattern:
175         add_finalizer_callback () is not implemented correctly, it can't
176         without adding more overhead to the finalizer loop and it's not
177         even needed, since we know exactly what we need to call, so there is
178         no need to do so through an expensive function pointer.
179
180 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
181
182         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
183         for the no-gc case.
184         * attach.c (mono_attach_init): Remove the #ifdef.
185
186 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
187
188         * attach.c (mono_attach_init): Don't use
189         mono_gc_add_finalizer_thread_callback when compiling without GC.
190         Fixes #432306.
191         
192         Code is contributed under MIT/X11 license.
193
194 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
195
196         * class.c (mono_class_create_from_typedef): Remove the 
197         #ifndef DISABLE_SIMD stuff.
198
199 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
200
201         * class-internals.h (MonoClass): Added simd_type bit field.
202
203         * class.c (mono_class_create_from_typedef): Check if type is a simd
204         intrinsic.
205
206 2008-10-03  Mark Probst  <mark.probst@gmail.com>
207
208         * object.c (mono_method_add_generic_virtual_invocation): Only add
209         instantiations to the thunk whose count is at least as large as
210         the threshold.
211
212 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
213
214         * icall.c: changed the Type of the exception thrown when trying to
215         invoke a constructor on an abstract class. Part of the fix for bug
216         #324185.
217
218 2008-10-02  Mark Probst  <mark.probst@gmail.com>
219
220         * class.c, class-internals.h (mono_method_get_vtable_index): New
221         function which returns the index into the vtable and properly
222         handles inflated virtual generic methods.
223
224 2008-10-01  Mark Probst  <mark.probst@gmail.com>
225
226         * object.c, domain.c, object-internals.h, domain-internals.h:
227         Generalize IMT thunk machinery to also handle thunks for virtual
228         generic method invokes.  When a virtual generic method is invoked
229         more than a number of times we insert it into the thunk so that it
230         can be called without lookup in unmanaged code.
231
232         * generic-sharing.c, class-internals.h: Fetching a
233         MonoGenericInst* for a method from an (M)RGCTX.
234
235 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
236
237         * marshal.c (emit_marshal_string): Applied a variant of a patch by
238         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
239         marshalling. Fixes #431304.
240
241 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
242
243         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
244           handle when ref is specified without In or Out.
245
246         Code is contributed under MIT/X11 license.
247
248 2008-09-30  Mark Probst  <mark.probst@gmail.com>
249
250         * loader.c (mono_get_method_constrained): Don't expand method with
251         the class's context, because it's already a method of that class.
252
253 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
254
255         * attach.c : should be correct build fix.
256
257 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
258
259         * attach.c: Fix the previous change.
260
261 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
262
263         * attach.c : quick w32 build fix.
264
265 2008-09-27  Miguel de Icaza  <miguel@novell.com>
266
267         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
268         crashes MonoDevelop: #430455.
269
270 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
271
272         * domain-internals.h (struct _MonoDomain): Move most fields used only by
273         the JIT do MonoJitDomainInfo in ../mini/mini.h.
274
275         * domain.c: Remove initialization/cleanup of the removed fields.
276
277 2008-09-27  Mark Probst  <mark.probst@gmail.com>
278
279         * class.c (mono_class_generic_sharing_enabled): Enable generic
280         code sharing for PPC.
281
282 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
283
284         * attach.c : Fixing the Windows builds.
285
286         Code is contributed under MIT/X11 license.
287
288 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
289
290         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
291         the default generic sharing mode to 'all'.
292
293 2008-09-25  Mark Probst  <mark.probst@gmail.com>
294
295         * generic-sharing.c, class-internals.h: New function for checking
296         whether a method needs a static RGCTX invoke wrapper.  A few
297         funtions moved from mini/generic-sharing.c.
298
299         * icall.c: New function used.
300
301 2008-09-25  Mark Probst  <mark.probst@gmail.com>
302
303         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
304         Static RGCTX invoke wrapping applies to value type methods, too.
305
306         * class.c (mono_class_setup_vtable_general): In generic-shared
307         value types, wrap methods with a static RGCTX invoke wrapper.
308
309 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
310
311         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
312         osx build.
313
314 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
315
316         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
317         register a callback which is called when the finalizer thread is woken
318         up.
319         (finalizer_thread): Call the callback if it exists.
320
321         * attach.h attach.c: New files, implementing the attach mechanism.
322
323         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
324         
325         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
326         by the previous change.
327
328 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
329
330         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
331         loader.c, marshal.c, metadata-internals.h, metadata.c,
332         method-builder.c, object.c, reflection.c: introduced specific functions
333         to allocate from the domain and image mempools and cleaned up most of
334         the code to use them (still missing a few in reflection.c).
335         Keep the loader bytes counter updated.
336
337 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
338
339         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
340         loader-related counters.
341
342 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
343
344         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
345         added more MS-compatible counters.
346
347 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
348
349         * class.c (mono_class_setup_fields): Call setup_fields before accessing
350         class->blittable. Fixes #428217.
351
352 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
353
354         * reflection.c (mono_image_get_field_on_inst_token): Call 
355         field_encode_signature () since that handles custom modifiers too.
356         Fixes #424663.
357
358 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
359
360         * reflection.c (add_custom_modifiers): New helper function to merge custom
361         modifiers stored in objects to a MonoType.
362         (fieldref_encode_signature): Encode custom modifiers.
363         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
364         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
365
366 2008-09-19  KornĂ©l Pál  <kornelpal@gmail.com>
367
368         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
369         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
370         64-bit IL only images because imports are not resolved for IL only images.
371         Special thanks to Bill Holmes for finding this bug and testing the patch.
372         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
373
374         Contributed under MIT/X11 license.
375
376 2008-09-19  Miguel de Icaza  <miguel@novell.com>
377
378         * mono-config.c (dllmap_start): Add support for the bits keyword
379         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
380
381 2008-09-19  Mark Probst  <mark.probst@gmail.com>
382
383         * reflection.c (inflate_mono_method): When the class the method is
384         to be inflated for is itself not inflated, just return the method.
385
386 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
387
388         * mono-perfcounters.c: use more user friendly process instance names.
389
390 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
391
392         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
393           handle "[in] ref" and "[in][out] ref" cases.
394
395         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
396           to mono_mb_create_method.  This was causing problems calling native to
397           managed passing Variants by value.
398
399         Code is contributed under MIT/X11 license.
400
401 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
402
403         * class.c (can_access_internals): Call mono_assembly_load_friends ()
404         before accessing the friend_assembly_names field.
405
406         * assembly.c (mono_assembly_load_friends): Make this callable multiple
407         times.
408         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
409         called lazily when it is needed.
410
411         * metadata-internals.h (struct _MonoAssembly): Add 
412         'friend_assembly_names_inited' flag.
413
414 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
415
416         * mono-perfcounters-def.h: fix the types of a few counters.
417         * mono-perfcounters.c: implemented the instance names getter
418         and a few bugfixes.
419
420 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
421
422         * culture-info-table.h : regenerated.
423
424 2008-09-17  Robert Jordan  <robertj@gmx.net>
425
426         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
427         context bound objects. Fixes #415577.
428
429         Code is contributed under MIT/X11 license.
430
431 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
432
433         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
434         implementation (bug #423582).
435
436 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
437
438         * object.c (mono_object_get_virtual_method): Handle the case method->slot
439         is not set. Fixes #426309.
440
441 2008-09-16  Jb Evain  <jbevain@novell.com>
442
443         * class.c (mono_class_from_name): fix the exported type look up
444         when the type is defined in a referenced assembly.
445
446 2008-09-16  Jb Evain  <jbevain@novell.com>
447
448         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
449         increment the next index counter on each iteration to make that work
450         for more than one type forwarder. Unmanaged part to fix #422929.
451
452 2008-09-15  Mark Probst  <mark.probst@gmail.com>
453
454         * object-internals.h: enum ComInterfaceType in
455         MonoInterfaceTypeAttribute is guint32, not guint16.
456
457 2008-09-12  Mark Probst  <mark.probst@gmail.com>
458
459         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
460         writing code.
461
462 2008-09-11  Mark Probst  <mark.probst@gmail.com>
463
464         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
465         not gboolean.
466
467 2008-09-11  Mark Probst  <mark.probst@gmail.com>
468
469         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
470         Endianness fixes for MonoSymbolFileOffsetTable.
471
472 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
473
474         * process.c (complete_path) : Removing quotes from the 
475           input path.  The glib file routines do not handle file paths
476           that have quotes around them.
477
478         Code is contributed under MIT/X11 license.
479
480 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
481
482         * socket-io.h : Adding a comment to provide locations where 
483           changes to MonoSocketAsyncResult need to be synced.
484
485         Code is contributed under MIT/X11 license.
486
487 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
488
489         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
490         parameters as well. Fixes #425001.
491
492 2008-09-08  Miguel de Icaza  <miguel@novell.com>
493
494         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
495         windows build.
496
497 2008-09-07  Miguel de Icaza  <miguel@novell.com>
498
499         * console-io.c: Add support for tracking the window size if it
500         changes.
501
502         The setup is very simple: the TtySetup function will now return a
503         pointer to a location in memory that tracks the current console
504         size.  The managed code checks its current value every time its
505         queried against the last value set, and updates accordingly.
506
507         With this setup we can work with multiple consoles, and we do not
508         require to poke into managed code from a signal handler.
509
510         Additionally, the environment for COLUMNS and LINES is now handled
511         in unmanaged code.
512
513         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
514
515 2008-09-07  Mark Probst  <mark.probst@gmail.com>
516
517         * marshal.c (mono_type_native_stack_size): Treat
518         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
519
520 2008-09-04  Jb Evain  <jbevain@novell.com>
521
522         * class.c (mono_class_is_assignable_from): fix assignability of nullables
523         to nullables.
524
525 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
526
527         * verify.c (verify_type_compatibility_full): Revert change
528         to allow converting a native int to unmanaged pointer be verifiable
529         under non-strict mode.
530         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
531
532         * verify.c: Added some TODOs.
533
534 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
535
536         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
537           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
538           Changed to use GlobalAlloc for the memory returned on Windows platforms.
539
540         Code is contributed under MIT/X11 license.
541
542 2008-09-02  Jb Evain  <jbevain@novell.com>
543
544         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
545
546 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
547
548         reflection.c (typebuilder_setup_fields): Handle classes with
549         explicit size.
550
551 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
552
553         class.c (mono_class_setup_events): Add memory barrier due to
554         double checked locking.
555         
556         class.c (mono_class_setup_properties): Same.
557
558 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
559
560         * class.c (mono_class_is_assignable_from): Fix the build.
561         
562         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
563         before accessing klass->interface_bitmap. Fixes #421744.
564
565 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
566
567         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
568         the runtime into no-exec mode, useful when running the AOT compiler.
569
570         * appdomain.c gc.c object.c: Avoid executing managed code when running
571         in no-exec mode.
572         
573         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
574
575         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
576         special case when the mono_assembly_loaded () returns NULL because the 
577         search hook is not installed.
578
579 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
580
581         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
582         crashes in bstr marshalling on linux.
583
584 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
585
586         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
587         with more than one parameter.
588
589 2008-08-24  Miguel de Icaza  <miguel@novell.com>
590
591         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
592         start/stop flow control as well when turning off ICANON (allows
593         C-s and C-q to be read by Console.ReadKey).
594
595 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
596
597         * class.c (mono_class_init): Move the initialization of nested classes
598         into mono_class_get_nested_types (). Fixes #418433.
599
600         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
601         flag.
602
603         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
604         iterating tough the nested classes of a class.
605
606 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
607
608         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
609         on arm.
610
611 2008-08-22  Miguel de Icaza  <miguel@novell.com>
612
613         * console-io.c (sigcont_handler): Support signal chaining for
614         SIGCONT.
615
616         (console_set_signal_handlers): Use best practices with sigaction,
617         clear the structure before using it. 
618
619 2008-08-22  Robert Jordan  <robertj@gmx.net>
620
621         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
622         Fix the Windows build.
623
624 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
625
626         * class.c (mono_class_generic_sharing_enabled): Make the default
627         sharing mode 'corlib'.
628
629 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
630
631         * console-io.c (console_set_signal_handlers): Fix a warning.
632
633         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
634         method normally, the JIT will take care of avoiding recursion.
635
636 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
637
638         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
639
640         Code is contributed under MIT/X11 license.
641
642 2008-08-20  Miguel de Icaza  <miguel@novell.com>
643
644         * console-io.c (sigcont_handler): We need to restore the entire
645         termios state, not only the original settings, as things like echo
646         can be controlled after this (Booish exposes this issue with its
647         own ReadLine implementation).
648
649         Additionally, we need to set the terminal back into keypad_xmit
650         mode.
651         
652         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
653         string as a paramter as well.   Otherwise we get different
654         keyboard sequences.
655
656 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
657
658         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
659         delegates with byref out parameter passing. Fixes #351520.
660
661         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
662         a generic context.
663         (mono_type_get_desc): Add the type arguments for GENERICINST.
664         (mono_method_full_name): Stringify the class name using mono_type_full_name
665         so it picks up generic arguments.
666
667 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
668
669         * console-io.c: Removed debug output.
670
671 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
672
673         reflection.c (mono_reflection_create_runtime_class): Alloc
674         the nested classes linked list using the dynamic image mempool.
675         Fixes leak in corlib compilation.
676
677 2008-08-19  Miguel de Icaza  <miguel@novell.com>
678
679         * console-io.c: Fix incredibly annoying behavior on the console
680         after resuming execution after control-z.   This affected every
681         console application.
682
683 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
684
685         * mempool-internals.h: Header for mono private mempool functions. The first
686         two function are for allocating glib linked lists using pools.
687
688         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
689
690         * Makefile.am: Added mempool-internals.h.
691
692 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
693
694         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
695         (mono_domain_free): Ditto.
696
697         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
698         be used by the JIT to store its domain-specific information, instead of putting
699         it directly into MonoDomain.
700
701         * domain.c (mono_install_create_domain_hook): New helper function to install
702         a hook which initializes domain->runtime_info.
703
704         * domain.c (mono_install_free_domain_hook): Ditto.
705         
706 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
707
708         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
709         asserting if the ares parameter is null.
710
711         * mono-perfcounters.c: Fix warnings.
712
713         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
714         is not needed, don't check for interruptions either.
715         (mono_marshal_get_delegate_end_invoke): Ditto.
716
717 2008-08-15  Marek Habersack  <mhabersack@novell.com>
718
719         * mono-perfcounters.c (predef_readonly_counter): added support for
720         reading the ASP.NET Requests Queued counter from another process.
721
722 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
723
724         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
725         MonoImage to simplify the AOT code.
726
727 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
728
729         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
730         marshalling. Fixes #416078.
731
732 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
733         
734         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
735         it is set, looking up the icall address is deferred to the JIT, since 
736         in embedded scenarios, the icall might not be registered in the runtime
737         doing the AOT compilation. Backported from the 2.0 branch.
738
739 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
740
741         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
742         Fixes #415621.
743
744 2008-08-05  Marek Habersack  <mhabersack@novell.com>
745
746         * Makefile.am: added support for cross-compilation.
747
748 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
749
750         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
751
752 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
753
754         * mono-perfcounters.c: jitted methods and jitted bytes counters.
755
756 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
757
758         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
759         mono-perfcounters.c: performance counters implementation.
760
761 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
762
763         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
764         to gpointer, letting the AOT code decide what to store in it.
765
766 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
767
768         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
769           mono_class_setup_methods if the methods are not initialized.
770
771         Code is contributed under MIT/X11 license.
772
773 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
774
775         * verify.c: Remove some debug code I commited by accident.
776
777         * verify.c (mono_method_is_valid_in_context): Change the return value
778         to make possible to distinguish between invalid and unverifiable.
779
780         * verify.c (verifier_load_method): Don't return NULL for unverifiable
781         methods.
782
783 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
784
785         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
786         constraints. Fixes regression in gtest-253.
787
788 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
789
790         * verify.c (mono_verifier_verify_class): Don't allow generic types
791         with explicit layout.
792
793         * verify.c (mono_method_verify): Check locals and argument types.
794
795 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
796
797         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
798         wait if the thread is in StopRequested state.
799
800         * class.c (mono_class_from_name): Refactor the module searching code into
801         a separate function so it can be reused in the AOT case too.
802
803 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
804
805         * verify.c (mono_type_is_valid_in_context): Improve the error message.
806         Check both the type and it's generic type definition for loader errors.
807         
808         * verify.c (mono_method_is_valid_in_context): Don't generate another
809         error when a type errors occur, this leads to the wrong exception been
810         thrown.
811
812 2008-07-28  Dick Porter  <dick@ximian.com>
813
814         * icall-def.h
815         * process.c
816         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
817         New internal calls to duplicate and close a process handle.
818
819 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
820
821         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
822
823 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
824
825         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
826
827 2008-07-27  Robert Jordan  <robertj@gmx.net>
828
829         * class.c (mono_class_init): Don't compute class.has_finalize for
830         valuetypes. Fixes #412477.
831
832 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
833
834         * verify.c: Implement constraint equivalence checking.
835         This is required when a generic parameter is used as
836         argument to a constrained one.
837
838         Fixes #410637.
839
840 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
841
842         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
843
844         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
845
846         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
847         synch with managed object layout.
848
849 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
850
851         * verify.c (do_branch_op): Handle valuetypes and generic
852         arguments properly.
853
854         * verify.c (do_cmp_op): Same.
855
856         Fixes #410383.
857
858 2008-07-24  Mark Probst  <mark.probst@gmail.com>
859
860         * generic-sharing.c: Fix memory leaks.
861
862         * class.c, class-internals.h: Make
863         mono_class_inflate_generic_type_with_mempool() non-static.
864
865 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
866
867         * pedump.c (dump_verify_info): Dump full class name.
868
869 2008-07-24  Mark Probst  <mark.probst@gmail.com>
870
871         * generic-sharing.c: Removed some old code that didn't do anything.
872
873 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
874         * profiler.c: Added runtime_initialized_event,
875         mono_profiler_install_runtime_initialized and
876         mono_profiler_runtime_initialized. This new hook tells the profiler
877         when the runtime is sufficiently initialized to be able to call
878         mono_thread_attach on the root appdomain.
879         * profiler.h, profiler-private.h: Likewise.
880
881 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
882
883         * verify.c (do_cast): Do boxing for generic arguments as well.
884
885         * class.c (is_nesting_type): Drop generic instantiations before
886         checking for nesting.
887
888         * class.c (can_access_instantiation): Allow access to generic
889         arguments.
890
891 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
892
893         * verify.c (verify_class_for_overlapping_reference_fields):
894         On some cases, the field size might be zero, guard against that.
895         Fix the explicit layout check to work as expected.
896
897 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
898
899         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
900         mono_thread_resume () during shutdown, since the thread we want to abort
901         might be suspended.
902
903 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
904
905         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
906         warning.
907
908         * debug-mono-symfile.c: Fix a warning.
909
910         * mono-perfcounters.c (get_cpu_times): Fix a warning.
911
912         * object.c (mono_class_vtable): Check if exception_type is set, and return
913         NULL as defined by the function comments.
914
915 2008-07-22  Mark Probst  <mark.probst@gmail.com>
916
917         * mempool.c: Use malloc for every single mempool allocation if the
918         configure option is set.  This makes it easier to track mempool
919         allocations with tools like Valgrind.
920
921 2008-07-22  Jb Evain  <jbevain@novell.com>
922
923         * reflection.c (create_dynamic_mono_image): emit the same
924         metadata version that SL2 does when creating a SL2 image.
925
926 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
927
928         * icall-def.h:
929         * icall.c: New icall System.Enum:get_hashcode. This function
930         avoids the overhead of boxing the enum to the underlying type.
931
932 2008-07-21  Mark Probst  <mark.probst@gmail.com>
933
934         * reflection.c (mono_method_get_object): Don't let static RGCTX
935         invoke wrappers get into MonoReflectionMethods.
936
937 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
938
939         * object-internals.h:
940         * object.c: New mono_runtime_class_init_full function
941         that makes throwing the exception optinal.
942
943         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
944         for the case where the exception object is supplied.
945
946 2008-07-16  KornĂ©l Pál  <kornelpal@gmail.com>
947
948         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
949         old ld versions.
950
951         Contributed under MIT/X11 license.
952
953 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
954
955         * string-icalls.c (ves_icall_System_String_InternalSplit):
956         Optimize array allocation by caching the MonoClass of the
957         array type.
958
959         * icall.c (ves_icall_Type_GetMethodsByName): Same.
960
961         * reflection.c (mono_param_get_objects): Same.
962
963 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
964
965         * icall-def.h:
966         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
967         It inflates the given type using the class context.
968
969 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
970
971         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
972         the vtable if it already exists.
973
974         * object-internals.h: Add mono_class_try_get_vtable as part of the
975         internal API.
976
977         * reflection.c (mono_type_get_object): Use the MonoObject from the
978         vtable when possible. Reduces locking contention on reflection heavy
979         code.
980
981 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
982
983         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
984         g_bit_nth_msf () since that macro is not implemented in eglib.
985
986 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
987
988         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
989         on platforms which do not support it.
990
991 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
992
993         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
994
995 2008-07-11  Martin Baulig  <martin@ximian.com>
996
997         * mono-debug-debugger.h
998         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
999
1000         * mono-debug-debugger.c
1001         (_mono_debugger_interruption_request): New global volatile variable.
1002         (mono_debugger_check_interruption): New public function.
1003
1004         * threads.c
1005         (mono_thread_current_check_pending_interrupt): Call
1006         mono_debugger_check_interruption().
1007         (mono_thread_interruption_checkpoint_request): Likewise.
1008
1009 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1010
1011         * verify.c: Add more type checks for loaded types. Verify the result
1012         handle from ldtoken.
1013
1014 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1015
1016         * loader.c (field_from_memberref): Don't crash if the field
1017         wasn't found.
1018
1019 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1020
1021         * verify.c: Verify if type and method instantiations
1022         don't have invalid VAR or MVAR arguments.
1023
1024 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1025
1026         * verify.c: Fix double free of function pointer list.
1027
1028 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
1029
1030         * object.c (mono_string_to_utf8): Comment the new code as it
1031         breaks under eglib.
1032
1033 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
1034
1035         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
1036
1037 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
1038
1039         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
1040           is not throw too many times.
1041
1042         Code is contributed under MIT/X11 license.
1043
1044 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
1045
1046         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
1047         debugging is turned off.
1048
1049 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
1050
1051         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
1052
1053 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1054
1055         * class-internals.h, class.c: Added new generic sharing option:
1056         Share only stuff in System.Collections.Generic, which is now the
1057         default.
1058
1059 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1060
1061         * generic-sharing.c, class-internals.h: New function for getting a
1062         generic method in a generic class given the corresponding method
1063         for a different instantiation of the class.  Partly refactored
1064         from mini-trampolines.c.
1065
1066         * class.c: Make sure generic methods have a class_inst if they are
1067         part of a generic class.
1068
1069         * metadata.c (mono_type_stack_size_internal): Handle type
1070         variables.
1071
1072 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1073
1074         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
1075         Signifies whether information on the this/vtable/mrgctx variable
1076         is available.
1077
1078 2008-07-04  Mark Probst  <mark.probst@gmail.com>
1079
1080         * object.c, object-internals.h, icall.c: New function
1081         mono_delegate_ctor_with_method(), which does the same as
1082         mono_delegate_ctor(), but takes an explicit method argument
1083         instead of taking the method from the jit info.
1084
1085         * marshal.c: When creating a delegate with an inflated method take
1086         the "this" argument as the target class for the castclass.
1087
1088 2008-07-03  Mark Probst  <mark.probst@gmail.com>
1089
1090         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
1091         mono_jit_info_table_find() to perform very badly in some cases.
1092
1093 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
1094
1095         * icall.c (type_from_typename): Handle 'string'.
1096
1097         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
1098         wrappers into the wrapper_hash, since the key is not a MonoMethod.
1099
1100 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
1101
1102         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
1103
1104         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
1105         number of available managed allocator types.
1106
1107         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
1108         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
1109
1110 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
1111
1112         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
1113         which is a low level lock protecting just the 'jit_code_hash' hash table.
1114
1115         * domain.c: Initialize+cleanup jit_code_hash_lock.
1116         
1117 2008-06-30  KornĂ©l Pál  <kornelpal@gmail.com>
1118
1119         * coree.c (mono_load_coree): Set coree_module_handle global variable only
1120         after initialization.
1121
1122         * coree.h: Make MonoFixupExe internal.
1123
1124         Contributed under MIT/X11 license.
1125
1126 2008-06-30  KornĂ©l Pál  <kornelpal@gmail.com>
1127
1128         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
1129         because that is platform independent. Check NumberOfRvaAndSizes in PE32
1130         as well.
1131         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
1132         image being loaded is a CLI image and _CorValidateImage gets called.
1133
1134         * coree.h: Add MonoLoadImage.
1135
1136         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
1137         instead of LoadLibrary.
1138
1139         Contributed under MIT/X11 license.
1140
1141 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
1142
1143         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
1144         for any primitive type.
1145
1146 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
1147
1148         * object.c (mono_array_new_specific): Optimize this and the other allocation
1149         functions a bit.
1150         
1151         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
1152         domains too if mono_dont_free_domains is set.
1153
1154         * domain-internals.h (mono_dont_free_domains): New internal option controlling
1155         whenever to free appdomain data after it has been unloaded.
1156
1157         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
1158         
1159 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
1160
1161         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
1162         (mono_method_get_equivalent_method): Fix a warning.
1163
1164         * object.c (mono_message_init): Avoid looking up array types for each call.
1165
1166 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
1167
1168         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
1169         call.
1170
1171         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
1172         even more.
1173
1174         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
1175         each iteration.
1176
1177         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
1178         fields of an enum.
1179
1180 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
1181
1182         * object.c (mono_value_box): Fix boxing of nullables.
1183
1184 2008-06-26  KornĂ©l Pál  <kornelpal@gmail.com>
1185
1186         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
1187         mono_module_handle that is defined by the linker; no initialization required.
1188         * coree.h: Remove mono_module_handle, add __ImageBase, update
1189         mono_image_open_from_module_handle.
1190         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
1191         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
1192         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
1193         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
1194         to 4 GB away from image base address. IA64 version is not tested but was very
1195         easy to implement and should work if we ever need it.
1196         * domain.c (mono_init_internal): Avoid system error message boxes.
1197         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
1198         with has_entry_point. Handle do_mono_image_load fauilre correctly.
1199         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
1200         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
1201         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
1202
1203         Contributed under MIT/X11 license.
1204
1205 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1206
1207         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
1208         as part of the private mono API.
1209         
1210         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
1211         Do proper argument checking for methods that belong to generic classes.
1212         Do proper type resolution for GMFH/2.
1213         Fixes #377324.
1214         
1215 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1216
1217         * verify.c (do_switch): Fix a memory corruption bug with
1218         the jump index is out of bound.
1219
1220 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1221
1222         * verify.c: Disable debug code.
1223
1224 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
1225
1226         * reflection.c (mono_image_get_methodbuilder_token): Use
1227         mono_image_get_methodspec_token_for_generic_method_definition
1228         instead of mono_image_get_memberref_token. We cache more memberef
1229         entries now.
1230
1231 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1232
1233         * verify.c: Inflate exception clause types.
1234         Fixes #402606.
1235         
1236 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1237
1238         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
1239         name.
1240
1241         * reflection.c (mono_image_get_ctorbuilder_token): Same.
1242
1243         * reflection.c (mono_image_create_method_token): Same.
1244
1245 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1246
1247         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
1248         It does the same as mono_image_get_methodref_token but works on
1249         MethodBuilder.
1250
1251         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
1252         and always generate a methodspec. This follows the old behavior and fixes
1253         the regressions in System.Core. 
1254
1255 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
1256
1257         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
1258         don't event mono_class_get () succeeds. Fixes #402182.
1259
1260 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1261
1262         * metadata-internals.h: Added MonoDynamicImage::methodspec
1263         hashtable to store methodspec tokens created for MethodBuilders.
1264
1265         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
1266         MethodBuilders as open instantiations if a methodspec was requested.
1267
1268         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
1269
1270         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
1271
1272         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
1273
1274         Fixes bug #349190.
1275
1276 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1277
1278         * loader.c (method_from_methodspec): Avoid crashing if the
1279         method lookup fails.
1280
1281 2008-06-20  Dick Porter  <dick@ximian.com>
1282
1283         * socket-io.c (get_socket_assembly): Cope with Moonlight network
1284         classes being in a different assembly.  Fixes bug 399184.
1285
1286 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
1287
1288         * loader.c (mono_loader_init): Make this callable multiple times.
1289         (mono_dllmap_insert): Call mono_loader_init () so this works even before
1290         the runtime is initialized. Fixes #401755.
1291
1292 2008-06-19  Dick Porter  <dick@ximian.com>
1293
1294         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
1295         Fixes bug 349688.
1296
1297 2008-06-19  Dick Porter  <dick@ximian.com>
1298
1299         * socket-io.c:
1300         * icall-def.h: Implement Socket generic Send() and Receive()
1301         methods.  Fixes bug 395168.
1302
1303 2008-06-19  KornĂ©l Pál  <kornelpal@gmail.com>
1304
1305         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
1306
1307         Contributed under MIT/X11 license.
1308
1309 2008-06-18  Martin Baulig  <martin@ximian.com>
1310
1311         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
1312         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
1313         set to 80.0.  The debugger <-> runtime interface is now frozen as
1314         well.   
1315
1316         * mono-debug.c
1317         (mono_debug_debugger_version): Bump to 4.
1318
1319 2008-06-18  Martin Baulig  <martin@ximian.com>
1320
1321         * debug-mono-symfile.c
1322         (load_symfile): Don't check the minor version.
1323
1324         * debug-mono-symfile.h: Bump the version number to 50.0.
1325
1326 2008-06-18  Martin Baulig  <martin@ximian.com>
1327
1328         * debug-mono-symfile.c
1329         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
1330         minimum required version.
1331
1332 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1333
1334         * reflection.c (mono_custom_attrs_from_property): Fix support for
1335         retriveving cattrs of dynamic inflated generic types.
1336
1337         * reflection.c (mono_custom_attrs_from_event): Same.
1338
1339         * reflection.c (mono_custom_attrs_from_field): Same;
1340
1341         * reflection.c (typebuilder_setup_events): Same cattrs of events.
1342
1343         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
1344         Moved to metadata.c.
1345
1346         * metadata.c: New functions to retrive the equivalent field, event
1347         of property from the generic type definition.
1348
1349         * metadata-internals.h: Added new functions from metadata.c.
1350
1351 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1352
1353         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
1354         to cached in a mempool is used.
1355
1356         * metadata.c (free_generic_class): In some situations field generic_info type
1357         is not properly dup'ed and leads to double free'ing.
1358
1359         Fixes #400643.
1360
1361 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1362
1363         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
1364         this arguments (will be needed later for generic methods).
1365         Collect stats.
1366
1367 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1368
1369         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
1370         Create a static RGCTX invoke wrapper for methods which require it.
1371
1372 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1373
1374         * object.c, class-internals.h: New function for checking whether
1375         an individual field is special static.
1376
1377 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
1378
1379         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
1380         linear search since the table is sorted.
1381
1382         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
1383         Fixes #324180.
1384
1385 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
1386
1387         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
1388         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
1389
1390         * gc.c (mono_domain_finalize): Allow an infinite timeout.
1391
1392         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
1393         
1394         * threads.c (mono_thread_request_interruption): Get rid of locking, use
1395         InterlockedCompareExchange to query and modify 
1396         thread->interruption_requested.
1397
1398         * object-internals.h (struct _MonoThread): Change interruption_requested
1399         to a gint32 so it can be modified by atomic operations. Add 
1400         'critical_region_level' from the managed side, change small_id to a guint32,
1401         add new set of 'unused' fields.
1402
1403         * appdomain.c: Bump corlib version.
1404
1405 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
1406
1407         * class.c (mono_class_from_name): Search modules as well. Fixes
1408         #322332.
1409
1410 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1411
1412         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
1413         templates.  Templates are generalized with an additional type_argc
1414         argument.  RGCTX templates have type_argc==0, MRGCTX templates
1415         have type_argc>0.
1416
1417         * domain-internals.h, domain.c: New hash table for looking up
1418         MRGCTXs.
1419
1420         * metadata.c, metadata-internals.h: Rename hash and equal
1421         functions for MonoGenericInst's and make them public.
1422
1423         * class-internals.h: New data structures for the MRGCTX.  Macros
1424         for distinguishing slots in the RGCTX and the MRGCTX.
1425
1426 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1427
1428         * object.c (mono_method_get_imt_slot): Put the same methods of
1429         different instantiations of the same generic interface in the same
1430         IMT slots, to make generic sharing simpler.
1431
1432 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1433
1434         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
1435
1436         * metadata.c (mono_metadata_field_info_with_mempool): Added.
1437         This function works just like mono_metadata_field_info, but
1438         accept a mempool as argument to be used allocating memory.
1439
1440         * marshal.c (mono_marshal_load_type_info): Use new function
1441         to load marshal data into image mempool.
1442
1443 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1444
1445         * class.c (mono_class_inflate_generic_type_with_mempool):
1446         This function allows to inflate a generic type using
1447         a mempool.
1448
1449         * class.c (inflate_generic_type): Take a mempool as argument
1450         and use it to do type dup'ing.
1451
1452         * class.c (mono_class_setup_fields): Field type for generic
1453         generic classes are allocated from the image mempool.
1454
1455         * metadata.c (free_generic_class): Inflated field type is
1456         now allocated in the image mempool.
1457
1458 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1459
1460         * threads.c (thread_cleanup): Free MonoThread::name.
1461
1462 2008-06-12  Marek Habersack  <mhabersack@novell.com>
1463
1464         * appdomain.c (ensure_directory_exists): avoid unnecessary
1465         mkdir(2) calls when the shadow directory already exists.
1466         (mono_make_shadow_copy): copy also satellite assemblies from the
1467         private bin directories.
1468
1469 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1470
1471         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
1472         
1473         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
1474         a page boundary. Fixes #396219.
1475
1476 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1477
1478         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
1479         due to double-checked locking.
1480
1481 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1482
1483         * assembly.c (build_assembly_name): Release memory on failure.
1484
1485         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
1486
1487 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1488
1489         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
1490         memory on failure.
1491
1492 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1493
1494         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
1495         memory on failure.
1496
1497 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1498
1499         * loader.c (field_from_memberref): Check if field signature type is equal
1500         to the non-inflated type of the field. Fixes #398980.
1501
1502 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1503
1504         * assembly.c (mono_assembly_load_from_full): Call 
1505         mono_assembly_load_friends () outside the assemblies lock, since it can
1506         acquire the loader lock. Fixes #323696.
1507
1508         * reflection.c (resolve_object): Inflate the inst with the context for
1509         FieldOnTypeBuilderInst. Fixes #399010.
1510
1511 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1512
1513         * reflection.c (mono_image_get_field_on_inst_token): Don't
1514         inflate the field to encode it's signature. If it's a
1515         VAR or MVAR it should stay that way in the signature.
1516         Fixes #399047.
1517
1518 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1519
1520         * reflection.c (resolve_object): Release memory of inflated types.
1521
1522 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1523
1524         * loader.c (mono_method_get_signature_full): Remove assert about
1525         loading a methodspec to a generic method. We have such methods, such as
1526         System.Threading.Interlocked::CompareExchange<T>.
1527         This assert was removed since it crashes the verifier when it checks
1528         methods calling CompareExchange<T>.
1529
1530 2008-06-10  Marek Safar  <marek.safar@gmail.com>
1531
1532         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
1533         of Type array and not MonoType.
1534
1535 2008-06-10  Marek Habersack  <mhabersack@novell.com>
1536
1537         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
1538         <lupus@ximian.com>
1539
1540 2008-06-10  Martin Baulig  <martin@ximian.com>
1541
1542         * debug-mono-symfile.h
1543         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
1544         changes to the file format, but we were generating incorrect
1545         source file indices in the line number table due to a bug, which
1546         made backtraces report an incorrect source file.
1547
1548 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1549
1550         * mono-debug.c: Moved mono_debug_free_method_jit_info from
1551         mini/debug-mini.c to here.
1552
1553         * mono-debug.c (il_offset_from_address): Free memory from find_method.
1554
1555         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
1556         use it to release structs returned by mono_debug_find_method.
1557
1558 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
1559
1560         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
1561         since it needs to set method->slot for all interface methods.
1562
1563 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1564
1565         * class-internals.h: Forgot to add.
1566
1567 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1568
1569         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
1570
1571         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
1572         Lookup the custom attributes from property_hash.
1573
1574         * reflection.c (mono_save_custom_attrs): Save the custom attributes
1575         in property_hash. Allocate all data using the image mempool.
1576
1577         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
1578         for dynamic_custom_attrs to checks if the image is dynamic.
1579
1580 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
1581
1582         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
1583         assemblies array.
1584         
1585         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
1586         runtime functions while holding the domain assemblies lock.
1587
1588 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1589
1590         * verify.c: Reapplied the last bit of the reverted changes.
1591
1592 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1593
1594         * verify.c: Reapplied more of the reverted changes.
1595
1596 2008-06-09  Martin Baulig  <martin@ximian.com>
1597
1598         * debug-mono-symfile.c (load_symfile): Check the major version
1599         first; if it's wrong, don't print the minor version in the error message.
1600
1601 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
1602
1603         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
1604         lock instead of the domain lock to avoid deadlocks, since the thread might
1605         already hold the loader lock.
1606
1607         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
1608         (mono_thread_attach): Ditto.
1609
1610         * monitor.c: Use a TLS variable for holding the current thread id instead
1611         of calling pthread_self ().
1612         (mono_monitor_init_tls): New internal function to initialize the TLS
1613         variable.
1614         (mono_monitor_try_enter_internal): Put the owner == id check after the
1615         owner == 0 check.
1616
1617         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
1618         missed optimizations when using gcc-4.3.
1619
1620 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
1621
1622         * reflection.c (mono_dynamic_image_free): Free the memory
1623         used by MonoGenericParam in MonoDynamicImage::gen_param.
1624
1625         * reflection.c (mono_reflection_setup_generic_class): Allocate
1626         container from mempool.
1627
1628         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
1629         container from mempool.
1630
1631 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
1632
1633         * threads.c (mono_set_pending_exception): New internal function to set the
1634         pending exception of the current thread.
1635         (mono_thread_get_and_clear_pending_exception): Check for 
1636         thread->pending_exception as well.
1637
1638         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
1639
1640         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
1641         it can trigger a collection.
1642
1643 2008-06-06  Martin Baulig  <martin@ximian.com>
1644
1645         Merged the `debugger-kahalo' branch.
1646
1647         * mono-debug.h
1648         (MONO_DEBUGGER_VERSION): Bumped to 72.
1649
1650         * debug-mono-symfile.h
1651         (MonoSymbolFileMethodIndexEntry): Removed.
1652         (MonoSymbolFileMethodEntry): New public typedef.
1653         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
1654         (MonoSymbolFileSourceEntry): Remove everything except `index' and
1655         `data_offset'.
1656         (MonoSymbolFileMethodEntry): Removed.
1657         (MonoSymbolFileLexicalBlockEntry): Removed.
1658         (MonoSymbolFileLineNumberEntry): Removed.
1659         (MonoDebugLexicalBlockEntry): Removed.
1660         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
1661         removed `num_il_offsets' and `il_offsets'.
1662         (MonoSymbolFile): Replace `version' with `major_version' and
1663         `minor_version'.
1664         (MONO_SYMBOL_FILE_VERSION): Replace with
1665         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
1666         `MONO_SYMBOL_FILE_MINOR_VERSION'.
1667
1668         * debug-mono-symfile.c
1669         (mono_debug_symfile_lookup_location): Add support for the new line
1670         number table format.
1671
1672 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1673
1674         * metadata.c (free_generic_class): Release the inflated
1675         MonoClass of dynamic generic classes if it's not a generic
1676         type definition.
1677
1678 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1679
1680         * verify.c: Reapplied more of the reverted changes.
1681
1682 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1683
1684         * reflection.c (lookup_custom_attr): Clean the cached flag or
1685         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
1686         for SRE types.
1687
1688 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1689
1690         * verify.c: Reapplied a small part of the reverted changes.
1691
1692 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
1693
1694         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1695
1696         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
1697         previously in managed code.
1698         (mono_monitor_exit): Ditto.
1699         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
1700
1701         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
1702         the managed definition.
1703
1704 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
1705
1706         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
1707
1708 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
1709
1710         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
1711         
1712         * monitor.c: Add some micro optimizations.
1713
1714         * icall.c (type_from_typename): Handle 'bool'.
1715
1716 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
1717
1718         * verify.c: Implement constructor verification per P III 1.8.1.4.
1719         Fixes #396716.
1720
1721 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
1722
1723         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
1724         holding the assemblies lock here too.
1725
1726 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1727
1728         * verify.c: Kill stack_top function.
1729
1730 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1731
1732         * verify.c: Kill stack_get function.
1733
1734 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1735
1736         * verify.c (mono_method_verify): Last change broke the build. Fixed.
1737
1738 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1739
1740         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
1741         more reliable.
1742
1743         * verify.c (mono_method_verify): Inflate params and locals to avoid
1744         mismatch when checking for compatibility.
1745
1746 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
1747
1748         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
1749         Length prefix should be size in bytes. Fix bug #339530.
1750         
1751         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
1752         Length prefix should be size in bytes. Fix bug #339530.
1753
1754         Code is contributed under MIT/X11 license.
1755
1756 2008-06-05  Bill Holmes <billholmes54@gmail.com>
1757
1758         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
1759
1760         Contributed under MIT/X11 license.
1761
1762 2008-06-05  Martin Baulig  <martin@ximian.com>
1763
1764         * mono-debug-debugger.c
1765         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
1766
1767 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
1768
1769         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
1770         while holding the assemblies lock to prevent deadlocks. Handle the case
1771         where the search hook returns NULL but the assembly was still loaded.
1772         Fixes #323696.
1773
1774         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
1775         modify domain state.
1776
1777 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
1778
1779         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
1780         * Makefile.am (pedump_LDADD): Post-process object files and
1781         add dtrace-generated object file, if necessary.
1782
1783         Code is contributed under MIT/X11 license.
1784
1785 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1786
1787         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
1788
1789 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1790
1791         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
1792
1793 2008-06-04  Mark Probst  <mark.probst@gmail.com>
1794
1795         * threads.c: Try to free everything from the delayed free table
1796         when shutting down threads, and set the variable to NULL after the
1797         table is freed so that calling
1798         mono_thread_hazardous_try_free_all() when shutting down the root
1799         domain doesn't crash.
1800
1801 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1802
1803         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
1804         the caller if resulting type was inflated.
1805
1806         * class.c (mono_class_create_from_typespec): Free the MonoType if it
1807         was inflated.
1808
1809         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
1810
1811
1812 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
1813
1814         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
1815         class library tests.
1816
1817         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
1818         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
1819         #396989.
1820
1821 2008-06-04  Mark Probst  <mark.probst@gmail.com>
1822
1823         * domain.c, domain-internals.h: The JIT infos are now freed by the
1824         JIT info table code.  They are freed immediately if there only a
1825         single JIT info table in circulation.  If there is more, the free
1826         is delayed via a queue.
1827
1828         * threads.c, threads-types.h: New hazard pointer function for
1829         freeing all freeable delayed items in one sitting.
1830
1831 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1832
1833         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
1834
1835         * reflection.c (typebuilder_setup_properties): Same.
1836
1837         * reflection.c (typebuilder_setup_events): Same.
1838
1839 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1840
1841         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
1842         and use it for allocating memory.
1843
1844         * reflection.c (mono_marshal_spec_from_builder): Same.
1845
1846         * reflection.c: Change code to use new signatures.
1847
1848         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
1849
1850 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1851
1852         * decimal.c (rescale128): Put back one line which was accidently commented
1853         out.
1854         
1855         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
1856         to cause crashes.
1857
1858 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1859
1860         * reflection.c (mono_reflection_generic_class_initialize): Name must
1861         be always malloc'ed so we can free it later on. Do this for field, property
1862         and event.
1863
1864         * metadata.c (free_generic_class): Free field, property and event names.
1865
1866 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1867
1868         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
1869         instead of g_memdup.
1870
1871         * reflection.c (typebuilder_setup_fields): Same.
1872
1873 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1874
1875         * decimal.c (rescale128): Optimize this function a bit more.
1876
1877 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1878
1879         * metadata.c (free_generic_class): Release some memory from
1880         SRE generic classes.
1881
1882 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1883
1884         * reflection.c (mono_image_get_generic_field_token): No reference
1885         to name is kept, free it.
1886
1887         * reflection.c (mono_reflection_generic_class_initialize): Free
1888         more memory of the inflated field.
1889
1890 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1891
1892         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
1893         code.
1894
1895 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
1896
1897         * reflection.c (mono_dynamic_image_free): Release memory used by
1898         MonoDynamicImage::array_methods elements.
1899
1900         * reflection.c (assembly_add_win32_resources): Release memory after
1901         encoding.
1902
1903 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
1904
1905         * decimal.c (log2_32): Use an optimized version for this function too.
1906         
1907         * decimal.c (log2_64): Fix this on 32 bit machines.
1908
1909 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
1910
1911         * class.c (mono_dup_array_type): Implement allocation using a mempool.
1912
1913         * class.c (mono_metadata_signature_deep_dup): Same.
1914
1915         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
1916         a mempool.
1917
1918         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
1919
1920         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
1921
1922         * metadata-internals.h: Added mono_metadata_signature_dup_full.
1923
1924         * class-internals.h: Update signatures to take a MonoMemPool.
1925
1926 2008-06-02  Dick Porter  <dick@ximian.com>
1927
1928         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
1929         * icall-def.h: Add
1930         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
1931         FormatMessage API to get the error text.  Fixes bug 321827.
1932
1933 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
1934
1935         * decimal.c: Add some micro optimizations to make decimal operations faster.
1936
1937 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
1938
1939         * reflection.c (method_encode_clauses): Take a mempool
1940         as parameter and use it to allocate the clause array.
1941
1942         * reflection.c (mono_image_get_field_on_inst_token): Free
1943         the inflated type after encoding it.
1944
1945         * reflection.c (mono_dynamic_image_free): Free each element
1946         of MonoDynamicImage::gen_params.
1947
1948         * reflection.c (reflection_methodbuilder_to_mono_method):
1949         Allocate the generic param array from the mempool.
1950         Allocate signature params from the mempool.
1951
1952         * reflection.c (mono_reflection_generic_class_initialize):
1953         Free inflated fields after been used.
1954
1955 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
1956
1957         * icall.c: Reapply the memory leak fixes as they no
1958         longer make mono crash.
1959
1960 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
1961
1962         * reflection.c (mono_type_get_object): Don't store the suplied
1963         MonoType with type_hash. A caller which pass a type that
1964         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
1965         might end with a pointer to freed memory.
1966         The solution is to use byval_arg or this_arg from the associated
1967         MonoClass of the supplied type.
1968
1969 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
1970
1971         * icall.c: Revert the rest of the last change as it breaks the build too.
1972
1973 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1974
1975         * icall.c: Revert a leak fix as it's breaking the build.
1976
1977 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1978
1979         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
1980
1981 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1982
1983         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
1984
1985 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1986
1987         * icall.c: Fix some memory leaks.
1988
1989 2008-05-29  Dick Porter  <dick@ximian.com>
1990
1991         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
1992         async socket operations from the pending list when a socket
1993         closes.  Leaving it until the threadpool services the event
1994         exposes a race condition when a socket descriptor is reused.
1995         Fixes bug 377589.
1996
1997 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1998
1999         * object.c: Fix negative index check for array alocation.
2000
2001 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2002
2003         * icall.c, marshal.c: Delegate wrappers should skip visibility.
2004         This check is performed by the verifier for IL created delegates
2005         and by Delegate::CreateDelegate for programatically created ones.
2006         Fixes #372406.
2007
2008 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2009
2010         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
2011         Fix code to use mono_array_size_t instead of int.
2012
2013         Based on patch by Luis F. Ortiz.
2014         Contributed under X11 license.
2015         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2016
2017 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2018
2019         * icall.c: Added ves_icall_System_Array_GetLongLength and
2020         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
2021         arrays.
2022
2023         * icall.h: Export both new functions.
2024
2025         Based on patch by Luis F. Ortiz.
2026         Contributed under X11 license.
2027         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2028
2029 2008-05-28  Martin Baulig  <martin@ximian.com>
2030
2031         The debugger now requires exactly r103463.
2032
2033         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
2034         This version is not supported by the debugger, wait for 72.
2035
2036 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2037
2038         * object.h: Changed array related functions to use
2039         mono_array_size_t instead of guint32. Forgot to commit this file.
2040
2041         Patch by Luis F. Ortiz.
2042         Contributed under X11 license.
2043         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2044
2045
2046 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
2047
2048         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
2049         don't define it. Use the number literal instead.
2050
2051 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2052
2053         * icall.c: Changed array related functions to use
2054         mono_array_size_t instead of guint32.
2055
2056         * icall.c (ves_icall_System_Array_GetLength): Check for length
2057         overflow under MONO_BIG_ARRAYS.
2058
2059         Based on patch by Luis F. Ortiz.
2060         Contributed under X11 license.
2061         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2062
2063 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2064
2065         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
2066
2067         Based on patch by Luis F. Ortiz.
2068         Contributed under X11 license.
2069         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2070
2071 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2072
2073         * object.c, object.h: Changed array related functions to use
2074         mono_array_size_t instead of guint32.
2075
2076         Patch by Luis F. Ortiz.
2077         Contributed under X11 license.
2078         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2079
2080 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
2081
2082         * object.h: Introduced mono_array_size_t typedef. This must be used
2083         in all places an array length is expected. This is 64bits wide if
2084         MONO_BIG_ARRAYS is enabled.
2085
2086         Patch by Luis F. Ortiz.
2087         Contributed under X11 license.
2088         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
2089
2090 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
2091
2092         * security-manager.c class.c: Set the class exception info by calling
2093         mono_class_set_failure ().
2094
2095         * class.c (mono_class_get_exception_data): New accessor function.
2096         (mono_class_set_failure): Store exception_data in the property hash.
2097
2098         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
2099         the struct as a property.
2100
2101         * loader.c (mono_get_method_full): Store the lookup result for method
2102         tokens in method_cache, the others in methodref_cache to decrease the memory
2103         usage of hash tables.
2104
2105         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
2106         (mono_image_init): method_cache is lazy inited now.
2107
2108         * metadata-internals.h (struct _MonoImage): Change method_cache to
2109         a MonoValueHashTable, add a separate methodref_cache.
2110
2111 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
2112
2113         * number-formatter.h: Fix tables to avoid arithemtic overflow in
2114           Double.ToString as exposed by Bug #383531.
2115
2116 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
2117
2118         * number-formatter.h: Make some tables static.
2119
2120         * class.c (mono_method_set_generic_container): New accessor function.
2121         (mono_method_get_generic_container): Ditto.
2122
2123         * class-internals.h (struct _MonoMethod): Remove rarely used 
2124         'generic_container' field, store it in the property hash instead. Add 
2125         'is_generic' boolean field instead.
2126
2127         * image.c (mono_image_init): Initialize property_hash.
2128         (mono_image_close): Destroy property_hash.
2129
2130         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
2131         hold rarely used fields of runtime structures belonging to this image.
2132
2133         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
2134         to get/set method->generic_container.
2135
2136         * loader.c (mono_get_method_from_token): Avoid loading the method header for
2137         generic methods.
2138
2139 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
2140
2141         * class.c (mono_class_inflate_generic_method_full): Don't increase
2142         mono_stats.inflated_method_count for methods found in the cache.
2143
2144         * threads.c (mono_thread_request_interruption): Add a comment about 
2145         QueueUserAPC ().
2146
2147 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
2148
2149         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
2150         interface_offsets_packed table.
2151         
2152         * class.c (mono_class_init): Remove some dead code.
2153
2154         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
2155         mono_class_setup_vtable () when CAS is active to detect security problems.
2156
2157 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
2158
2159         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
2160
2161         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
2162         parameters as it's irrelevant for delegate checking.
2163
2164 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
2165
2166         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
2167
2168         * class.c (mono_class_init): Control the creation of a generic vtable using
2169         a global which is true by default, but set to false by the runtime startup code.
2170         
2171         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
2172         Disabled for now since it breaks the embedding API.
2173         Move the setup of class->methods for arrays to mono_class_setup_methods ().
2174         (mono_class_setup_methods): Add a memory barrier.
2175
2176         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
2177         when mono_class_init () doesn't compute the generic vtable.
2178         
2179 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
2180         * profiler.c: Added mono_profiler_install_statistical_call_chain,
2181         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
2182         to support call chains (backtrace) in the stat profiler.
2183         * profiler.c, profiler-private.h: Likewise.
2184
2185 2008-05-22  Mark Probst  <mark.probst@gmail.com>
2186
2187         * generic-sharing.c: Init generic class when a method of it is
2188         requested via a runtime generic context.
2189
2190 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
2191
2192         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
2193
2194         * reflection.c (mono_type_get_object): Add a FIXME.
2195
2196         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
2197
2198         * class.c (mono_class_get_method_by_index): New helper function, returning an
2199         entry in the class->methods array.
2200
2201 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2202
2203         * class.c (mono_class_init): Only do the array optimization for szarrays. 
2204         Avoid creating a generic vtable for generic instances as well.
2205         (mono_class_get_method_from_name_flags): Don't search in the metadata for
2206         generic instances.
2207
2208 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
2209
2210         * loader.c (mono_get_method_constrained): Inflate the signature
2211         with class context. Fix #325283.
2212
2213 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
2214
2215         * object.c (mono_class_create_runtime_vtable): Add a comment.
2216
2217         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
2218         where needed.
2219         (setup_interface_offsets): Handle the case when this is called twice for arrays.
2220         (mono_class_setup_vtable_general): Add an assert.
2221         (mono_class_init): Avoid creating a generic vtable for arrays.
2222
2223         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
2224         here, let mono_class_init () do that.
2225
2226         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
2227         interfaces in mscorlib.
2228
2229         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
2230         interfaces. Add some comments.
2231         (mono_class_init): Call mono_class_setup_methods () here since it is no
2232         longer called by mono_class_setup_vtable ().
2233
2234         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
2235         not set in class->vtable.
2236         (mono_class_create_runtime_vtable): Reenable the disabled code.
2237
2238         * object.c (mono_class_create_runtime_vtable): Disable the last change for
2239         now as it causes some test failures.
2240
2241         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
2242         if using the vtable trampoline. Also remove some strange code which put the
2243         generic methods themselves into the vtable slots. Remove the AOT init_vtable
2244         stuff as it is no longer needed.
2245
2246 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
2247
2248         * pedump.c: Give make --verify all option check code as well.
2249         Using --verify code won't check for metadata now.
2250
2251 2008-05-19  Martin Baulig  <martin@ximian.com>
2252
2253         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
2254
2255         * mono-debug.c
2256         (_mono_debug_using_mono_debugger): New global variable; it's set
2257         directly by the debugger, so mono_debug_using_mono_debugger() also
2258         works after attaching.
2259
2260 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
2261
2262         * object.c (mono_class_create_runtime_vtable): Use memory barriers
2263         as we do double checked locking on MonoClass::runtime_info and
2264         MonoClassRuntimeInfo::domain_vtables.
2265
2266 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
2267
2268         * debug-helpers.c (print_field_value): Fix a warning.
2269
2270 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
2271
2272         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
2273         set in the AOT case.
2274
2275 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2276
2277         * class.c (mono_class_setup_vtable_general): Use memory barriers
2278         as we do double checked locking on MonoClass::vtable.
2279
2280 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2281
2282         * reflection.c (resolve_object): Inflate only if the generic context
2283         is not null. Fixes #389886.
2284
2285 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
2286
2287         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
2288         instead of g_free.
2289
2290         Code is contributed under MIT/X11 license.
2291
2292 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2293
2294         * class.c: Revert unrelated change.
2295
2296 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2297
2298         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
2299         a generic instantiation, use mono_class_from_mono_type instead of playing
2300         with MonoType directly.
2301
2302 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2303
2304         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
2305         checks must ignore generic instantiations, so mono_class_has_parent is not
2306         suitable. Fixes #390128.
2307
2308 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
2309
2310         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
2311         it to avoid registering tokens during metadata generation. Fixes #390023.
2312
2313 2008-05-14  KornĂ©l Pál  <kornelpal@gmail.com>
2314
2315         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
2316         consistent.
2317
2318         Contributed under MIT/X11 license.
2319
2320 2008-05-14  KornĂ©l Pál  <kornelpal@gmail.com>
2321
2322         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
2323         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
2324         to fixup the EXE image.
2325         (mono_cleanup): Use mono_close_exe_image.
2326         (mono_close_exe_image): New function.
2327         * image.c: Include "marshal.h".
2328         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
2329         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
2330         counting when the image is loaded outside of mono_image_open_full. Set status
2331         based on GetLastError.
2332         * coree.c: Include required headers. Add init_from_coree.
2333         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
2334         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
2335         (_CorExeMain): Set init_from_coree.
2336         (CorExitProcess): Only call ExitProcess for now.
2337         (CorBindToRuntimeEx): New stub implementation.
2338         (CorBindToRuntime): New function.
2339         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
2340         (MonoFixupExe): ILONLY executables require no fixups.
2341         (mono_set_act_ctx): New function to set activation context.
2342         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
2343         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
2344         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
2345         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
2346         as MONO_INTERNAL.
2347         * domain-internals.h: Add mono_close_exe_image.
2348
2349         Contributed under MIT/X11 license.
2350
2351 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
2352
2353         * metadata.c (mono_metadata_compute_size): Correctly calculate field
2354         size for generic param and event tables. Fixes #388977.
2355
2356 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
2357
2358         * loader.c (mono_method_signature): Use memory barriers because of the double
2359         checked locking pattern.
2360
2361         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
2362         aborting or aborted as well. Fixes #376391.
2363         
2364         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
2365         existing runtime state in the Suspend handler during shutdown.
2366
2367 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
2368
2369         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
2370
2371         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
2372         which are starting up or shutting down.
2373
2374         * threads.c (mono_threads_set_shutting_down): Don't return a value since
2375         this function never returns if the runtime is already shutting down.
2376
2377         * icall.c (ves_icall_System_Environment_Exit): Update after 
2378         mono_threads_set_shutting_down () signature change.
2379         
2380 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
2381
2382         * class.c: Added can_access_instantiation to verify if the instantiation
2383         is visible. Fix access check for nested types as they returned TRUE
2384         before doing type and generic instantiation visibility checks.
2385
2386 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2387
2388         * reflection.c (mono_reflection_create_generic_class): The created type
2389         must have a different container from its TypeBuilder. Otherwise they
2390         will end sharing generic arguments, which is wrong.
2391
2392         Due to the sharing, making a generic instance of the created type using
2393         the TypeBuider generic arguments resulted in the generic type definition
2394         been returned, which is wrong as well.
2395
2396         As a bonus the code was leaking the type_params array. This memory should
2397         be allocated from the image mempool.
2398
2399         This fixes bug #354047.
2400
2401 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2402
2403         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
2404         to here         as they are now used in assembly.c new code.
2405         Added a skipverification flag to MonoAssembly.
2406         New internal function mono_assembly_has_skip_verification.
2407
2408         * assembly.c: New function mono_assembly_has_skip_verification. It checks
2409         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
2410         part of #387274.
2411
2412 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2413
2414         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
2415         needed. Fixes #387034.
2416
2417         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
2418
2419 2008-05-06  Miguel de Icaza  <miguel@novell.com>
2420
2421         * assembly.c (mono_assembly_load_reference): Prevent crash while
2422         disassembling Silverlight 2.0 executables while we still do not
2423         have GACed libraries.
2424
2425 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2426
2427         * reflection.c: Special case generic type definitions as well. Fixes #383444.
2428
2429 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
2430
2431         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
2432         of the dynamic case. Fixes #387404.
2433
2434 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2435
2436         *verify.c (mono_verifier_is_class_full_trust): If under
2437         verify_all and the verifier mode was not set, only
2438         gac and corlib types are fulltrust. This makes --verify-all
2439         usable to detect unverifiable code, which is the expected
2440         use case.
2441
2442 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2443
2444         * verify.h: Ops, commited the header with debug
2445         enabled.
2446
2447 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2448
2449         * verify.c (merge_stack): Use the new value on unverifiable
2450         stack merges.
2451
2452         * verify.c (verify_type_compatibility_full): Comparison
2453         of nullable types can't use mono_class_is_assignable_from.
2454
2455         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
2456         that makes all verification errors be reported.
2457
2458         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
2459         mono_method_verify.
2460
2461 2008-05-05  Robert Jordan  <robertj@gmx.net>
2462
2463         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
2464         support for value types. See #386415.
2465
2466         * object.c: comments.
2467
2468         Code is contributed under MIT/X11 license.
2469
2470 2008-05-05  Martin Baulig  <martin@ximian.com>
2471
2472         * debug-mono-symfile.h
2473         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
2474         for old pre-terrania symbol files.
2475
2476 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2477
2478         * mono-config.c: Add ppc64 architecture.
2479
2480         Code is contributed under MIT/X11 license.
2481
2482 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2483
2484         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
2485           PPC64 uses function descriptors as well.
2486
2487         Code is contributed under MIT/X11 license.
2488
2489 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
2490
2491         * object.c (compute_class_bitmap): Ignore literal static fields.
2492
2493         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
2494         var has an invalid format.
2495         (describe_ptr): Add some sanity checks for the vtable.
2496         (add_nursery_frag): Clear unused nursery fragments.
2497         (major_collection): Clear all remaining nursery fragments.
2498
2499 2008-05-03  Robert Jordan  <robertj@gmx.net>
2500
2501         * image.c, metadata-internals.h: add thunk_invoke_cache.
2502
2503         * marshal.c, marshal.h: implement
2504         mono_marshal_get_thunk_invoke_wrapper ().
2505
2506         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
2507
2508         Code is contributed under MIT/X11 license.
2509
2510 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2511
2512         * verify.c (do_leave): Empty the stack.
2513
2514 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2515
2516         * class.c (mono_class_is_assignable_from): Variance
2517         doesn't work between reference and value types. For example,
2518         given type C<T+>, C<int32> is not assignable to C<object>.
2519         Break the argument checking loop on first error. 
2520
2521 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
2522
2523         * icall.c : base64_to_byte_array() needs some more strict
2524           check for sequence of '=' characters. Patch by Santa
2525           Marta (http://deee.g.hatena.ne.jp/santamarta).
2526
2527           Contributed under MIT/X11 license.
2528           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
2529
2530 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
2531
2532         * domain.c: Disable LoadLibrary support to fix Win32 build.
2533
2534         Code is contributed under MIT/X11 license.
2535
2536 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
2537
2538         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
2539         to help with cache behaviour.
2540
2541 2008-05-01  Miguel de Icaza  <miguel@novell.com>
2542
2543         * appdomain.c (mono_domain_from_appdomain): Add new accessor
2544         method. 
2545
2546 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
2547
2548         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
2549
2550 2008-05-01  Dick Porter  <dick@ximian.com>
2551
2552         * process.c (process_get_fileversion): Only pass 16 bits of
2553         language ID to VerLanguageName.  Fixes bug 381204.
2554
2555 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2556
2557         * verify.c (mono_method_verify): Fix the comparison
2558         operator for code bounds check.
2559
2560 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2561
2562         * verify.c (mono_method_verify): Check the bounds of
2563         all access of the code array.
2564
2565 2008-04-29  KornĂ©l Pál  <kornelpal@gmail.com>
2566
2567         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
2568
2569 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
2570
2571         * image.c (mono_image_strong_name_position): Fix return value when the rva is
2572         not valid.
2573
2574 2008-04-28  KornĂ©l Pál  <kornelpal@gmail.com>
2575
2576         * loader.c (mono_get_method_from_token, mono_method_signature): Add
2577         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
2578         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
2579         fixup main EXE images when using mono.exe for mixed-mode assembly support.
2580         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
2581         mono_runtime_load.
2582         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
2583         runtime initialization from metadata.
2584         * assembly.c: Remove obsolete ceGetModuleFileNameA.
2585         (mono_set_rootdir): Use mono_get_module_file_name.
2586         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
2587         handles.
2588         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
2589         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
2590         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
2591         MonoCLIImageInfo. Add support for module handles.
2592         (load_cli_header): Update mono_cli_rva_image_map signature.
2593         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
2594         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
2595         (mono_image_rva_map): Add support for module handles.
2596         (mono_image_ensure_section_idx): Add support for module handles.
2597         (mono_image_close): Add support for module handles.
2598         (do_load_header): Add support for module handles.
2599         (mono_image_open_from_module_handle): New function for internal use.
2600         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
2601         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
2602         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
2603         handles.
2604         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
2605         * image.h: Add mono_image_fixup_vtable.
2606         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
2607         support.
2608         * coree.h: New file.
2609         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
2610         unsupported native code.
2611         (mono_marshal_set_callconv_from_modopt): New function splitted from
2612         mono_marshal_get_managed_wrapper.
2613         (mono_marshal_get_managed_wrapper): Use
2614         mono_marshal_set_callconv_from_modopt.
2615         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
2616         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
2617         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
2618         that results in a deadlock when the runtime is loaded in _CorDllMain.
2619         * Makefile.am: Add coree.c and coree.h.
2620
2621         Contributed under MIT/X11 license.
2622
2623 2008-04-28  Mark Probst  <mark.probst@gmail.com>
2624
2625         * generic-sharing.c: Search for type arguments in array element
2626         types as well.
2627
2628 2008-04-28  Mark Probst  <mark.probst@gmail.com>
2629
2630         * class-internals.h, generic-sharing.c: New, small runtime generic context.
2631
2632         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
2633
2634         * object.c: Don't setup the RGCTX when the vtable is created,
2635         because we're setting it up lazily now.
2636
2637 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
2638
2639         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
2640         64 bit support.
2641
2642 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
2643
2644         * verify.c (verify_class_for_overlapping_reference_fields): 
2645         If class is under fulltrust allow reference types to overllap
2646         if they have the same RVA.
2647
2648 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
2649
2650         * pedump.c: Added new flag valid-only, that makes the verifier
2651         behaves just like --security=validil. It won't fail type load
2652         due to unverifiable restrictions.
2653
2654 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
2655
2656         * class-internals.h (struct MonoMethod): Added a verification_success
2657         field to cache verifier executions. Reduced MonoMethod:slot size by
2658         one bit.
2659
2660 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
2661
2662         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
2663         instead of a 'vt' argument to save an indirection and to allow these to be used
2664         for valuetypes.
2665         (scan_vtype): New helper function to scan an area using a gc descriptor.
2666         (mono_gc_wbarrier_value_copy): Implement this.
2667         (handle_remset): Add support for REMSET_VTYPE.
2668         (find_in_remset_loc): Ditto.
2669         (mono_gc_base_init): Allow some debugging options to be controlled through the
2670         use of the MONO_GC_DEBUG env variable.
2671         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
2672         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
2673
2674 2008-04-23  Martin Baulig  <martin@ximian.com>
2675
2676         * domain.c (mono_domain_create): Move the call to
2677         mono_debug_domain_create() down, after allocating the domain id.
2678
2679 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
2680
2681         verify.c (verify_class_for_overlapping_reference_fields): Skip
2682         static fields while verifying for overlapping fields as they
2683         don't matter at all.
2684
2685 2008-04-23  Marek Habersack  <mhabersack@novell.com>
2686
2687         * domain-internals.h: added a declaration of
2688         mono_make_shadow_copy.
2689
2690         * assembly.c (mono_assembly_open_full): shadow copying of
2691         assemblies moved to here, so that all the assemblies within the
2692         application domain's private binary directories can be
2693         processed. Fixes bug #380546
2694
2695         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
2696         mono_make_shadow_copy and made non-static. The decision whether
2697         to shadow-copy an assembly is made based on its location - it's
2698         copied if it's in one of the private application domain binary
2699         directories and its different to the target file in the shadow
2700         directory. Fixes bug #380546
2701
2702 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
2703
2704         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
2705
2706         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
2707         types.
2708
2709         * reflection.c (mono_image_create_token): Handle 
2710         Method/ConstructorOnTypeBuilderInst.
2711         (resolve_object): Ditto.
2712         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
2713         so it can be called from resolve_object. Also handle the case when the inflated
2714         class already has its methods setup.
2715
2716 2008-04-21  Martin Baulig  <martin@ximian.com>
2717
2718         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
2719
2720 2008-04-20  Geoff Norton  <gnorton@novell.com>
2721
2722         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
2723         pointer dereference.
2724
2725 2008-04-15  Marek Habersack  <mhabersack@novell.com>
2726
2727         * appdomain.c (try_load_from): if IOMAP is in effect, call the
2728         portability API to look up the assembly file. Fixes behavior in
2729         situations when the application has a bin/ directory, but the
2730         assembly search patch refers to Bin/ (and thus the requested file
2731         name is Bin/SomeLibrary.dll). Fixes bug #379888
2732
2733 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
2734
2735         verify.c (mono_type_is_generic_argument): Extracted this check
2736         from a dozen places to here.
2737
2738         verify.c: Fixed all issues related to boxing generic arguments
2739         and their constraints.
2740
2741 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
2742
2743         verify.c (mono_class_interface_implements_interface): Fix win32 build.
2744
2745 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
2746
2747         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
2748         isn't finished yet. Fixes #363447.
2749
2750 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
2751
2752         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
2753         Fixes #346419.
2754
2755 2008-04-13  Jb Evain  <jbevain@novell.com>
2756
2757         * domain.c: update the 2.1 profile versions.
2758         Merged from the Moonlight 2 branch.
2759
2760 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
2761
2762         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
2763         mscorlibs for the non-refonly case as well.
2764
2765         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
2766         in mono_assembly_load_from_full (). Fixes #378924.
2767
2768 2008-04-11  Geoff Norton  <gnorton@novell.com>
2769
2770         * icall.c: The global extern environ doesn't exist on Mac.  We
2771         need to call NSGetEnviron instead.
2772
2773 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2774
2775         verify.c: Add generic method constraint verification.
2776
2777 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2778
2779         class.c (mono_class_inflate_generic_method_full): Add a long
2780         explanation to the is_mb_open hack. Remove the FIXME.
2781
2782 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2783
2784         * verify.c (mono_method_verify): Mark all unknown opcodes
2785         as invalid. Mark jmp as unverifiable.
2786
2787 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2788
2789         * verify.c: Add code to do type constraint verification on class instances.
2790
2791         * verify.c (mono_verifier_verify_class): Use the type constraint 
2792         verification code.
2793
2794 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2795
2796         * class.c (mono_class_get_field_default_value): Don't pass cindex
2797         as hint to mono_metadata_get_constant_index. The local is not initialized
2798         and should contain garbage most of the time. This could only work
2799         with a lot of luck.
2800
2801 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
2802
2803         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
2804
2805 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
2806
2807         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
2808
2809         * class.c (mono_class_from_generic_parameter): Save the token of the
2810         generic param in MonoClass::sizes.generic_param_token.
2811
2812         * reflection.c (mono_custom_attrs_from_class): If the class type is
2813         VAR or MVAR retrieve the attributes of the generic param.
2814
2815 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2816
2817         * class.c (mono_class_init): Do class verification if the verifier
2818         is enabled.
2819
2820 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2821
2822         * verify-internal.h: Added mono_verifier_verify_class.
2823
2824         * verify.c: Added mono_verifier_verify_class. It checks for
2825         classes with explicit layout that have overlapping reference fields.
2826
2827         * pedump.c: Init the verifier state prior to verification. Fixed
2828         command line arguments.
2829
2830 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2831
2832         * Makefile.am: Added verify-internals.h, hopefully fix the build.
2833
2834 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
2835
2836         * verify-internals.h: Fix a warning.
2837
2838 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
2839
2840         * verify-internals.h: New header with the verifier configuration
2841         extracted from mini.c.
2842
2843         * verify.c: Implemented the new functions exported by verify-internals.h.
2844
2845 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
2846
2847         * verify.c: Add proper verification of ckfinite.
2848
2849 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2850
2851         * verify.c (do_conversion): Improved error message to something
2852         more meanfull.
2853
2854         * verify.c (check_is_valid_type_for_field_ops): Fix to work
2855         with primitive types.
2856
2857 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2858
2859         * verify.c: Added tail prefix checking. Marked icall
2860         as unverifible.
2861
2862 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2863
2864         * verify.c: Fix the detection of branches to the middle
2865         of an instruction.
2866
2867 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
2868
2869         * verify.c: Implemented verification of volatile. and
2870         unaligned. prefix. Check if a type is valid after retrieving it.
2871
2872 2008-04-01  Dick Porter  <dick@ximian.com>
2873
2874         * process.c (process_get_fileversion): If there's no string block,
2875         set the file language to en_US.  Fixes the other new part of bug
2876         374600.
2877
2878 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
2879
2880         * class.c: New functions mono_method_can_access_field_full and
2881         mono_method_can_access_method_full. They perform type visibility
2882         and type site check.
2883
2884         * class-internal.h: Added exported functions.
2885
2886         * verify.c: Use new functions to implement proper visibility checks.
2887
2888 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
2889
2890         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
2891
2892 2008-03-28  Dick Porter  <dick@ximian.com>
2893
2894         * process.c (process_get_fileversion): Use the first language ID
2895         we see, rather than insisting on an invariant language.  Fixes bug
2896         374600.
2897
2898 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
2899
2900         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
2901         the streams to fix reading of invalid memory later.
2902
2903         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
2904         to ease debugging.
2905
2906 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
2907
2908         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
2909         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
2910
2911 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
2912         * threads.h: Added MonoThreadManageCallback type and
2913         mono_thread_set_manage_callback prototype
2914         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
2915         (used to store the mono_thread_manage callback).
2916         * threads.c: Added mono_thread_set_manage_callback, and handle
2917         "MonoThread->manage_callback" in build_wait_tids.
2918
2919 2008-03-26  Dick Porter  <dick@ximian.com>
2920
2921         * process.c (process_get_fileversion): Set FileVersionInfo strings
2922         to Empty when the resource doesn't have the particular info.
2923         Fixes bug 355717.
2924
2925 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
2926
2927         * verify.c (mono_method_verify): Proper prefix validation.
2928
2929 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
2930
2931         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
2932         itself in a separate argument instead of throwing them. Fixes #373448.
2933
2934         * appdomain.c: Bump corlib version.
2935
2936 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
2937
2938         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
2939
2940 2008-03-20  KornĂ©l Pál  <kornelpal@gmail.com>
2941
2942         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
2943         version macros.
2944
2945 2008-03-20  Mark Probst  <mark.probst@gmail.com>
2946
2947         * generic-sharing.c, class-internals.h: Code for putting
2948         reflection types into the runtime generic context.
2949
2950 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
2951
2952         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
2953         Fixes #340662. 
2954
2955
2956 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
2957
2958         * verify.c (VerifyContext): Added instruction prefix data to the struct.
2959
2960         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
2961
2962         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
2963
2964         * verify.c (do_cast): Let the result value keep the boxed status.
2965
2966         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
2967
2968 2008-03-17  Jb Evain  <jbevain@novell.com>
2969
2970         * reflection.c: when running on a 2.0 runtime, emit
2971         unconditionally the #~ header version as 2.0, and the
2972         CLI header version as 2.5, for symmetry's sake with csc.
2973
2974 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
2975
2976         * class.c: Remove the unused cache_interface_offsets stuff.
2977
2978         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
2979         profiler.c: Fix warnings.
2980
2981 2008-03-16  Mark Probst  <mark.probst@gmail.com>
2982
2983         * generic-sharing.c, class-internals.h: Support for putting
2984         methods into the runtime generic context.
2985
2986 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
2987
2988         * class.c (mono_class_setup_fields): Ignore calls made to this function for
2989         classes which are generic instances of not-yet finished typebuilders. Fixes
2990         #351172.
2991
2992         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
2993
2994 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
2995
2996         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
2997
2998         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
2999         field, replace it with a hash table in MonoDynamicImage.
3000
3001         * reflection.c (inflate_mono_method): Access the generic definition object from
3002         image->generic_def_objects instead of imethod->reflection_info.
3003
3004         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
3005
3006         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
3007         
3008         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
3009         function in reflection.c so it is easier to keep in sync with the dynamic image
3010         creation code.
3011
3012         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
3013         mono_image_close ().
3014
3015 2008-03-15  Mark Probst  <mark.probst@gmail.com>
3016
3017         * class.c (mono_class_generic_sharing_enabled): Disable generic
3018         sharing for all architectures except AMD64 and x86 to fix build.
3019
3020 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
3021
3022         * verify.c: Use the generic definition MonoGenericContext when available.
3023         Remove code for checking generics instance compatibility in favor of
3024         mono_class_is_assignable_from.
3025
3026 2008-03-14  Mark Probst  <mark.probst@gmail.com>
3027
3028         * marshal.c, marshal.h, metadata-internals.h, image.c,
3029         wrapper-types.h: New wrapper for invoking a shared static method
3030         without having to pass the runtime generic context argument.
3031
3032 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
3033
3034         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
3035
3036 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
3037
3038         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
3039         
3040         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
3041         create a token from a FieldOnTypeBuilderInst.
3042         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
3043         (resolve_object): Ditto.
3044
3045         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
3046         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
3047
3048 2008-03-14  Martin Baulig  <martin@ximian.com>
3049
3050         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
3051
3052         * debug-mono-symfile.h
3053         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
3054         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
3055
3056 2008-03-10  Martin Baulig  <martin@ximian.com>
3057
3058         * debug-mono-symfile.h
3059         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
3060         `lexical_block_table_offset'.
3061         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
3062         `lexical_blocks'.
3063         (MonoSymbolFile): Added `version'.
3064
3065         * mono-debug.h
3066         (MonoDebugLexicalBlockEntry): Removed.
3067         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
3068         `lexical_blocks'.
3069
3070         * mono-debug.c (mono_debug_add_method): Don't compute lexical
3071         blocks here; the debugger now does this internally.
3072
3073 2008-02-27  Martin Baulig  <martin@ximian.com>
3074
3075         * object.c (mono_runtime_exec_main): Call
3076         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
3077         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
3078
3079 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
3080
3081         * verify.c (verify_type_compatibility_full): Allow native int to be converted
3082         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
3083
3084 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
3085
3086         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
3087         ldftn with a virtual method.
3088
3089 2008-03-13  Geoff Norton  <gnorton@novell.com>
3090
3091         * decimal.c:  Only include memory.h if the platform has it.
3092
3093 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
3094
3095         * assembly.c, class.c, metadata-internals.h: make sure public key
3096         tokesns are compared in a case-insensitive way. Also, all
3097         the lookups in the GAC use a lowercase public key token
3098         (gaacutil already does the lowercasing on install). Fixes
3099         bug #369541.
3100
3101 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
3102
3103         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
3104         and return value.
3105
3106 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
3107
3108         * image.c: when someone loads a mscorlib from a file, return the
3109         currently loaded mscorlib (fixes bug #369253).
3110
3111 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3112
3113         * class.c: handle types with no parents by forcing them to have
3114         System.Object as a parent and marking them as broken (this currently
3115         allows the first part of bug #369173 to work as well, likely because
3116         we don't check for typeload exceptions everywhere yet).
3117
3118 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
3119
3120         * class.c: more complete check that types belong to corlib
3121         (fixes second part of bug #369173).
3122
3123 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
3124
3125         * generic-sharing.c:  Including glib.h for the MSVC builds to define
3126           "inline" to "__inline" before including mono-membar.h.
3127           
3128         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
3129           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
3130           MSVC builds.
3131
3132         Contributed under MIT/X11 license.
3133
3134 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3135
3136         * verify.c (do_invoke_method): Remove return type validation.
3137
3138         * verify.c (do_ret): Do return type validation at return site instead of
3139         call site.
3140
3141 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
3142
3143         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
3144
3145         * verify.c: Some todos cleaned and improved a few error messages.
3146
3147 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
3148
3149         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
3150
3151 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
3152
3153         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
3154         system types correctly.
3155
3156         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
3157         function.
3158
3159 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3160
3161         * assembly.c (build_assembly_name): Fix a warning.
3162
3163 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
3164
3165         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
3166         the called function takes an object type argument. Fixes storing or
3167         valuetypes across remoting as well as reducing memory usage.
3168         * image.c, metadata-internals.h: remove now unused ldfld_remote and
3169         stfld_remote wrapper caches.
3170
3171 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
3172
3173         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
3174         is not found.
3175
3176         * reflection.c (mono_image_register_token): New helper function to save
3177         a token->object mapping.        
3178
3179         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
3180         managed code.
3181
3182         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
3183         one dimension arrays. Fixes #367670.
3184         (mono_reflection_get_type_internal): Ditto.
3185
3186 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
3187
3188         * marshal.c: mono_load_remote_field_new() always returns object.
3189         so use the proper signature (fixes bug #366445).
3190
3191 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3192         
3193         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
3194         add an 'inline_failure' flag instead.
3195
3196 2008-03-04  Mark Probst  <mark.probst@gmail.com>
3197
3198         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
3199         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
3200         contains the location of "this", used for exception handling.
3201
3202 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
3203
3204         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
3205         their size on all platforms for perf reasons.
3206
3207 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3208
3209         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
3210         object-internal.h
3211
3212         * object-internal.h: Same.
3213
3214 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3215
3216         * reflection.h: Fix the build I just broke.
3217
3218 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3219
3220         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
3221         Test if a token is valid, this remove explicit usage of 
3222         MonoDynamicImage::tokens from the verifier code.
3223
3224         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
3225
3226         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
3227         instead of direct access to MonoDynamicImage::tokens.
3228
3229 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3230
3231         * verify.c (token_bounds_check): Fix the build I just broke.
3232
3233 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3234
3235         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
3236
3237         * verify.c (verifier_load_method): Fixed the errors message.
3238
3239         * verify.c (mono_method_verify): Fixed a debug message.
3240
3241 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
3242
3243         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
3244         mono-perfcounters.h, class-internals.h: support for predefined
3245         writable counters, query of categories and counters, bugfixes.
3246
3247 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3248
3249         * verify.c (do_refanytype): Verify the refanytype opcode.
3250
3251         * verify.c (mono_method_verify): Use do_refanytype.
3252
3253 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3254
3255         * verify.c (do_mkrefany): Verify the mkrefany opcode.
3256
3257         * verify.c (mono_method_verify): Use do_mkrefany.
3258
3259 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
3260
3261         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
3262         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
3263         implementation.
3264
3265 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3266
3267         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
3268         the type load exception.
3269
3270 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
3271
3272         * verify.c: Added a few FIXME for method signatures
3273
3274         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
3275         of mono_method_get_signature and get vararg call working. Removed unused
3276         checks for return value.
3277
3278         * verify.c (do_refanyval): Verify the refanyval opcode.
3279
3280         * verify.c (mono_method_verify): Implemented verification of arglist and
3281         use do_refanyval.
3282
3283 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3284
3285         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
3286         vtypes to marshal.c.
3287
3288         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
3289         it works for AOT as well.
3290
3291 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3292
3293         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
3294         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
3295         the system time is adjusted.
3296
3297 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
3298
3299         * icall.c, icall-def.h: use the new time functions (fixes the
3300         non-monotonic behaviour of TickCount).
3301
3302 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
3303
3304         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
3305         it breaks the build.
3306         
3307         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
3308         cattr is not finished yet.
3309
3310 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3311
3312         * verify.c: Proper token validation for field, method and type.
3313
3314 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3315
3316         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
3317
3318         * loader.c (method_from_memberref): Generate type load error instead of method missing
3319         if the type is not found.
3320
3321 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
3322
3323         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
3324         some of the conversions caused the generation of a marshal directive exception.
3325
3326 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3327
3328         verify.c: Report which exception should be thrown by the JIT.
3329         Added a lot of FIXME notes.
3330
3331 2008-02-22  Mark Probst  <mark.probst@gmail.com>
3332
3333         * generic-sharing.c: Runtime generic context slots are not
3334         instantiated on init anymore.  Instead, provide function to do the
3335         instantiating on demand.
3336
3337         * class-internals.h: Added vtable to runtime generic context.
3338         Macros for encoding direct and indirect slot offsets in one
3339         guint32.
3340
3341 2008-02-21  Mark Probst  <mark.probst@gmail.com>
3342
3343         * object.c, generic-sharing.c: Moved some generic sharing code
3344         from object.c to generic-sharing.c.
3345
3346         * generic-sharing.c: Added support for extensible runtime generic
3347         context.
3348
3349         * metadata-internals.h: Two new hash tables in MonoImage for
3350         extensible runtime generic context support.
3351
3352         * domain.c: Unregister generic vtables upon domain unloading.
3353
3354         * image.c: Destroy new hash tables upon image unloading.
3355
3356         * metadata.c: Unregister generic subclasses upon image unloading.
3357
3358         * class-internals.h: New data structure for runtime generic
3359         context template.  New fields in the runtime generic context for
3360         extensible part.
3361
3362         * Makefile.am: Added generic-sharing.c.
3363
3364 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3365
3366         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
3367         there is a pending loader exception, raise it.
3368
3369         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3370         same.
3371
3372         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
3373         same.
3374
3375         Fixes #363450.
3376
3377 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
3378
3379         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
3380
3381         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
3382         
3383         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
3384         ref-only requests for compatibility with MS.
3385
3386 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3387
3388         * reflection.c (mono_custom_attrs_from_method): Don't silently
3389         return an empty list for generic method instances.
3390         (mono_custom_attrs_from_param): Likewise.
3391
3392 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
3393             Raja R Harinath  <harinath@hurrynot.org>
3394
3395         Fix #354757
3396         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
3397         * class.c (mono_class_inflate_generic_method_full): Initialize it
3398         when a fully-open method is instantiated.
3399         * metadata.c (inflated_method_equal, inflated_method_hash): Update
3400         to new field.
3401         * reflection.c (inflate_mono_method): Don't create a temporary context.
3402
3403 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3404
3405         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3406         Compute correct value, to prepare for imethod->reflection_info going away.
3407
3408 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
3409
3410         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
3411
3412 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3413
3414         * verify.c: Implement skip visibility flag.
3415
3416 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3417
3418         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
3419         which contains an extra field to tell the kind of exception that should be thrown.
3420
3421         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
3422
3423 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
3424
3425         * loader.c (mono_method_get_param_names): Initialize 'klass' after
3426         'method' is updated.
3427
3428 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
3429
3430         * class.c (mono_class_layout_fields): Set class->min_align for classes using
3431         explicit layout as well. Fixes #360375.
3432
3433 2008-02-11  Geoff Norton  <gnorton@novell.com>
3434
3435         * loader.c: Guard and dereference against inflated generic methods
3436
3437 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
3438
3439         * class.c: Include Retargetable spec in assembly name.
3440         * assembly.c: Always include PublicKeyToken spec in assembly name
3441         (with value "null" if assembly is not signed), and include
3442         Retargetable spec.
3443         * icall-def.h: Added icall for Assembly.get_fullname.
3444         * icall.c: Added icall returning the fullname of an assembly.
3445
3446 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
3447
3448         * class.c (mono_class_setup_vtable_general): Add a missing call to
3449         mono_class_setup_methods () which is needed in the AOT case.
3450
3451 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
3452
3453         * verify.c (mono_type_get_stack_name): Added. Return the name for the
3454         stack type of the given MonoType.
3455
3456         * verify.c (verify_type_compatibility_full): Handle the void type.
3457
3458         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
3459         way stack merging works.
3460
3461         * verify.c (store_local): Improved verification message.
3462
3463         * verify.c (do_branch_op): If the merging is invalid, the method
3464         is unverifiable and not invalid. Improved error message.
3465
3466         * verify.c (merge_stacks): Properly merge a boxed valuetype and
3467         a reference type diferent than System.Object. Improved error
3468         message.
3469
3470 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
3471
3472         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
3473
3474         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
3475         type of an enum even if the argument is byref.
3476
3477         * verify.c: Replace all explicit uses of enumtype and enum_basetype
3478         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
3479
3480         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
3481
3482         *verify.c (verify_type_compatibility_full): Make enum types
3483         compatible with their base types.
3484
3485         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
3486         types are compatible for the special case of a boxed valuetype and
3487         System.Object.
3488
3489         * verify.c (verify_stack_type_compatibility): The function
3490         is_compatible_boxed_valuetype was extracted from here.
3491
3492         * verify.c (push_arg): Only set ctx->has_this_store if the method
3493         is not static.
3494
3495         * verify.c (do_ldelem): Fixed a typo in an error message and added
3496         strict check for mixing int32 and native int as the array type
3497         and ldelem type.
3498
3499         * verify.c (merge_stacks): Consider boxed valuetypes in the
3500         compatibility checks.
3501
3502 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
3503         * profiler.h: (MonoGCEvent): Added start-stop the world events.
3504
3505 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3506         *class.c: use_new_interface_vtable_code: renamed the env var to have
3507         a "MONO_" prefix, and fix the logic to enable it by default.
3508
3509 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3510         *class.c:
3511         mono_class_setup_vtable_general: rewrote the way in which interface
3512         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
3513         makes the code more maintainable.
3514         For now the old code is still there, and can be activated setting
3515         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
3516
3517 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
3518
3519         * verify.c: guarded some debug functions around and #ifdef.
3520
3521         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
3522
3523 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
3524
3525         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
3526         changes for now since they seem to break too many things.
3527
3528 2008-02-05  Mark Probst  <mark.probst@gmail.com>
3529
3530         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
3531         mono_marshal_find_nonzero_bit_offset): Added macro and function
3532         for finding the byte- and bit-offset of a bitfield within a
3533         struct.
3534
3535 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
3536
3537         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
3538         (mono_marshal_get_struct_to_ptr): Ditto.
3539
3540         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
3541         cctor_signature.
3542
3543 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
3544
3545         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
3546         between methods for non-corlib types.
3547
3548 2008-02-02  Geoff Norton  <gnorton@novell.com>
3549
3550         * loader.c (mono_method_get_param_names): Populate the parameter name for 
3551         generic parameters as well. (Fixes #342536)
3552
3553 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
3554
3555         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
3556
3557         * verify.c (do_invoke_method): Fix for calling with byref structs.
3558
3559         * verify.c (do_cast): push a boxed value type based on the type token and not
3560         the type of stack.
3561
3562 2008-01-31  William Holmes  <billholmes54@gmail.com>
3563
3564         * process.c (process_module_string_read): Check the size returned form 
3565           VerQueryValue to avoid out of memory exception. 
3566
3567 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
3568
3569         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3570         Handle properly modules which are not in the moduleref table. Fixes
3571         #356938.
3572
3573 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
3574
3575         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
3576         the dynamic case which is now in managed code.
3577         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
3578
3579         * marshal.c (mono_string_to_bstr): Fix a warning.
3580         (init_com_provider_ms): Ditto.
3581
3582         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
3583
3584         * exception.c (mono_get_exception_out_of_memory): New helper function.
3585
3586 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
3587
3588         * marshal.c: Add support for BSTR marshalling
3589         using other COM systems.
3590
3591         Code is contributed under MIT/X11 license.
3592
3593 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3594
3595         * object.c (mono_runtime_invoke_array): reverted previous
3596         commit as it breaks the build.
3597
3598 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3599
3600         * object.c (mono_runtime_invoke_array): Verify arguments for
3601         invalid types. Fixes #348522.
3602
3603 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3604
3605         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
3606         non-final virtual calls using call. 
3607
3608         * verify.c (do_invoke): fixed some TODOs.
3609
3610         * verify.c (push_arg): set has_this_store for "ldarga 0".
3611
3612 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
3613
3614         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
3615         which belong to an inflated class. Fixes #356531.
3616
3617 2008-01-26  Robert Jordan  <robertj@gmx.net>
3618
3619         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
3620         which resort to FindFirstFile when a certain error condition
3621         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
3622         Code is contributed under MIT/X11 license.
3623
3624 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
3625
3626         * marshal.c (emit_marshal_string): Fix out string marshalling
3627         to use specified encoding. Fixes #323900.
3628
3629         Code is contributed under MIT/X11 license.
3630
3631 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
3632
3633         * class.c (mono_class_inflate_generic_method_full): Don't modify
3634         iresult->context after cache check.
3635
3636 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
3637
3638         * class.c (mono_class_inflate_generic_method_full): Change the
3639         struct assignments to memcpy for better visibility and add some comments.
3640
3641 2008-01-23  Dick Porter  <dick@ximian.com>
3642
3643         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
3644         procedure, and make it work on windows.
3645
3646 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
3647
3648         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
3649         a MonoReflectionTypeBuilder since it is always of that type.
3650
3651         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
3652
3653         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
3654
3655         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
3656         
3657         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
3658
3659         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
3660
3661         * reflection.c (mono_reflection_create_runtime_class): Remove already created
3662         instantiations from the type cache.
3663
3664 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3665
3666         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
3667
3668         * verify.c (do_unbox_value): push a controled mutability managed pointer.
3669
3670 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3671
3672         * verify.c (do_ldstr): added, verifies if the #US token is valid.
3673
3674         * verify.c (mono_method_verify): removed old TODO
3675
3676 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3677
3678         * verify.c (do_newobj): add visibility check.
3679
3680 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3681
3682         * verify.c (do_load_function_ptr): add visibility check.
3683
3684 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
3685         *class.c:
3686         mono_generic_class_get_class: hook profiler events.
3687         mono_field_get_offset: added to support heap-shot in the new profiler.
3688         *class.h: exported mono_field_get_offset.
3689         * reflection.c:
3690         mono_reflection_setup_internal_class: hook profiler events.
3691
3692 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
3693
3694         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
3695         argument here too and use it to avoid checking for pending exceptions if 
3696         possible.
3697
3698 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
3699
3700         * assembly.c (build_assembly_name): add arg for passing the assembly
3701         flags. Do not consider a PublicKey with value "null" valid.
3702         (mono_assembly_name_parse_full): added boolean argument that will be
3703         set if the assembly name contains a PublicKeyToken spec. Added support
3704         for the Retargetable spec for which only Yes or No are allowed as valid
3705         value. Consider assembly name invalid if Retargetable spec is set, but
3706         either version, culture or public key (token) are not specified.
3707         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
3708         with implementation in assembly.c.
3709         * icall.c (fill_reflection_assembly_name): also copy assembly flags
3710         from MonoAssemblyName.
3711         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
3712         introduced argument for mono_assembly_name_parse_full to know if the
3713         assembly name has a PublicKeyToken spec, and if it has instruct
3714         fill_reflection_assembly_name to use default value for keyToken (if
3715         PublicKeyToken is null).
3716
3717 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
3718
3719         * verify.c (mono_method_verify): fixed ovf ops with
3720         float values. They are unverifiable now.
3721
3722 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
3723
3724         * class.c (set_failure_from_loader_error): add BadImageException to the
3725         list of exceptions that can cause a type to fail to load.
3726
3727         * class.c (mono_class_get_exception_for_failure): same.
3728
3729 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
3730
3731         * verify.c (in_any_exception_block): added, check if offset
3732         is part of any exception handling clause.
3733
3734         * verify.c (get_stack_type): added VAR and MVAR types.
3735
3736         * verify.c (do_stobj): better error messages.
3737
3738         * verify.c (do_cpobj): added, check cpobj.
3739
3740         * verify.c (do_initobj): added, check initobj.
3741
3742         * verify.c (do_sizeof): added, check sizeof.
3743
3744         * verify.c (do_localloc): added, check localloc.
3745
3746         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
3747
3748 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
3749
3750         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
3751         save_lmf/restore_lmf opcodes.
3752
3753         * threads.c (mono_threads_install_notify_pending_exc): New function to
3754         install a callback notifying the JIT there is a pending exception on a thread.
3755         (mono_thread_request_interruption): Call the new callback.
3756         (mono_thread_get_and_clear_pending_exception): New function to return the
3757         exception pending on a thread.
3758
3759         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
3760         to turn off checking for pending exceptions.
3761         (mono_marshal_get_native_wrapper): Ditto.
3762
3763 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
3764
3765         * threads-types.h: Get rid of the unnecessary extern declarations.
3766
3767 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
3768
3769         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
3770         return field from parent class if not private.
3771         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
3772         returns fields from parent class if they are not private.
3773         (method_nonpublic): added function to determine if a given method
3774         should be considered non-public. Returns false for private methods
3775         on parent class, and internal methods from parent on the 1.0 profile.
3776         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
3777         use method_nonpublic function to determine whether method should be
3778         returned.
3779         (property_accessor_public): use newly introduced method_nonpublic
3780         function to determine whether accessor is non-public. 
3781         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
3782         event from parent class if not private. Only return static event if
3783         Static flag is set, and only return static event from parent class if
3784         FlattenHierarchy flag is set.
3785         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
3786         include non-private events from parent class.
3787
3788 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
3789
3790         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
3791         warning.
3792
3793 2008-01-16  Wade Berrier <wberrier@novell.com>
3794
3795         * security.c: Add assembly.h header to appease some warnings
3796
3797 2008-01-16  Dick Porter  <dick@ximian.com>
3798
3799         * process.c (process_module_string_read): Remove trailing null
3800         when saving string.
3801
3802 2008-01-16  Mark Probst  <mark.probst@gmail.com>
3803
3804         * class-internals.h: A new data structure describing the layout of
3805         a runtime generic context (MonoRuntimeGenericContextTemplate).
3806
3807         * metadata-internals.h: Added a hash table to MonoDomain that maps
3808         from open generic classes to their runtime generic context
3809         templates.
3810
3811         * object.c: Building of the runtime generic context, including
3812         proper handling of generic type arguments of superclasses.
3813         Building of the runtime generic context according to the template.
3814
3815 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
3816
3817         * class.c (mono_class_setup_fields): Set field.count for generic instances.
3818         Fixes #350856.
3819
3820         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
3821         mono_portability_find_file (). Fixes #325466.
3822         (mono_image_get_public_key): Fix a warning.
3823
3824 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
3825
3826         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
3827         Fixes #353550.
3828         (mono_class_from_name_case): Ditto.
3829
3830 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
3831
3832         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
3833           common storage for the tables used in the System/NumberFormatter class.
3834
3835 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
3836
3837         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
3838
3839 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
3840
3841         * verify.c (get_boxable_mono_type): check if the token is valid.
3842
3843         * verify.c (set_stack_value): changed to add an error if an
3844         invalid type is set on stack. Changed all callers due to signature change.
3845
3846         * verify.c (do_stobj): implement stobj validation.
3847
3848 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
3849
3850         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
3851         set container->is_method, it was set earlier.
3852
3853         * metadata.c (type_in_image): Handle MVARs which belong to not finished
3854         generic methods.
3855
3856         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3857         is_method of the generic container to TRUE for methods.
3858
3859 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * metadata.c (type_in_image): Handle type parameters properly.
3862
3863         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
3864         memory ownership of this structure.
3865
3866 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
3867
3868         * verify.c (get_boxable_mono_type): make typedref types been just
3869         unverifiable. check for void type.
3870
3871         * verify.c (do_unbox_any): added, verify opcode unbox.any.
3872
3873         * verify.c (do_load_function_ptr): accept method spec tokens.
3874
3875 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
3876
3877         * marshal.c (mono_class_native_size): Always set *align even if this is called
3878         recursively.
3879
3880 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
3881
3882         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
3883         out-of-date.
3884
3885 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
3886
3887         * verify.c: removed some old unused tables. A huge bunch of small fixes
3888         to things found while testing the verifier with mono basic.
3889
3890         * verify.c (dump_stack_value): dump null literal flag to.
3891
3892         * verify.c (verify_type_compatibility_full): fix comparison
3893         for types that have a generic super type.
3894
3895         * verify.c (verify_stack_type_compatibility): fix compatibility
3896         between null literals and reference types. fix compatibility between
3897         boxed valuetypes and object. fix corner case test for enums.
3898
3899         * verify.c (do_cmp_op): proper verification of cgt.un in case
3900         of reference types.
3901
3902         * verify.c (do_invoke_method): fix error message.
3903
3904         * verify.c (do_store_indirect
3905
3906         * verify.c (check_is_valid_type_for_field_ops): proper verification
3907         of managed pointers to valuetypes and boxed valuetypes. proper verification
3908         of null literals.
3909
3910         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
3911         allow token to be a reference type.
3912
3913         * verify.c (do_cast): proper handling of boxes valuetypes.
3914
3915         * verify.c (do_stelem): proper handling of storing a boxed valuetype
3916         in object[].
3917
3918         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
3919         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
3920         fixed the decoding of unbox_any
3921
3922 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
3923
3924         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
3925
3926 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
3927
3928         * verify.c (do_newobj): do delegate verification.
3929
3930         * verify.c (verify_delegate_compatibility): perform delegate
3931         verification.
3932
3933         * verify.c (verify_ldftn_delegate): perform tests related to
3934         ldftn delegates.
3935
3936         * verify.c (mono_delegate_signature_equal): perform the
3937         slightly diferent signature comparison required by delegates.
3938
3939         * metadata.c (mono_metadata_type_equal_full): added and exported
3940         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
3941         allows signature only comparison.
3942
3943         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
3944         as MONO_INTERNAL.
3945
3946 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
3947
3948         * verify.c: added a bunch of stack_slot_* functions to
3949         make access to stack slot type easier. This is required to
3950         allow optional flags, like null literal, boxed value and
3951         this pointer.
3952         All access paths to IlStackDesc::stype have been changed 
3953         to use these new funcions.
3954         Removed a bunch of unused functions and cleared all warnings.
3955         This patch introduces the usage of the this pointer and 
3956         boxed value flags.
3957
3958 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
3959
3960         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
3961
3962 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
3963
3964         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
3965         match managed version.
3966
3967         * appdomain.c: Bump corlib version.
3968         
3969         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
3970         argument.
3971
3972 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
3973
3974         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
3975         Set public key token to zero-length byte array if assembly is not
3976         strongnamed.
3977
3978 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
3979
3980         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
3981         writing a vtype array elem.
3982
3983 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
3984
3985         * assembly.c (build_assembly_name): return FALSE if length of token is
3986         not 16 (if not "null").
3987         (mono_assembly_name_parse_full): return FALSE if value of version,
3988         culture, token or key is 0.
3989         * icall.c (fill_reflection_assembly_name): add boolean arguments to
3990         specify whether public key and public key token must be set to default
3991         value (zero-length byte array) if not available. Set versioncompat to
3992         SameMachine. If public key is available or the default is set, then
3993         set PublicKey flag.
3994         (ves_icall_System_Reflection_Assembly_FillName): if no public key
3995         is available, use empty byte array as default value. On the 2.0
3996         profile, use default value for public key token if not set.
3997         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
3998         profile, use default value for public key if not set. On the 2.0
3999         profile, use default value for public key token if not set.
4000         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
4001         default values for public key and public key token.
4002
4003 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
4004
4005         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
4006         field to keep it in synch with the managed object.
4007
4008         * marshal.c (emit_marshal_object): Add support for byref marshalling of
4009         delegates. Fixes #351520.
4010
4011         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
4012         contains defined memory.
4013         
4014         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
4015
4016         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
4017         
4018         * sgen-gc.c (check_consistency): New helper function to do a consistency check
4019         of the GC data structures.
4020
4021         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
4022
4023         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
4024         
4025         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
4026         barrier.
4027         (mono_array_clone_in_domain): Ditto.
4028         (mono_array_clone_in_domain): Ditto.
4029
4030         * threads.c (start_wrapper): Register the thread start argument as a GC root.
4031         (cache_culture): Use a write barrier.
4032
4033         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
4034         (ves_icall_get_property_info): Ditto.
4035
4036         * object.h (MONO_STRUCT_SETREF): New macro.
4037
4038         * class-internals.h (MonoStats): Add some GC statistics.
4039
4040         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
4041
4042 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
4043
4044         * exception.c (mono_exception_from_name_two_strings):
4045         Break from loop after method is found.
4046
4047 2008-01-04  Dick Porter  <dick@ximian.com>
4048
4049         * process.c (process_module_string_read): Rename variable to
4050         reflect correct usage, after fixing bug 345972.
4051
4052 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
4053
4054         * verify.c (mono_type_create_fnptr_from_mono_method): 
4055         created a MonoType function pointer instance to be used during
4056         verification. The verifier releases this memory at end.
4057
4058         * verify.c (mono_method_is_constructor): extracted repeated
4059         checks for constructor into a single class.
4060
4061         * verify.c (do_push_field): use new extracted method
4062         for constructor check.
4063
4064         * verify.c (do_newobj): same.
4065
4066         * verify.c (do_ldftn): renamed to do_load_function_ptr
4067         and make it verify ldvirtftn too.
4068
4069         * verify.c (mono_method_verify: proper verification
4070         of ldvirtftn. release created MonoMethod instances.
4071
4072 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
4073
4074         * verify.c (token_bounds_check): added.
4075
4076         * verify.c (do_ldftn): added.
4077
4078         * verify.c (mono_method_verify): proper verificartion of ldftn.
4079
4080 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
4081
4082         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
4083         than the table row count. It's the resposibility of the caller to
4084         make the bounds check and raise the correct error.
4085
4086         * metadata.c (mono_metadata_decode_row_col): Same.
4087
4088         * loader.c (mono_get_method_from_token): perform bounds check
4089         on token for methoddef table.
4090
4091 2007-12-29  Miguel de Icaza  <miguel@novell.com>
4092
4093         * icall.c
4094         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
4095         assert into a negative result, the managed code already coped with
4096         that.
4097
4098         Some folks on Windows reported this error. 
4099
4100 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
4101
4102         * appdomain.c: Bump corlib version.
4103         * icall.c:
4104         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
4105         CultureInfo.CreateCulture to create CultureInfo for name.
4106         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
4107         create CultureInfo for name. Fixes bug #347174.
4108
4109 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4110
4111         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
4112         flags.
4113
4114         * verify.c (is_valid_branch_instruction): allow branching to the
4115         first instruction of the protected block.
4116
4117         * verify.c (is_valid_cmp_branch_instruction): same.
4118
4119         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
4120         avoid double initialization.
4121
4122         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
4123         detect which cases the eval stack should just be copied.
4124
4125         * verify.c (mono_method_verify): check if the eval stack
4126         is empty when entering a protected block.
4127
4128 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
4129
4130         * verify.c: added is_clause_in_range, is_clause_inside_range,
4131         is_clause_nested and verify_clause_relationship. They perform
4132         the verifications stated in P1 12.4.2.7.
4133
4134         * verify.c (mono_method_verify): remove some unused variables,
4135         add the new exception clause checks, add instruction border
4136         checks for protected block start/end, improved some error 
4137         messages and fixed a bug in the way invalid instruction access
4138         is detected.
4139
4140 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
4141
4142         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
4143         from GC 7.0 if available.
4144
4145         * object.c: Remove an unused define.
4146         
4147         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
4148
4149         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
4150
4151         * null-gc.c (mono_gc_make_descr_for_array): Implement.
4152
4153         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
4154
4155         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
4156         to take the same arguments as the other make_descr functions.
4157
4158         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
4159
4160         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
4161         directly.
4162
4163         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
4164         mini.c.
4165
4166         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
4167         call to boehm-gc.c.
4168
4169         * boehm-gc.c (mono_gc_register_root): Fix a warning.
4170
4171         * null-gc.c (mono_gc_register_root): Fix a warning.
4172
4173         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
4174
4175         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
4176         (mono_gc_base_init): Call GC_init ().
4177
4178         * null-gc.c: Define mono_gc_register_root () as a no-op.
4179
4180         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
4181
4182 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
4183
4184         * verify.c: add prototype for merge_stacks at top
4185
4186         * verify.c (do_switch): added.
4187
4188         * verify.c (merge_stacks): on some cases the stack merging
4189         was not happening properly. Unequal stack sizes at merge
4190         points should be invalid.
4191
4192         * verify.c (mono_method_verify): added more debug info on stack state.
4193         verify switch properly.
4194
4195 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
4196
4197         * method-builder.h: New file, moved the mono_mb_ declarations here from 
4198         marshal.h.
4199
4200         * boehm-gc.c marshal.c: Include method-builder.h.
4201
4202         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
4203
4204         * marshal.c: Remove some code which is now in method-builder.c.
4205
4206 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
4207
4208         * method-builder.c: New file, extraction of the method builder functionality 
4209         from marshal.c.
4210
4211         * marshal.c: Move the mb functions into method-builder.c.
4212
4213         * marshal.h marshal.c: Export some mono_mb_... functions.
4214
4215         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
4216
4217         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
4218         the caller.
4219
4220         * class.c (mono_class_get_full): Check the token type in the dynamic case.
4221
4222         * loader.c (mono_field_from_token): Ditto.      
4223
4224         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
4225         type as well.
4226         
4227         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
4228         Fixes #342565.
4229
4230         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
4231         a helper function for setting it.
4232
4233         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
4234
4235         
4236         * assembly.c: Significally simplify code now that referenced assemblies are 
4237         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
4238
4239         * threads.h: Don't include  the internal threads-types.h header file. Fixes
4240         #349952.
4241
4242 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
4243
4244         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
4245         instructions that were target of branches or are at protected block boundaries.
4246
4247         * verify.c (in_same_block): handle filter clauses.
4248
4249         * verify.c (is_valid_branch_instruction): added. checks the target of
4250         instructions br or brtrue/false.
4251
4252         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
4253         binary branch instructions such as beq and bge.
4254
4255         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
4256         and made it pin the instruction as been part of the exception block.
4257
4258         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
4259         of in_same_block.
4260
4261         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
4262         of in_same_block.
4263
4264         * verify.c (do_ret): ret from a protected block is unverifiable and
4265         not invalid.
4266
4267         * verify.c (do_static_branch): verify br and br.s instructions.
4268
4269         * verify.c (merge_stacks): add extra param to support detection
4270         of branches in the middle of instructions.
4271         
4272         * verify.c (mono_method_verify): verify branches and exception blocks
4273         that target the middle of instructions. Proper verification of br and br.s.
4274
4275 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
4276
4277         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
4278         skip_visibility field.
4279         (reflection_methodbuilder_from_dynamic_method): Ditto.
4280
4281         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
4282         registrations. Fixes #348193.
4283
4284         * threads.h: Move the internal mono_thread_get_pending_exception () to
4285         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
4286
4287 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
4288
4289         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
4290         icall registration. Fixes #348193.
4291
4292         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
4293         for corlib classes into object. Fixes #349621.
4294
4295 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
4296
4297         * icall.c (property_accessor_nonpublic): new function to determine
4298         whether an accessor allows a property to be considered non-public.
4299         Returns false for private accessor(s) from parent class, and internal
4300         accessor(s) from parent on 2.0 profile (and higher).
4301         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
4302         to determine whether property should be included if NonPublic flag
4303         is set. Fixes bug #349078.
4304
4305 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
4306
4307         * verify.c (init_stack_with_value): added.
4308
4309         * verify.c (mono_method_verify): extracted common
4310         code for exception initialization into init_stack_with_value.
4311
4312         * verify.c (mono_method_verify): initialize the exception
4313         for handler clauses as well.
4314
4315         * verify.c (mono_method_verify): fix the exception clause
4316         ordering rules, it should use handler end offset and not
4317         start offset.
4318
4319 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
4320
4321         * rawbuffer.c: remove useless warning.
4322
4323 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
4324
4325         * threads.h, threads-types.h: move functions to the correct header
4326         (fixes bug#349952).
4327
4328 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4329
4330         * verify.c (mono_method_verify): proper verification
4331         of exception handling clauses ranges and fallthru in
4332         and out of protected blocks.
4333
4334 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4335
4336         * verify.c (mono_method_verify): fixed compilation issue.
4337
4338 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4339
4340         * verify.c (mono_method_verify): a printf slipped in, changed
4341         to use verifier debug macro.
4342
4343 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
4344
4345         * verify.c (is_correct_leave): check for filter clauses.
4346
4347         * verify.c (do_filter): added.
4348
4349         * verify.c (mono_method_verify): property verification of leave.
4350
4351
4352 2007-12-18  Mark Probst  <mark.probst@gmail.com>
4353
4354         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
4355         Win32 build, until we figure out how to do the proper thing on
4356         Win32.
4357
4358 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
4359
4360         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
4361         by the previous patch.
4362         
4363         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
4364         the assembly resolve handler for refonly assemblies.
4365
4366 2007-12-17  Mark Probst  <mark.probst@gmail.com>
4367
4368         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
4369         Make sure only one thread is allowed to commence shutdown, and
4370         don't allow new threads to be started once shutdown is in
4371         progress.
4372
4373 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
4374
4375         * verify.c (is_correct_endfilter): added.
4376
4377         * verify.c (is_unverifiable_endfilter): added.
4378
4379         * verify.c (do_endfilter): added.
4380
4381         * verify.c (mono_method_verify): property verification of endfilter
4382         and fixed a corner case or endfinally.
4383
4384 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
4385
4386         * verify.h: new flags to support fail fast of unverifiable code and
4387         do non-strict verification. Non-strict verification is required to
4388         have MS runtime compatibility. There are a huge amount of unverifiable
4389         code that it accepts as verifiable. The strict mode verifies the code
4390         as the specs says.
4391         Non-strict mode will be required in cases where code needs to be
4392         accepted as verifiable but fails under strict mode.
4393
4394         * pedump.c: added support to fail fast and non-strict verification.
4395
4396         * verify.c: added support for both fail fast and non-strict verification.
4397
4398 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
4399
4400         * verify.c (is_correct_endfinally): added.
4401
4402         * verify.c (mono_method_verify): property verification of endfinally.
4403
4404 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4405
4406         * verify.c (in_any_block): check for filter clauses.
4407
4408         * verify.c (is_correct_rethrow): added.
4409
4410         * verify.c (mono_method_verify): property verification of rethrow.
4411
4412         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
4413
4414 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4415
4416         * verify.c (do_throw): added.
4417
4418         * verify.c (mono_method_verify): property verification of throw
4419
4420 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
4421
4422         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
4423         assemblies. Fixes #346425.
4424
4425 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
4426
4427         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
4428         FieldBuilders.
4429
4430         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
4431
4432         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
4433         prevent asserts when this is called with a token which might not be valid.
4434
4435         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
4436         lookup_dynamic_token_class with valid_token == FALSE.
4437
4438         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
4439
4440         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
4441
4442         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
4443         
4444 2007-12-10  Mark Probst  <mark.probst@gmail.com>
4445
4446         * gc.c: Don't delay threadpool thread finalization unless Mono is
4447         shutting down.
4448
4449 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4450
4451         * threads.c: turn an assert into a non-fatal warning.
4452
4453 2007-12-09  Robert Jordan  <robertj@gmx.net>
4454
4455         * icall.c (GetVirtualMethod): Add missing argument validation.
4456
4457 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4458
4459         * verify.c (do_cast): added.
4460
4461         * verify.c (mono_method_verify): property verification of castclass and isinst.
4462
4463
4464 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4465
4466         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
4467
4468         * verify.c (do_stelem): added.
4469
4470         * verify.c (mono_method_verify): property verification of stelem.X.
4471
4472 2007-12-07  Mark Probst  <mark.probst@gmail.com>
4473
4474         * class.c, class-internals.h: Introduce an environment variable
4475         (MONO_GENERIC_SHARING) through which the extent of generic code
4476         sharing can be controlled (share all classes, share only corlib
4477         classes, or share nothing).
4478
4479         * object.c: Only create runtime generic context for classes for
4480         which sharing is enabled.
4481
4482 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4483
4484         * verify.c (do_ldelem): refactor it to work with ldelem.any.
4485
4486         * verify.c (mono_method_verify): property verification of ldelem.any.
4487
4488 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4489
4490         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
4491         added ldelem.X opcodes.
4492
4493         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
4494
4495         * verify.c: proper verification of ldelem.X 
4496
4497 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
4498
4499         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
4500
4501 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4502
4503         * verify.c (mono_method_verify): null literal requires special handling,
4504         the value pushed on stack need to be flagged as so.
4505
4506         * verify.c (do_ldelema): Verify ldelema properly.
4507
4508 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4509
4510         * verify.c: Verify ldlen properly.
4511
4512 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
4513
4514         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
4515         to the target object's type. Fixes #346160.
4516
4517 2007-12-05  Dick Porter  <dick@ximian.com>
4518
4519         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
4520         Solaris needs the same workaround as BSD-derived systems.  Fixes
4521         bug 323524, patch by Burkhard Linke
4522         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
4523
4524 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
4525
4526         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
4527         handle to use when error dialog is shown; otherwise, update mask
4528         to show no error dialog when an error occurs.
4529
4530 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
4531
4532         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
4533
4534         * class.c (mono_class_get_field_default_value): New helper function to initialize
4535         field->def_type and field->data.
4536
4537 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
4538
4539         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
4540         the general one.
4541
4542         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
4543
4544         * marshal.c: Avoid depending on delegate->method_info being set.
4545
4546         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
4547         
4548         * object.c (mono_delegate_ctor): Set delegate->method.
4549
4550         * object-internals.h (struct _MonoDelegate): Add 'method' field.
4551
4552         * appdomain.c: Bump corlib version.
4553
4554 2007-11-27  Raja R Harinath  <harinath@gmail.com>
4555
4556         * metadata.c (mono_generic_inst_equal_full): Short-circuit
4557         equality check if we're comparing canonicalized MonoGenericInsts.
4558
4559 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
4560
4561         * class.c (generic_array_methods): Call mono_class_setup_methods () before
4562         accessing class->methods.
4563
4564 2007-11-22  Dick Porter  <dick@ximian.com>
4565
4566         * threads.c: Ensure that the synch_cs is set before trying to use
4567         it.
4568
4569 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
4570
4571         * profiler.c: r89126 broke the statistial profiler, unbreak.
4572
4573 2007-11-22  Martin Baulig  <martin@ximian.com>
4574
4575         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
4576
4577         * mono-debug.c
4578         (mono_debug_debugger_version): Bump to 3.
4579         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
4580         -> mono_debugger_class_initialized().
4581
4582         * mono-debug-debugger.c
4583         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
4584
4585         * class.c
4586         (mono_debugger_start_class_init_func): Removed.
4587         (mono_debugger_class_loaded_methods_func): Added.
4588         (mono_class_setup_methods): Call it here.
4589
4590 2007-11-22  Martin Baulig  <martin@ximian.com>
4591
4592         * mono-debug.c
4593         (mono_debug_add_delegate_trampoline): New public method.
4594         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
4595
4596         * mono-debug.h
4597         (MonoSymbolTable): Added `global_data_table'.
4598         (MonoDebuggerTypeKind): Removed.
4599
4600 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
4601
4602         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
4603         these methods.
4604
4605         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4606         
4607 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4608
4609         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
4610
4611 2007-11-20  Martin Baulig  <martin@ximian.com>
4612
4613         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
4614
4615         * mono-debug-debugger.c
4616         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
4617         (mono_debugger_remove_breakpoint): Likewise.
4618         (mono_debugger_check_breakpoints): Likewise.
4619         (mono_debugger_register_class_init_callback): New public method.
4620         (mono_debugger_remove_class_init_callback): Likewise.
4621         (mono_debugger_add_type): Likewise.
4622
4623         * mono-debug-debugger.h
4624         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
4625
4626 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
4627
4628         * class.c: more interface implementations needed for the
4629         array enumerator (fixes bug #341112).
4630
4631 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
4632
4633         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
4634         fix ParamName of ArgumentNullExceptions.
4635
4636 2007-11-17  Miguel de Icaza  <miguel@novell.com>
4637
4638         * reflection.c (mono_reflection_encode_sighelper): Generate the
4639         modopts and modreqs.   I have a useless test that crashes monodis,
4640         but that shows the code working.
4641
4642 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
4643
4644         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
4645         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
4646
4647 2007-11-15  Dick Porter  <dick@ximian.com>
4648
4649         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
4650         When joining a thread, it's the thread that's calling Join that
4651         gets WaitSleepJoin state not the target.  Fixes the standalone
4652         test case in bug 334740, and hopefully the whole bug too.
4653
4654 2007-11-15  Dick Porter  <dick@ximian.com>
4655
4656         * process.c: Read file version info from the files pointed at by
4657         process modules, not the current process.  Fixes bug 315969.
4658
4659         Use windows typedef names in some places to fix warnings on the
4660         windows build.
4661
4662 2007-11-15  Mark Probst  <mark.probst@gmail.com>
4663
4664         * image.c, metadata-internals.h: Added a generic_class_cache hash
4665         to MonoImage for looking up generic classes when sharing generics.
4666
4667 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4668
4669         * sgen-gc.c: warning cleanups.
4670
4671 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
4672
4673         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
4674         inherited properties.
4675
4676 2007-11-14  Mark Probst  <mark.probst@gmail.com>
4677
4678         * object.c, class-internals.h: Added more information to the
4679         runtime generic context.
4680
4681 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
4682
4683         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
4684         instead of just the target method. Generalize the abstract method handling to
4685         handle any non-static method.
4686
4687         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
4688         mono_marshal_get_delegate_invoke () signature change.
4689
4690 2007-11-13  Mark Probst  <mark.probst@gmail.com>
4691
4692         * class.c, class-internals.h: Made
4693         mono_type_get_basic_type_from_generic () public.  Fixed member
4694         access check for shared generics.
4695
4696         * loader.c: Don't insert field into field cache if it's part of a
4697         non-inflated generic class.
4698
4699         * domain.c, domain-internals.h: The generic sharing context is now
4700         part of the jit info data structure.  Added two accessor
4701         functions.
4702
4703 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
4704
4705         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
4706         the array Get/Set/Address methods, since the JIT inlines them.
4707
4708         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
4709
4710         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
4711         (mono_image_init): Initialize runtime_invoke_direct_cache.      
4712
4713         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
4714         mono_marshal_get_delegate_invoke signature change.
4715
4716         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
4717         an additional argument. Add support for invoking abstract methods.
4718
4719         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
4720
4721         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
4722
4723 2007-11-09  Mark Probst  <mark.probst@gmail.com>
4724
4725         * class.c: Do field layout for open generic classes as well.
4726
4727 2007-11-09  Mark Probst  <mark.probst@gmail.com>
4728
4729         * gc.c, gc-internal.h: Don't finalize threadpool threads with
4730         other objects, because the threadpool is still around.  Put them
4731         in a list instead and after finalizing all other objects in the
4732         root domain shut down the thread pool and then finalize the
4733         threads.  Fixes bug #337383.
4734
4735         * threads.c, thread-types.h: New mono_thread_create_internal()
4736         function for marking a thread with the threadpool flag before it
4737         started.  Set synch_cs to NULL after freeing it.
4738
4739         * threadpool.c: Mark threadpool threads before they start.
4740
4741 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4742
4743         * reflection.h, reflection.c: don't export random functions
4744         and lazy load dbnull and missing objects.
4745
4746 2007-11-07  Jonathan Chambers <joncham@gmail.com>
4747
4748         * class.c: Initialize COM types if COM interfaces
4749         are present (not just COM classes).
4750         
4751         Code is contributed under MIT/X11 license.
4752
4753 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
4754         * reflection.c:
4755         create_dynamic_mono_image: hook module profiler events (dynamic case).
4756         mono_image_basic_init: hook assembly profiler events (dynamic case).
4757
4758 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
4759         * profiler.c:
4760         simple_appdomain_unload: completely terminate the profiler
4761         instead of only processing the statistical samples.
4762         simple_shutdown: make sure this is really called exactly once,
4763         even in multithreaded applications, and always listen to
4764         appdomain events.
4765         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
4766         here, the "[un]load" functions will do it.
4767         Fixes bugs #333791 and #325261.
4768
4769 2007-11-07  Geoff Norton  <gnorton@novell.com>
4770
4771         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
4772         rather than depend on __APPLE__.
4773
4774 2007-11-07  Mark Probst  <mark.probst@gmail.com>
4775
4776         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
4777
4778 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
4779
4780         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
4781         UTF16 MonoString. Fix the crash from bug #335488
4782
4783 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
4784
4785         * marshal.c: Correct (for non-Win32 OS) length != size in 
4786         mono_string_from_bstr. Fix #339530.
4787
4788 2007-11-06  Geoff Norton  <gnorton@novell.com>
4789
4790         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
4791         to succeed
4792
4793 2007-11-05  KornĂ©l Pál  <kornelpal@gmail.com>
4794
4795         * process.c: Added run-time GetProcessId API detection for Windows.
4796
4797 2007-11-04  Miguel de Icaza  <miguel@novell.com>
4798
4799         * reflection.c  (mono_param_get_objects): If a parameter has the
4800         attribute [System.Runtime.InteropServices.Optional] we should
4801         set the DefaultValue of the ParameterInfo to be
4802         System.Reflection.Missing instead of DBNull.
4803
4804         See bug #339013.
4805
4806         (mono_get_reflection_missing_object): New method,
4807         returns the System.Reflection.Missing.Value singleton instance.
4808
4809 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4810
4811         * culture-info-table.h : regenerated.
4812
4813 2007-11-02  Jonathan Chambers <joncham@gmail.com>
4814
4815         * icall.c: Use GetEnvironmentStrings on windows
4816         so we are using the same environment block as 
4817         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
4818         #333740.
4819         
4820         Code is contributed under MIT/X11 license.
4821
4822 2007-10-31  Martin Baulig  <martin@ximian.com>
4823
4824         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
4825
4826         * mono-debug-debugger.h
4827         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
4828
4829 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
4830
4831         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
4832         classes.
4833
4834 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
4835
4836         * culture-info-table.h : regenerated.
4837
4838 2007-10-30  Robert Jordan  <robertj@gmx.net>
4839
4840         * icall-def.h, icall.c:
4841         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
4842
4843         Code is contributed under MIT/X11 license.
4844
4845 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
4846
4847         * class.c (mono_class_setup_vtable): Find the inflated methods in the
4848         inflated class instead of inflating them again.
4849         
4850         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
4851         dynamic case.
4852
4853         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
4854         Call setup_supertypes () after klass->parent is set.
4855         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
4856
4857         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
4858         for inflated instances of not yet created dynamic generic classes.
4859         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
4860         times from inflated_method.
4861         (methodbuilder_to_mono_method): Ditto.
4862
4863 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4864
4865         * gc.c: code cleanup and removed old untested option of not creating the
4866         finalizer thread.
4867
4868 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
4869
4870         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
4871         creating a jump trampoline for dynamic methods.
4872
4873 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
4874
4875         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
4876         generic TypeBuilders when called from another method of the same type (bug #335131).
4877
4878
4879 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
4880
4881         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
4882         doesn't seem to work perfectly.
4883         
4884         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
4885         called multiple times.
4886         (methodbuilder_to_mono_method): Ditto.
4887         (resolve_object): Inflate FieldBuilder's.
4888
4889 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4890
4891         * string-icalls.c, string-icalls.h, appdomain.c: patch from
4892         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
4893         RemoveEmptyEntries in the string.Split implementation (bug #322375).
4894
4895 2007-10-26  Dick Porter  <dick@ximian.com>
4896
4897         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
4898         Thread initialisation changes
4899
4900 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
4901
4902         * verify.c: fix compatibility check between arrays and System.Array
4903
4904 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
4905
4906         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
4907         too. Fixes #336999.
4908
4909 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
4910
4911         * object.c (mono_value_box): Use typed allocation here.
4912
4913 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
4914
4915         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
4916         trampoline instead of compiling the method right away.
4917
4918         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
4919
4920 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
4921
4922         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
4923         related fields for dynamic classes. Fixes #334493.
4924
4925 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
4926
4927         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
4928         
4929         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
4930
4931         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
4932         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
4933
4934         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
4935
4936         * reflection.c (create_generic_typespec): Initialize klass->generic_container
4937         if needed.
4938         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
4939
4940 2007-10-18  Jonathan Chambers <joncham@gmail.com>
4941
4942         * marshal.c: Use correct key when removing item
4943         from ccw_hash.
4944         
4945         Code is contributed under MIT/X11 license.
4946
4947 2007-10-17  William Holmes  <billholmes54@gmail.com>
4948
4949         *marshal.c: Adding a case to marshal booleans to U1
4950
4951         Code is contributed under MIT/X11 license.
4952
4953 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
4954
4955         * class.c (mono_class_from_name): Search the modules compromising dynamic
4956         assemblies. Fixes #331601.
4957
4958 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
4959
4960         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
4961         exception if the type name contains an assembly component. Fixes #334203.
4962
4963         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
4964         modules inside dynamic assemblies. Fixes #334200.
4965         
4966         * reflection.c: Set image->public_key and image->public_key_length;
4967
4968         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
4969         fields.
4970
4971         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
4972         
4973 2007-10-16  Mark Probst  <mark.probst@gmail.com>
4974
4975         * metadata.c: Implemented correct comparing of generic classes.
4976         An inflated generic class can be equal to a non-inflated one if it
4977         is inflated with generic type variables as type arguments.  Fixes
4978         bug #333798.
4979
4980 2007-10-15  Dick Porter  <dick@ximian.com>
4981
4982         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
4983         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
4984         81646.
4985
4986         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
4987         instead of a monitor lock.  This means that monitor_try_enter and
4988         co can set the thread state safely.
4989         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
4990         thread_interrupt_requested, so interrupt actually works.
4991
4992         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
4993         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
4994         state accessor function
4995
4996 2007-10-15  Martin Baulig  <martin@ximian.com>
4997
4998         * mono-debug.h
4999         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
5000         the debugger with the current runtime.
5001
5002 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
5003
5004         * object.c, object-internals.h: added the ability to set a single
5005         trampoline for all the slots in a vtable.
5006
5007 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5008
5009         * marshal.c: deal with a possible race condition during multicast
5010         delegate invocation.
5011
5012 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5013
5014         * class.c: ensure value type methods don't have the synchronized
5015         flag set.
5016
5017 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
5018
5019         * string-icalls.c, string-icalls.h: reverted unapproved patch that
5020         breaks the build.
5021
5022 2007-10-11  Joel Reed  <joelwreed@comcast.com>
5023
5024         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
5025         to take an options parameter so that empty entries can be removed during
5026         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
5027
5028 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5029
5030         * marshal.c: make sure we don't store the signature from a dynamic
5031         method into the runtime invoke cache (bug #327189).
5032
5033 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5034
5035         * marshal.c: make sure the wrapper methods are properly initialized.
5036
5037 2007-10-11  Mark Probst  <mark.probst@gmail.com>
5038
5039         * metadata.c, metadata-internals.h: Generalized
5040         mono_type_stack_size() to mono_type_stack_size_internal() which
5041         takes an additional argument specifying whether it allows open
5042         types.
5043
5044 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
5045
5046         * verify.c (do_invoke_method): handle typedbyref params
5047         correctly and check for unverifiable return values.
5048
5049         * verify.c (do_newobj): fix a warning.
5050
5051 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
5052
5053         * verify.c: don't tread typedbyref as allways unverifable,
5054         so uses, like (ld/st)loc.0 are valid. verify for the cases
5055         that it matters, like boxing related operations.
5056
5057 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
5058
5059         * verify.c: add verification of the newobj opcode. verification
5060         of delegate instantation still missing due ldftn and virldftn not
5061         pushing the function type on stack
5062
5063 2007-10-08  Mark Probst  <mark.probst@gmail.com>
5064
5065         * class-internals.h: Runtime generic context data structure
5066         definition.
5067
5068         * object.c: Initialization of runtime generic context at runtime
5069         vtable creation time.
5070
5071 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
5072         * class.c (mono_class_create_from_typedef,
5073         mono_class_from_generic_parameter, mono_ptr_class_get,
5074         mono_fnptr_class_get, mono_bounded_array_class_get)
5075         * domain.c (mono_domain_create, mono_domain_free)
5076         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
5077         * image.c (do_mono_image_load, mono_image_close):
5078         Hooked up load-unload profiler events.
5079
5080 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
5081
5082         * domain.c: track statistics about the actual amount of native code
5083         allocated.
5084
5085 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
5086
5087         * class.c: the valuetype enumerators don't have the additional
5088         supertypes interfaces.
5089
5090 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5091
5092         * class.c: need more interfaces setup for the IEnumerator<T>
5093         object created for arrays (tests/ienumerator-interfaces.2.cs).
5094
5095 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
5096
5097         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
5098
5099 2007-10-05  Alp Toker  <alp@atoker.com>
5100
5101         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
5102         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
5103         #315863.
5104
5105 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5106
5107         * verify.c (verify_type_compatibility_full): verification of
5108         compatibility improved, validates correctly non-strict checks between
5109         native int and I4 types different than (unsigned)int32.
5110
5111         * verify.c (do_store_indirect): added, do all verification of
5112         ldind.X opcodes. 
5113
5114         * verify.c (get_load_indirect_mono_type): renamed to
5115         get_indirect_op_mono_type, as it now returns the MonoType for 
5116         ldind.X and stind.X opcodes.
5117
5118 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
5119
5120         * reflection.c: Fix the encoding of generic type definition for
5121         TypeBuilders.
5122
5123         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
5124         mono_image_typedef_or_ref but allows to specify if typespec lookups should
5125         be made. Typespec check is done prior to typeref cache lookup.
5126
5127         * reflection.c (mono_image_typedef_or_ref): now just delegate to
5128         mono_image_typedef_or_ref_full.
5129
5130         * reflection.c (encode_generic_class): encode the generic class
5131         directly instead of calling encode_type.
5132
5133         * reflection.c (encode_type): encode the generic type definition
5134         MonoClass as a generic instantiation.
5135
5136         * reflection.c (create_typespec): cache typespec tokens in
5137         the assembly->typespec cache. Don't create typespec for a generic
5138         instance MonoClass. Create typespec for the generic type defintion.
5139
5140         * reflection.c (create_generic_typespec): encode the generic
5141         class directly instead of calling encode_type.
5142
5143         * reflection.c (mono_image_create_token): encode the generic
5144         type definition not using a typespec for MonoType instances.
5145
5146
5147 2007-10-04  Raja R Harinath  <rharinath@novell.com>
5148
5149         Fix #328812
5150         * class.c (mono_image_init_name_cache): Don't return nested
5151         'protected internal' classes.
5152         (mono_class_from_name_case): Likewise.
5153
5154 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5155
5156         * icall-def.h, icall.c : get_bundled_machine_config() is now the
5157           common function used by both DefaultConfig in System.dll and
5158           InternalConfigurationHost in System.Configuration.dll.
5159
5160 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5161
5162         * class.c: automatically add to vectors only a few essential explicit
5163         generic interfaces. The rest of the interfaces that arrays should
5164         provide are currently implicitly added (but still not lazily, see the
5165         design in the discussion of bug#325495 for the details of what is
5166         needed for that). Additionally, implicit interfaces are assigned the
5167         same vtable slot as the explicit interfaces (as they are compatible):
5168         this enables huge memory savings since we don't need to instantiate
5169         as many memthods and as large vtables anymore. Also, Since
5170         GetEnumerator<T> returns an instance of a type that is required to
5171         support a similarly large set of interfaces as arrays, we add
5172         implicit interfaces and interface offset sharing support to those
5173         types, too. This change adds all the required interfaces so that
5174         the anonarray.cs test case in the bug report works (we don't add
5175         all the interfaces to arrays of arrays 3-level deep and more because
5176         of the memory requirements explained in the bug and since they are much
5177         less common: the lazy-loading support will enabled them to work, too).
5178
5179 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5180
5181         * verify.c (merge_stacks): major clean up, all type compatibility
5182         checks are done by verify_type_compatibility. This fix my earlier lack
5183         of understanding of the CLR type system and merge_stacks no longer looks
5184         scary.
5185
5186         * verify.c: fixed some bad spelling.
5187
5188 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
5189
5190         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
5191         a given stack slock.
5192         
5193         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
5194         verify_type_compatibility_full. This removed a near indentical function and fixed
5195         handling of Int32 and IntPtr across all opcodes.
5196
5197 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5198
5199         * class.c: only vectors have the additional generic interfaces.
5200
5201 2007-10-01  Jonathan Chambers <joncham@gmail.com>
5202
5203         * mono-config.c: Use g_strcasecmp instead of
5204         strcasecmp like everywhere else to fix
5205         compilation with MSVC.
5206         
5207         Code is contributed under MIT/X11 license.
5208
5209 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5210
5211         * object.c, object-internals.h: refactored the IMT code to enable
5212         building a single slot at a time and lazily creating the IMT trampolines
5213         and thunks.
5214
5215 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
5216
5217         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
5218
5219         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
5220         Fixes #328501.
5221         
5222 2007-09-29  Raja R Harinath  <harinath@gmail.com>
5223
5224         * loader.c (method_from_methodspec): Rearrange to avoid
5225         un-necessary exposition.  Don't assert out if the method's
5226         declaring type is a generic type definition.
5227
5228 2007-09-28  Martin Baulig  <martin@ximian.com>
5229
5230         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
5231
5232 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
5233
5234         * class-internals.h: optimize field layout of MonoClass to
5235         requires less cachelines at runtime and save a few bytes on 64 bit
5236         systems.
5237
5238 2007-09-28  Jb Evain  <jbevain@novell.com>
5239
5240         * reflection.c: when encoding type names in custom attributes,
5241         if the type is a closed generic type, its generic arguments
5242         have to be serialized as AssemblyQualifiedName, so that when
5243         they are deserialized, it's possible to re-create them properly.
5244         Fixes #329450.
5245
5246
5247 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5248
5249         * object.c, class-internals.h: added delegate-creation counter.
5250
5251 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
5252
5253         * class.c: cleanup of the code that synthetizes interfaces for
5254         arrays in 2.0: saves quit a bit of corlib mempool memory.
5255         Code to fix bug #325495 ifdeffed out for now until the issues
5256         with memory usage and O(n^2) behaviour are fixed.
5257
5258 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5259
5260         * marshal.c: when possible, do not duplicate the name of the methods
5261         in the method builder and in the generated MonoMethod.
5262
5263 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5264         * verify.c: added support for type checking ldind_* opcodes.
5265
5266 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5267
5268         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
5269         which is used to distinguish the fully open instantiation of a TypeBuilder
5270         with the rest. This temporary hack is required to restore the property that
5271         the fully open instantiation is the same type of the generic type definition.
5272
5273         * class-internals.h (mono_generic_class_is_generic_type_definition):
5274         new function as part of the internal API.
5275
5276         * class.c (inflate_generic_type): return NULL when the generic inst is
5277         fully open. The fully open generic type is now the same as the generic type
5278         definition for non TypeBuilder types.
5279
5280         * class.c (mono_generic_class_get_class): removed assert since it is
5281         no longer valid, gklass->cached_class can point to the generic type definition.
5282
5283         * class.c (mono_generic_class_is_generic_type_definition): new.
5284
5285         * metadata.c (mono_generic_class_hash): added is_tb_open field
5286         to the hash calculation.
5287
5288         * metadata.c (free_generic_class): if the generic class is associated
5289         with the generic type definition, its field will come from the mempool and
5290         must not be freed.
5291
5292         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
5293         new, this function identifies the corner case of a TypeBuilder fully open
5294         instantiation.
5295
5296         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
5297         for lookup. Set gclass->cached_class to be the container class in case of
5298         the fully open instantiation of non TypeBuilder types.
5299
5300         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
5301         to compare generic classes.
5302
5303         * reflection.c (method_encode_methodspec): remove assert that
5304         no longer is valid.
5305
5306         * reflection.c (mono_reflection_generic_class_initialize): add
5307         an aditional assert to ensure the proper type is used.
5308
5309 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
5310
5311         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
5312         to enjoy it.
5313
5314 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5315
5316         * verify.c (push_arg): Fixed support for ldarga
5317         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
5318         MonoType used as first arg in case of instance calls.
5319
5320 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5321
5322         * verify.c: Support for verifying VAR and MVAR types, 
5323
5324 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
5325
5326         * icall.c (ves_icall_get_property_info): Set the reflected type of the
5327         accessors correctly.
5328
5329 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
5330
5331         * threads.c: support OSX and other systems in
5332         mono_thread_get_stack_bounds (bug #328026).
5333
5334 2007-09-25  Martin Baulig  <martin@ximian.com>
5335
5336         * mono-debug.h
5337         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
5338
5339 2007-09-24  Martin Baulig  <martin@ximian.com>
5340
5341         * mono-debug.h
5342         (MonoDebugClassEntry): Moved the definition of this struct into
5343         mono-debug.c to make it private.
5344
5345         * mono-debug.c
5346         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
5347         type table per symbol file, we don't need to store the symfile id
5348         any longer.
5349
5350 2007-09-24  Martin Baulig  <martin@ximian.com>
5351
5352         Create one type table per symbol file, since a `MonoClass *' gets
5353         invalid when its image is unloaded.
5354
5355         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
5356         (MonoDebugHandle): Added `type_table'.
5357
5358 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5359
5360         * mempool.c, mempool.h: added mono_mempool_new_size () API
5361         to be able to specify a smaller initial size for the pool.
5362         Adjusted the code to slowly increase pool size before using
5363         the previous default size.
5364         * image.c: use a small initial size for image mempools.
5365
5366 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
5367
5368         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
5369         Fixes ##320990.
5370
5371         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
5372         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
5373
5374 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
5375
5376         * metadata.c (mono_type_create_from_typespec): Remove an invalid
5377         free. Fixes #327438.
5378
5379 2007-09-21  Raja R Harinath  <harinath@gmail.com>
5380
5381         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
5382         generic instantiations, etc.
5383         <MONO_TYPE_ARRAY>: Likewise.
5384
5385 2007-09-21  Martin Baulig  <martin@ximian.com>
5386
5387         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
5388         these structs were never defined.
5389         (MonoDebugHandle): Removed the `_priv' field, it was never used.
5390
5391 2007-09-21  Martin Baulig  <martin@ximian.com>
5392
5393         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
5394
5395 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
5396
5397         * image.c: removed the guid hash tables: we can get the same info
5398         without the additional memory usage hit (partially fixes also bug #327052).
5399
5400 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5401
5402         * profiler.h, profiler-private.h, profiler.c: add a new profiler
5403         event to handle unloading methods. After the event is called, the
5404         corresponding MonoMethod* must be considered invalid.
5405         * loader.c (mono_free_method): call the new mono_profiler_method_free
5406         event.
5407
5408 2007-09-20  Mark Probst  <mark.probst@gmail.com>
5409
5410         * domain-internals.h: New flag in MonoJitInfo which marks shared
5411         generic methods.  New hash table (shared_generics_hash) in
5412         MonoDomain to keep track of shared generic methods.  Prototypes
5413         for functions to register and lookup shared generic methods.
5414
5415         * domain.c: Support for registering and looking up shared generic
5416         methods via a hash table (shared_generics_hash) in MonoDomain.
5417
5418         * class-internals.h: New exception to signal failure of shared
5419         compilation of a generic method.  New counters for generics
5420         sharing in MonoStats.
5421
5422 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
5423
5424         * image.c, metadata-internals.h: don't keep a file descriptor open
5425         for loaded assemblies (bug#325988).
5426
5427 2007-09-19  Raja R Harinath  <rharinath@novell.com>
5428
5429         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
5430         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
5431         use the corresponding datatypes.
5432         (type_in_image): Update to changes.
5433         (CleanForImageUserData): Simplify.
5434         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
5435         Avoid quadratic behaviour in handling the "stolen" list by
5436         separating the filter predicate out, and by prepending the stolen
5437         items rather than appending them.
5438         (steal_ginst_in_image): Likewise.
5439         (mono_metadata_clean_for_image): Update to changes.
5440
5441 2007-09-19  Martin Baulig  <martin@ximian.com>
5442
5443         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
5444
5445 2007-09-19  Martin Baulig  <martin@ximian.com>
5446
5447         * mono-debug.c (mono_debug_cleanup): Don't call
5448         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
5449
5450 2007-09-19  Raja R Harinath  <harinath@gmail.com>
5451
5452         Fix crash on 'make run-test' in mcs/errors
5453         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
5454         Avoid more potential allocations in mono_class_from_mono_type.
5455         (ginst_in_image): Update to changes.
5456         (gclass_in_image): Rearrange slightly.
5457
5458 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5459
5460         * class.c (mono_class_init): Move the code that sets up class->methods to 
5461         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
5462
5463         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
5464         canonical instance of an inflated generic signature.
5465         (mono_type_create_from_typespec): Remove an invalid free.
5466
5467         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
5468
5469 2007-09-18  Marek Habersack  <mhabersack@novell.com>
5470
5471         * domain-internals.h: added a declaration of the
5472         mono_assembly_load_full_nosearch internal function.
5473
5474         * assembly.c (mono_assembly_load_with_partial_name): use
5475         mono_try_assembly_resolve return value properly.
5476         (mono_assembly_load_full_nosearch): copied the function body from
5477         mono_assembly_load_full, without the code to invoke assembly
5478         search hooks.
5479         (mono_assembly_load_full): calls the above new function and if the
5480         assembly is not resolved, invokes the search hooks.
5481
5482         * appdomain.c (mono_runtime_init): restore the global postload
5483         assembly search handlers.
5484
5485 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5486
5487         * class.c (mono_class_init): Make sure class->methods and class->properties
5488         are never NULL in the generics case.
5489
5490         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
5491
5492 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
5493
5494         * metadata.c (free_generic_class): Disable some code to fix the build.
5495
5496         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
5497
5498         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
5499         from the image mempool.
5500
5501         * metadata.c (free_generic_class): Free more data from the inflated class.
5502
5503         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
5504
5505         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
5506         mempool.
5507         (mono_type_create_from_typespec): Ditto.
5508
5509         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
5510         MonoImage to the caller.
5511         (mono_init_internal): Save the opened image in a global variable.
5512         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
5513
5514         * reflection.c (resolve_object): Fix a leak.
5515
5516         * metadata.c: Fix the freeing of data in the generics caches.
5517         
5518         * metadata.c (free_generic_inst): Comment this out to fix the build.
5519         (free_generic_class): Ditto.
5520
5521         * metadata.c: Free cached generic methods, instantinations and classes when
5522         they are removed from the caches.
5523         (mono_metadata_free_type): Free the type itself.
5524
5525         * class.c: Free the result of mono_class_inflate_generic_type () in a few
5526         places.
5527
5528 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5529
5530         * boehm-gc.c: restrict managed allocs to __thread supporting
5531         architectures.
5532
5533 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
5534
5535         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
5536         (mono_generic_class_get_class): Fix a leak.
5537
5538         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
5539         mono_metadata_free_type ().
5540         (mono_metadata_inflate_generic_inst): Fix a leak.
5541
5542 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5543
5544         * mono-debug.c (free_header_data): Fix a leak missed earlier.
5545
5546         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
5547         mempool.
5548
5549         * mono-debug.c (mono_debug_close_image): Fix call to 
5550         g_hash_table_remove ().
5551
5552 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5553
5554         * icall-def.h: redirect all the string ctor to the managed
5555         CreateString () methods.
5556         * string-icalls.c, string-icalls.h: removed dead code for string
5557         ctors and icalls.
5558
5559 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5560
5561         * mono-debug.c: Fix memory leaks.
5562
5563 2007-09-14  Jonathan Chambers <joncham@gmail.com>
5564
5565         * threads-types.h: Implement mono_hazard_pointer_set and 
5566         mono_hazard_pointer_clear macros using do/while(0) to fix
5567         compilation with MSVC.
5568         
5569         Code is contributed under MIT/X11 license.
5570
5571 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5572
5573         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
5574         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
5575
5576 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5577
5578         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
5579         icalls.
5580
5581 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5582
5583         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
5584         managed-code allocated as well.
5585
5586 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
5587
5588         * class.c (mono_class_is_assignable_from): Add support for generic variance.
5589
5590 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
5591
5592         * boehm-gc.c: fixed the build after the AOT changes.
5593
5594 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
5595
5596         * wrapper-types.h: Add an ALLOC wrapper type.
5597
5598         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
5599         reference managed allocator methods.
5600
5601 2007-09-12  Marek Safar  <marek.safar@gmail.com>
5602
5603         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
5604         of Type array and not MonoType, a fix suggested by Hari.
5605         
5606 2007-09-12  Jonathan Chambers <joncham@gmail.com>
5607
5608         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
5609         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
5610         
5611         Code is contributed under MIT/X11 license.
5612
5613 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5614
5615         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
5616
5617 2007-09-12  Marek Habersack  <mhabersack@novell.com>
5618
5619         * image.c (do_mono_image_open): if assembly file fails to open and
5620         MONO_IOMAP is in effect, try to find the path in a
5621         case-insensitive way.
5622
5623         * appdomain.c (mono_runtime_init): do not install postload hooks -
5624         tests show that MS.NET doesn't use anything of that sort to
5625         trigger the AppDomain.AssemblyResolve event.
5626         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
5627         made non-static.
5628         (mono_runtime_init): init portability helpers here.
5629
5630         * assembly.c (mono_assembly_load_with_partial_name): if other   
5631         attempts fail, trigger the AppDomain.AssemblyResolve event handler
5632         to resolve the assembly.
5633
5634         * domain-internals.h: added mono_try_assembly_resolve and marked
5635         it as internal.
5636
5637 2007-09-11  Jb Evain  <jbevain@novell.com>
5638
5639         * object-internals.h (MonoReflectionDynamicMethod): add
5640         a `MonoReflectionType *owner` field. The owner is used
5641         * reflection.c:
5642         (mono_reflection_create_dynamic_method): use the owner of the dynamic
5643         method as the class declaring the dynamic method.
5644         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
5645         dynamic method to the declaring type of the methodbuilder.
5646
5647 2007-09-11  Mark Probst  <mark.probst@gmail.com>
5648
5649         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
5650         rules for calling methods via reflection.
5651
5652 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
5653
5654         * reflection.c (resolve_object): Add support for MonoGenericClass. 
5655         Inflate MonoType's.
5656
5657 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
5658
5659         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
5660         provide a managed method that does fast allocations without needing
5661         a managed->unmanaged transition. Boehm GC implementation currently
5662         enabled for ptrfree objects on sane architectures.
5663
5664 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
5665
5666         * marshal.c, marshal.h: exported a couple of useful functions and
5667         added mono_mb_get_label () to easily handle backward branches.
5668
5669 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
5670
5671         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
5672
5673 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5674
5675         * loader.c (find_method): Fixed the regression introduced while
5676         fixing bug #81466.
5677
5678 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
5679
5680         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
5681         well.
5682         
5683         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
5684         icall.c reflection.c: Pass a MonoGenericContext argument to 
5685         mono_lookup_dynamic_token ().
5686
5687         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
5688         #82744.
5689         
5690 2007-09-09  Robert Jordan  <robertj@gmx.net>
5691
5692         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
5693         for generic methods.
5694
5695         * object.c (mono_object_get_virtual_method): Handle generic methods.
5696         Fixes bug #78882.
5697
5698         Code is contributed under MIT/X11 license.
5699
5700 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
5701
5702         * image.c: fix locking in mono_image_load_file_for_image ().
5703
5704 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
5705
5706         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
5707         used only as a cache: added an icall to fill it.
5708
5709 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
5710
5711         * reflection.h: exposed mono_reflection_free_type_info
5712         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
5713         since mono_reflection_bind_generic_parameters makes a copy of it.
5714         * reflection.c (free_type_info): subinfos should be freed.
5715         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
5716         made non static.
5717         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
5718         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
5719         this fixes #82695 and #81726.
5720    
5721
5722 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
5723
5724         * process.h, process.c:  added support for user profile/info in
5725           ProcessStartInfo. For now only Windows works.
5726
5727 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5728
5729         * metadata.c: consider the generic arguments when comparing
5730         signatures (bug #82614).
5731
5732 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5733
5734         * cil-coff.h, image.c: updated assembly loader to cope with the
5735         PE32+ 64 bit file format.
5736
5737 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5738
5739         * assembly.c, class.c, domain.c, loader.c: remove useless
5740         inclusion of cil-coff.h.
5741
5742 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
5743
5744         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
5745         if interface is marked with CoClassAttribute. 
5746    
5747         Code is contributed under MIT/X11 license.
5748
5749 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5750
5751         * sgen-gc.c: ensure no object from the to space is copied again or finalized
5752         if it's seen twice in major collections.
5753
5754 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5755
5756         * sgen-gc.c: big objects are not copied to the gray area, but they
5757         need to be considered for scanning, too, if they are brought alive
5758         by an object ready for finalizations or a survived one.
5759
5760 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5761
5762         * sgen-gc.c: properly account the number of disappearing links when
5763         they are nullified.
5764
5765 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5766
5767         * sgen-gc.c: share the code to scan the registered roots between the
5768         different types of collections.
5769
5770 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
5771
5772         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
5773
5774 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
5775
5776         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
5777         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
5778
5779 2007-08-28  Mark Probst  <mark.probst@gmail.com>
5780
5781         * security-manager.c (mono_security_manager_get_methods):
5782         LinkDemandSecurityException now has 2 arguments instead of 3.
5783
5784 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
5785
5786         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
5787         platforms which need it.
5788
5789 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
5790
5791         * sgen-gc.c: unregister thread data structures with a pthread_key_t
5792         dtor.
5793
5794 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
5795
5796         * threads.c: free the thread static data on thread exit.
5797
5798 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
5799
5800         * class.c: walk the hierarchy to find the generic definition for
5801         a class (fixes runtime part of bug #82498).
5802
5803 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
5804
5805         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
5806         ...
5807
5808         * image.c (mono_image_close): Here. Hopefully fixes #82510.
5809
5810 2007-08-24  Mark Probst  <mark.probst@gmail.com>
5811
5812         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
5813
5814 2007-08-24  Robert Jordan  <robertj@gmx.net>
5815
5816         * appdomain.c: don't perform the ':'->';' substitution on Win32.
5817
5818 2007-08-24  Jb Evain  <jbevain@novell.com>
5819
5820         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
5821         for byref types.
5822
5823 2007-08-24  Mark Probst  <mark.probst@gmail.com>
5824
5825         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
5826         #82286.
5827
5828 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
5829
5830         * assembly.c: Fix a warning.
5831         
5832 2007-08-23  Marek Habersack  <mhabersack@novell.com>
5833
5834         * appdomain.c: parse the <runtime> section looking for the probing
5835         element with the 'privatePath' attribute, which sets additional
5836         directories in which the runtime should look for assemblies.
5837
5838 2007-08-23  Robert Jordan  <robertj@gmx.net>
5839
5840         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
5841         Fixes #82499.
5842
5843 2007-08-23  Martin Baulig  <martin@ximian.com>
5844
5845         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
5846         _mono_debug_init_corlib() and remove it from the header file.
5847
5848 2007-08-23  Martin Baulig  <martin@ximian.com>
5849
5850         * mono-debug-debugger.c
5851         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
5852         don't notify the debugger about it.
5853
5854         * mono-debug-debugger.h
5855         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
5856
5857 2007-08-23  Robert Jordan  <robertj@gmx.net>
5858
5859         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
5860         Code is contributed under MIT/X11 license.
5861
5862 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
5863
5864         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
5865
5866 2007-08-22  Martin Baulig  <martin@ximian.com>
5867
5868         * mono-debug.c: Store debugging info on a per-domain basis and
5869         free it on domain unload.  Add support for unloading symbol files.
5870
5871         * mono-debug.h
5872         (MonoDebugList): New typedef.
5873         (MonoSymbolTable):
5874         - add `data_tables and `type_table'.
5875         - replace 'symbol_files' and `num_symbol_files' with a
5876           `MonoDebugList *'.
5877         (mono_debug_data_table): Removed.
5878         (mono_debug_list_add): New public function.
5879         (mono_debug_list_remove): New public function.
5880         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
5881         (mono_debug_init_2_memory): Renamed into
5882         mono_debug_open_image_from_memory().
5883         (mono_debug_close_image): New public function.
5884         (mono_debug_domain_create): Likewise.
5885         (mono_debug_domain_unload): Likewise.
5886         (MONO_DEBUGGER_VERSION): Bump to 60.
5887
5888         * mono-debug-debugger.h
5889         (MonoDebuggerEvent):
5890         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
5891         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
5892         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
5893         - rename `THREAD_CREATED' and `THREAD_EXITED' into
5894           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
5895         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
5896           meaning.
5897         (mono_debugger_add_symbol_file): Removed.
5898         (mono_debugger_add_type): Removed.
5899         (mono_debugger_lookup_type): Removed.
5900         (mono_debugger_lookup_assembly): Removed.
5901
5902         * domain.c
5903         (mono_domain_create): Call mono_debug_domain_create().
5904         (mono_init_internal): Call mono_debug_init_corlib().
5905
5906         * assembly.c
5907         (mono_assembly_close): Call mono_debug_close_image().
5908
5909 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
5910
5911         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
5912         mmap call.
5913
5914 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5915
5916         * sgen-gc.c: ensure section->pin_queue_end is initialized
5917         correctly when non pinning objects in the section have been found.
5918
5919 2007-08-22  Marek Habersack  <mhabersack@novell.com>
5920
5921         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
5922         containing a list of directories separated by ':'. MSDN docs say
5923         the directories should be separated with ';'. Part of a bugfix for
5924         bug #81446
5925
5926 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
5927
5928         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
5929         it should MonoType and not MonoClass.
5930
5931 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
5932
5933         * culture-info-table.h : regenerated.
5934
5935 2007-08-20  William Holmes  <billholmes54@gmail.com>
5936
5937         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
5938          to call ReplaceFile Kernel32 on windows or in io-layer.
5939         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
5940         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
5941          as an internal call.
5942
5943         Code is contributed under MIT/X11 license.
5944
5945 2007-08-20  Jb Evain  <jbevain@novell.com>
5946
5947         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
5948         and MONO_EXCEPTION_FIELD_ACCESS.
5949
5950         * debug-helpers.[c|h]: new mono_field_full_name function.
5951
5952 2007-08-20  Mark Probst  <mark.probst@gmail.com>
5953
5954         * class.c: Removed class_security_level() and moved it to
5955         security-core-clr.c.
5956
5957         * security-core-clr.c, security-core-clr.h: class_security_level()
5958         is now public and renamed to mono_security_core_clr_class_level().
5959         It also looks for security attributes in the classes a class is
5960         nested in.
5961
5962 2007-08-20  Mark Probst  <mark.probst@gmail.com>
5963
5964         * security-core-clr.c, security-core-clr.h: CoreCLR security
5965         utility functions.
5966
5967         * Makefile.am: Added security-core-clr.[ch].
5968
5969         * security-manager.c, security-manager.h: Functions and enum for
5970         setting and getting the security mode.
5971
5972         * class.c: CoreCLR security checks.
5973
5974 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
5975
5976         * icall-def.h, process.c, process.h: implemented icall to get
5977         user/system processor times.
5978
5979 2007-08-17  Mark Probst  <mark.probst@gmail.com>
5980
5981         * domain.c, threads.c, class-internals.h, domain-internals.h: New
5982         reader-lock-free jit_info_table.
5983
5984 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
5985
5986         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
5987
5988         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
5989
5990         * object-internals.h (MonoException): Add missing _data member.
5991
5992 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
5993
5994         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
5995         checking that only methods with matching qname or fqname are picked
5996         from implemented interfaces.
5997
5998 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5999
6000         * verify.c (do_newarr):added, do type verification of
6001         newarr ops, push the right value on the eval stack.
6002         * verify.c (mono_method_verify): use do_newarr
6003
6004
6005 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6006
6007         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
6008         factored the common code into get_boxable_mono_type, which
6009         is now using mono_type_get_full, this fixed byref related tests.
6010
6011 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
6012
6013         * class.c: added mono_type_get_full, this function has the same
6014         behavior of mono_class_get_full but the returned MonoType has
6015         all metadata of the associated token in case of a typespec token.
6016         * class.c: added mono_type_retrieve_from_typespec, used by 
6017         mono_type_get_full to retrieve the token type.
6018         * class.c (mono_class_create_from_typespec): changed to use
6019         mono_type_retrieve_from_typespec.
6020         * class.c (mono_ldtoken): changed to use mono_type_get_full
6021         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
6022         * class-internals.h: exported mono_type_get_full for internal use.
6023
6024 2007-08-16  Jb Evain  <jbevain@novell.com>
6025
6026         * domain.c (supported_runtimes): add entry for
6027         the 'moonlight' runtime version.
6028
6029 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6030
6031         * verify.c (mono_method_verify): small typo sliped in.  
6032
6033 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6034
6035         * verify.c (do_unbox_value): added, do type verification of
6036         unboxing ops
6037         * verify.c (mono_method_verify): use do_unbox_value
6038
6039
6040 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6041
6042         * verify.c (dump_stack_value): fixed typo, was printing string
6043         instead of object on stack.
6044         * verify.c (do_box_value): moved the byref check up as it leads
6045         to invalid code and should be done earlier.
6046         * verify.c: improved error messages for and ldobj
6047
6048 2007-08-15  William Holmes  <billholmes54@gmail.com>
6049
6050         * marshal.c (emit_marshal_custom): Omit the call to 
6051           marshal_native_to_managed when calling native to managed 
6052           and the argument is specified as an out argument.
6053
6054         Code is contributed under MIT/X11 license.
6055
6056 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
6057
6058         * verify.c: fixed the type checks for generics, function pointers and vectors.
6059         Added type verification for ldobj and ldtoken. The verifier
6060         would segfault if header or signature of a method contained references
6061         to non-existant types.
6062
6063 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
6064
6065         * marshal.c (cominterop_get_ccw): Patch from
6066         Bill Holmes to no walk up interface hierarchy. 
6067         All parent methods should be present in the interface for COM.
6068    
6069         Code is contributed under MIT/X11 license.
6070
6071 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
6072
6073         * marshal.c (emit_marshal_com_interface): Patch from
6074         Bill Holmes to handle COM Interfaces as return values
6075         for native->managed calls.
6076    
6077         Code is contributed under MIT/X11 license.
6078
6079 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
6080
6081         * marshal.c (cominterop_get_idispatch_for_object): Implement
6082         for runtime callable wrappers.
6083    
6084         Code is contributed under MIT/X11 license.
6085
6086 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
6087
6088         * pedump.c (main): changed from mono_init to mono_init_from_assembly
6089         so 2.0 types are accessible
6090
6091
6092 2007-08-13  Miguel de Icaza  <miguel@novell.com>
6093
6094         * domain.c (mono_init_internal): Call mono_assembly_load_friends
6095         once we load mscorlib.   Due to the order in which we initialize,
6096         the mono_assembly_load_full routine that loads mscorlib did not
6097         load friends.   We now load it once we load the
6098         mono_defaults.internals_visible_class class. 
6099
6100         * assembly.c: Expose the mono_load_friend_assemblies method.
6101
6102 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
6103
6104         * verify.c: improved the handling of boxing, better
6105         type checking for unary ops and conversion. Fix bug
6106         regarding managed pointer compatibility checking
6107
6108 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
6109
6110         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
6111
6112         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
6113
6114 2007-08-09  Raja R Harinath  <rharinath@novell.com>
6115
6116         * reflection.c (dup_type): Remove.
6117         * class.c (dup_type): Remove.
6118         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
6119         instead of the dodgy 'dup_type'.
6120         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
6121         handle the case where 'dup_type' needed the second argument.
6122
6123 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
6124
6125         * domain.c: Fix a warning.
6126
6127 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
6128
6129         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
6130         checking that methods with the same fqname are not overridden
6131         with a method from an ancestor.
6132
6133 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
6134
6135         * threads.c (free_thread_static_data_helper): Avoid a crash if
6136         thread->static_data is not yet set.
6137
6138 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
6139
6140         * marshal.c: Use correct image when emitting
6141         native wrapper for COM calls.
6142    
6143         Code is contributed under MIT/X11 license.
6144
6145 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
6146
6147         * icall-def.h, security.c, security.h :
6148           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
6149
6150 2007-08-07  Martin Baulig  <martin@ximian.com>
6151
6152         * mono-debug-debugger.h
6153         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
6154
6155         * domain.c (mono_domain_free): Call
6156         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
6157
6158 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
6159
6160         * verify.c (check_underflow, check_overflow): error message now returns IL offset
6161         * verify.c (in_same_block): code should test if either offset is inside the clauses
6162         * verify.c (mono_method_verify): push the exception into the eval stack of exception
6163         and filter blocks
6164
6165 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6166
6167         * image.c (mono_image_close): Fix a leak.
6168
6169         * object.c (mono_runtime_invoke_array): Avoid using alloca.
6170
6171         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
6172
6173 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
6174
6175         * domain.c, threads.c, threads-types.h: fix memory retention issue
6176         with thread static variables not being cleared on domain unload.
6177         Reuse thread static slots after domain unload.
6178
6179 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
6180
6181         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
6182         nullable type.
6183
6184         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
6185         now done in mono_runtime_invoke_array.
6186
6187         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
6188         receiver is a nullable type.
6189
6190         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
6191         generic parameter.
6192
6193 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
6194
6195         * marshal.c: Implement COM Objects as return type for 
6196         managed->unmanaged calls. Added Release calls for COM Object
6197         out/return values in managed->unmanaged calls.
6198
6199         Code is contributed under MIT/X11 license.
6200
6201 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
6202
6203         * threads.h, threads-type.h: move the hazard pointer declarations
6204         to the private header.
6205
6206 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
6207
6208         * file-io.c, appdomain.c: memory leak fixes.
6209
6210 2007-08-02  Dick Porter  <dick@ximian.com>
6211
6212         * socket-io.c
6213         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
6214         SO_REUSEADDR setting into io-layer/sockets.c.
6215
6216 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
6217
6218         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
6219         from Object when called on a generic parameter. Fixes #82211.
6220
6221 2007-08-01  Dick Porter  <dick@ximian.com>
6222
6223         * file-io.c (convert_share): Test FileShare values bit-by-bit.
6224         Fixes bug 79250 yet again.
6225
6226 2007-07-30  Martin Baulig  <martin@ximian.com>
6227
6228         Merged the `debugger-dublin' branch.
6229
6230         * mono-debug.h
6231         (MonoDebugDataTable): New typedef.
6232         (MonoDebugMethodAddressList): New typedef.
6233         (MonoDebugWrapperData): Removed.
6234         (MonoDebugSymbolTable): Removed `current_data_table',
6235         `current_data_table_size', `current_data_table_offset'.
6236         (MonoDebugDataItemType): Moved into mono-debug.c.
6237         (MonoDebugMethodJitInfo): Remove `address'.
6238         (mono_debug_data_table): New global variable.
6239         (mono_debug_lookup_method_addresses): New public function.
6240         (mono_debug_find_method): Take a `MonoMethod *', not a
6241         `MonoDebugMethodInfo *'.
6242
6243         * mono-debug.c: Drop support for the old symbol tables.
6244
6245 2007-06-28  Martin Baulig  <martin@ximian.com>
6246
6247         * mono-debug.c (mono_debug_debugger_version): New public variable.
6248
6249 2007-07-31  William Holmes  <billholmes54@gmail.com>
6250
6251         * metadata.c Changed mono_type_create_from_typespec to not insert
6252           the type into the hash map until after
6253           do_mono_metadata_parse_type has completed.
6254         Fixes Bug #82194
6255         Code is contributed under MIT/X11 license.
6256
6257 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
6258
6259         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
6260         generic parameter. Fixes #82211.
6261
6262 2007-07-27  Jb Evain  <jbevain@novell.com>
6263
6264         * pedump.c (dump_metadata, dump_metadata_header): dump
6265         versions contained in the metadata header.
6266
6267 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6268
6269         * threads.c: register small_id_table with the GC.
6270
6271 2007-07-27  Mark Probst  <mark.probst@gmail.com>
6272
6273         * threads.c, threads.h, class-internals.h, object-internals.h:
6274         Hazard pointers, to be used by lock-free parallel algorithms.
6275
6276 2007-07-26  Dick Porter  <dick@ximian.com>
6277
6278         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
6279         routine on non-windows platforms, as I've not managed to think of
6280         a non-kludgy way of doing this.  Finishes off bug 78739.
6281
6282 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
6283
6284         * object.c: properly setup interface_bitmap in proxy vtables.
6285
6286 2007-07-25  Marek Habersack  <mhabersack@novell.com>
6287
6288         * appdomain.c (get_shadow_assembly_location): do not use TickCount
6289         to create unique shadow copy target directories, use the domain's
6290         serial number instead. Each domain gets a unique target directory
6291         that way.
6292
6293         * domain.c (mono_domain_create): added code to increment domain
6294         shadow copy serial number and cache the value in the current
6295         domain structure.
6296
6297         * domain-internals.h (struct _MonoDomain): added a new field -
6298         shadow_serial to hold the serial number used in generation of
6299         shadow-copy directories. This is to make sure that the directory
6300         name is unique for each and every domain created. We avoid a race
6301         condition with overriding assemblies already in use by other app
6302         domains.
6303
6304 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
6305
6306         * class.c (mono_bounded_array_class_get): fixed memory leak when 
6307         binding generic parameters.
6308
6309 2007-07-24  Raja R Harinath  <rharinath@novell.com>
6310
6311         * metadata.c (do_mono_metadata_parse_generic_class): Use
6312         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
6313         error.
6314
6315 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
6316
6317         * loader.c, class-internals.h, reflection.c: removed the per-method
6318         generics hashtable: we use the global one through the call of
6319         mono_class_inflate_generic_method ().
6320
6321 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
6322
6323         * class.c, metadata.c, class-internals.h: introduce yet another
6324         generics global cache for inflated methods (fixes 98% of the perf
6325         issue in bug #81806).
6326
6327 2007-07-23  Raja R Harinath  <rharinath@novell.com>
6328
6329         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
6330         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
6331         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
6332         return a MonoGenericInst containing (a copy) of those types.
6333         (mono_metadata_inflate_generic_inst): Update to changes.
6334         (mono_metadata_parse_generic_inst): Likewise.
6335         (mono_get_shared_generic_inst): Likewise.
6336         * reflection.c (mono_class_bind_generic_parameters): Likewise.
6337         (mono_reflection_bind_generic_method_parameters): Likewise.
6338         * metadata-internals.h: Likewise.
6339         * icall.c (free_generic_context): Kill.
6340         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
6341
6342         * reflection.c (reflection_methodbuilder_to_mono_method): Use
6343         mono_metadata_type_dup.
6344         * marshal.c (mono_mb_create_method): Likewise.
6345
6346         * metadata.c (mono_metadata_type_dup): Rename from
6347         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
6348         MonoImage.  Handle a few more cases, esp. when no mempool is given.
6349         * marshal.c, metadata-internals.h: Update to changes.
6350
6351 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6352
6353         * class.c: fixed a small leak for array classes and removed warning.
6354
6355 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
6356
6357         * loader.c (mono_method_get_param_token): Make this work on generic methods.
6358         Return 0x8000000 for return parameters. Fixes #82161.
6359
6360 2007-07-21  Marek Habersack  <grendello@gmail.com>
6361
6362         * appdomain.c (get_shadow_assembly_location): append the current
6363         ticks value to the path. Avoids overwriting the same assemblies by
6364         several threads at the same time.
6365
6366 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6367         and Raja R Harinath  <rharinath@novell.com>
6368
6369         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6370         Simplify slightly.
6371         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
6372         property for testing if a method is a generic method definition.
6373
6374 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6375
6376         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
6377
6378 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6379
6380         * verify.c: used function from private branch, reverted to the one in class.h 
6381
6382 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6383
6384         * verify.c: a typo slipped in and the code wont compile
6385
6386 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6387
6388         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
6389         disabled box instruction as it is doing the wrong thing
6390         improved stack dump messages, now it is easier to debug type related issues
6391
6392
6393 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
6394
6395         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
6396
6397 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6398
6399         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
6400         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
6401         grouped with class and valuetype. This change will simply 
6402         the code as it should be handled just like unmanaged pointers.
6403
6404 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6405
6406         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
6407
6408 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6409
6410         * verify.c: several stack merge issues fixed, reference comparisons now
6411         check the type size. strict type check now works correctly.
6412         added more uses of IS_MANAGED_POINTER macro.
6413         fixed issues pointed by running the test suite against .net.
6414         
6415
6416 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6417
6418         * class.c, loader.c, class-internals.h: Removed the
6419         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
6420         defines.
6421
6422         * icall.c: Better error checking in some internal reflection
6423         methods.
6424
6425 2007-07-18  William Holmes  <billholmes54@gmail.com>
6426
6427         * filewatcher.c : removed unused variable 'filename' in 
6428           ves_icall_System_IO_FSW_SupportsFSW
6429
6430 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
6431
6432         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
6433         obsolete, removed.
6434
6435 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
6436
6437         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
6438         
6439         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
6440
6441 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
6442
6443         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
6444         Implement generics support.
6445         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6446
6447         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
6448         type_args and method_args arguments.
6449         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
6450         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6451         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
6452
6453 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
6454
6455         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
6456           It adds a rootimage parameter to mono_reflection_get_type_internal,
6457           adds new function mono_reflection_get_type_with_rootimage and use
6458           the rootimage to resolve the types instead of the current image
6459
6460 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6461
6462         * culture-info-table.h: Forgot to update after r78304.
6463
6464 2007-07-13  Raja R Harinath  <rharinath@novell.com>
6465
6466         * class.c (mono_class_is_open_constructed_type)
6467         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
6468
6469 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
6470
6471         * class.c (mono_bounded_array_class_get):  method fails if used with
6472         an incomplete TypeBuilder enum (no basetype field), fixed it by 
6473         avoiding calculating the size for such array as it cannot be instantiated.
6474         Fix bug #82015
6475
6476 2007-07-12  Raja R Harinath  <rharinath@novell.com>
6477
6478         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
6479         field.
6480         * metadata.c, reflection.c: Update to changes.
6481
6482 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
6483
6484         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
6485         mono_class_is_valid_enum, they are used to valide a enum when loading.
6486         * reflection.c: used new functions to throw TypeLoadException when and
6487         invalid enum is build with TypeBuilder. Fixes #82018
6488   
6489 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6490
6491         * object.c: forgot commit of mono_class_setup_methods () to access
6492         iface->methods.
6493         * object-internals.h: added a few more handy fields to
6494         MonoIMTCheckItem.
6495
6496 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
6497
6498         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
6499         iface->methods.
6500
6501 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
6502
6503         * class-internals.h, object-internals.h, object.c: IMT-based
6504         interface invocation core from Massimiliano Mantione
6505         (massi@ximian.com) with a reworked arch-specific interface,
6506         bsearch implementation and a few bugfixes and memory savings by me.
6507
6508 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
6509
6510         * class.c (mono_class_create_from_typedef): mono would segfault if 
6511         an enum did not have a __value field. It now throws a TypeLoadException
6512         for such cases. Fix bug #82022
6513
6514 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6515
6516         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
6517
6518 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6519
6520         * class.c (mono_class_init): If a class is already inited but has
6521         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
6522
6523 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6524
6525         * class.c: Properly handle the case of an unimplemented interface
6526         method.  Fixes: 81673.
6527
6528 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
6529
6530         * class-internals.h, object.c: cleanup patch from massi: use
6531         MonoVTable->interface_bitmap since the vtable interfaces offset array
6532         is going away.
6533
6534 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6535
6536         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
6537         GetMDStreamVersion icall instead.
6538
6539 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
6540
6541         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
6542         not use mono_dl_build_path() with a full library name: makes
6543         fallbacks to libgaim and libfam work.
6544
6545 2007-07-06  William Holmes  <billholmes54@gmail.com>
6546
6547         * assembly.c: Added a continue statement in probe_for_partial_name when
6548          parse_assembly_directory_name fails.  Fixes : 82002
6549
6550 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
6551
6552         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
6553         and added a verification  for TYPEDBYREF.
6554         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
6555         make native int interchangeable with int32 and some small cleanup and formating.
6556         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
6557         handle byref of byref.
6558         * verify.c (push_local): handle byref of byref.
6559         * verify.c (do_binop): invalid mix of values is unverifiable
6560         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
6561         added visibility checks
6562         * verify.c (field related method): added visibility checks
6563         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
6564
6565 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
6566
6567         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
6568         string.
6569
6570 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
6571
6572         * profiler.c (mono_profiler_load): Fix an off-by-one error.
6573
6574         * marshal.c (emit_marshal_string): When returning a string from managed code,
6575         allways make a copy even for unicode strings. Fixes #81990.
6576
6577 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
6578
6579         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
6580         of byref generic inst types (bug #81997).
6581
6582 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
6583
6584         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
6585         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
6586
6587 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
6588
6589         * marshal.c (emit_marshal_string): Add support for unicode strings in
6590         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
6591
6592 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
6593
6594         * verify.c: field load/store are now verified, missing only access checks now
6595
6596 2007-06-28  Martin Baulig  <martin@ximian.com>
6597
6598         * mono-debug.c (mono_debug_debugger_version): New public variable.
6599
6600 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
6601
6602         * locales.c: When constructing DateTimeFormat or NumberFormat for
6603         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
6604         MonoCultureInfo contructed from the current locale is always
6605         read-only and has UseUserOverride set to true. All MonoCultureInfo
6606         instances returned for GetCultures have both IsReadOnly and
6607         UseUserOverride set to true. Fixes part of bug #81930.
6608
6609 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
6610
6611        * icall-def.h: Update System.__ComObject icalls
6612        * marshal.c: Avoid managed transition (and object creation)
6613        when looking up COM interface in RCW.
6614        * marshal.h: Ditto.
6615        
6616        Code is contributed under MIT/X11 license.
6617
6618 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
6619
6620         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
6621         to avoid crashes during assembly unloading.
6622
6623 2007-06-22  Raja R Harinath  <rharinath@novell.com>
6624
6625         Fix MethodInfo.IsGenericMethodDefinition
6626         * reflection.c (mono_reflection_bind_generic_method_parameters):
6627         Rearrange code to ensure we always uses a generic method definition.
6628         * class.c (mono_class_inflate_generic_method_full): Set
6629         'generic_container' field only for generic method definitions.
6630         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6631         Use presense of 'generic_container' field as indication of being a
6632         generic method definition.
6633
6634 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
6635
6636         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6637
6638         * object-internals.h: Reflect changes in the layout of the managed Delegate
6639         class.
6640         
6641         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
6642         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
6643         runtime memory used by the dynamic method. Fixes #77146.
6644
6645 2007-06-21  Dick Porter  <dick@ximian.com>
6646
6647         * file-io.h: 
6648         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
6649         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
6650         81767.
6651
6652 2007-06-21  Raja R Harinath  <rharinath@novell.com>
6653
6654         * reflection.c (method_encode_methodspec): Add a tripwire.
6655         * class.c (inflate_generic_type): The fully open generic type is
6656         not the same as the generic type definition.
6657
6658 2007-06-21  Martin Baulig  <martin@ximian.com>
6659
6660         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
6661
6662         * mono-debug-debugger.h
6663         (MonoDebuggerBreakpointInfo): Removed.
6664         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
6665         (mono_debugger_remove_breakpoint): Likewise.
6666         (mono_debugger_breakpoint_callback): Likewise.
6667         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
6668
6669 2007-06-21  Raja R Harinath  <rharinath@novell.com>
6670
6671         * metadata.c (mono_metadata_lookup_generic_class): The fully open
6672         generic type is not the same as the generic type definition.
6673         * class.c (mono_generic_class_get_class): Likewise.
6674
6675 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
6676
6677         * icall.c: The second argument to 
6678         System.Reflection.MethodBase.GetMethodFromHandleInternalType
6679         is a MonoType not a MonoClass.
6680
6681 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
6682
6683         * verify.c: support for function pointers in the verifier
6684
6685 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
6686
6687         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
6688
6689 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
6690
6691         * assembly.c: removed Mono.Data.SqliteClient from the list of
6692         forward-compatible assemblies as it breaks the ABI (bug #81899).
6693
6694 2007-06-19  Raja R Harinath  <rharinath@novell.com>
6695
6696         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
6697         lookup/update with the loader lock.
6698         * reflection.c (mono_class_bind_generic_parameters): No need to
6699         protect mono_metadata_lookup_* with the loader lock.
6700         * class.c (inflate_generic_type): Likewise.
6701         
6702         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
6703         on a generic instantiated type.
6704
6705 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
6706
6707         *verify.c: produce meanfull error messages on verification error
6708         *verify.c: fixed some cases of verification errors reported as validation errors
6709         *pedump.c: fixed the error name array, now it shows validation errors properly
6710         *verify.h: fixed the contant that should be used for verification errors
6711
6712 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
6713
6714         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
6715         for bug #77596, 81858 and 80743 (generics data structures on domain
6716         unload).
6717
6718 2007-06-15  Raja R Harinath  <rharinath@novell.com>
6719
6720         Avoid allocating 'MonoGenericContext' on the heap.
6721         * class-internals (_MonoMethodInflated::context): Make field
6722         inline, not a pointer.
6723         * loader.c (method_from_methodspec): Allocate 'new_context' on the
6724         stack.  Use the context embedded within the inflated method as the
6725         hash key, rather than 'new_context'.
6726         * class.c (inflate_generic_context): Simplify.  Return a struct
6727         rather than allocating on the heap.
6728         (mono_class_inflate_generic_method_full): Update to changes.  Now,
6729         doesn't salt away a copy of the context -- simplifying the
6730         lifetime rules of a 'MonoGenericContext *'.
6731         (mono_method_get_context): Return pointer to embedded context.
6732         (setup_generic_array_ifaces): Allocate temporary context on stack.
6733         * reflection.c (inflate_mono_method): Likewise.
6734         (mono_reflection_bind_generic_method_parameters): Likewise.
6735         Use the context embedded within the inflated method as the hash key.
6736
6737         Avoid a source of allocation of 'MonoGenericContext'.
6738         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
6739         and 'cached_context' fields into embedded 'MonoGenericContext' field.
6740         * class.c: Update to changes.
6741         (mono_generic_class_get_context): Simplify drastically.  Now just
6742         returns a pointer to the field.
6743         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
6744         argument as a const pointer.
6745         (mono_metadata_generic_context_equal): Likewise.
6746         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
6747         Update to changes.
6748
6749 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
6750
6751         * verify.c improved the handling of brtrue/brfalse, factored out common code
6752
6753 2007-06-14  Raja R Harinath  <rharinath@novell.com>
6754
6755         Kill MonoGenericMethod.
6756         * class-internals.h (MonoGenericContext::method_inst): Rename from
6757         'gmethod' and convert to a MonoGenericInst.
6758         (MonoGenericMethod): Remove.
6759         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
6760         * loader.c (method_from_methodspec): Update to changes.  Use a
6761         MonoGenericContext as the key to the hashtable.
6762         * metadata.c (mono_metadata_generic_context_equal): Rename from 
6763         'mono_metadata_generic_method_equal' and take MonoGenericContext.
6764         (mono_metadata_generic_context_hash): Likewise from
6765         'mono_metadata_generic_method_hash'.  Change hash function.
6766         (mono_metadata_load_generic_params): Update to changes.
6767         (mono_get_shared_generic_method): Remove.
6768         * metadata-internals.h (mono_get_shared_generic_method): Remove.
6769         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
6770         (inflate_generic_context): Likewise.
6771         (mono_class_inflate_generic_method_full): Likewise.
6772         (setup_generic_array_ifaces): Likewise.
6773         (mono_class_create_from_typespec): Likewise.
6774         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
6775         (method_encode_methodspec): Update callsite.
6776         (reflection_methodbuilder_to_mono_method): Update to changes.
6777         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
6778         MonoGenericContext as the key to the hashtable.
6779         (inflate_mono_method): Update to changes.
6780
6781         * class-internals.h (MonoGenericMethod::container): Remove.
6782         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
6783
6784 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
6785
6786         * profiler-private.h, profiler.c, profiler.h: added API to profile
6787         exception events.
6788
6789 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
6790
6791         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
6792
6793 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
6794
6795         * verify.c: method invocation is now validated, now we verify parameter types on stack.
6796         Fixed overflow and underflow not aborting the verification process.
6797
6798 2007-06-13  Mark Probst  <mark.probst@gmail.com>
6799
6800         * class-internals.h (MonoStats): Added stats entries for dynamic
6801         code allocations.
6802
6803 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
6804
6805         * loader.c (mono_free_method): Free header->locals and header->clauses.
6806
6807         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
6808         dynamic case.
6809
6810         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
6811
6812         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
6813
6814 2007-06-12  Raja R Harinath  <rharinath@novell.com>
6815
6816         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
6817         the tables.
6818
6819 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6820
6821         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
6822
6823 2007-06-11  Raja R Harinath  <harinath@gmail.com>
6824
6825         MonoGenericMethod on a diet
6826         * class-internals.h (_MonoMethodInflated::reflection_info): Move
6827         here ...
6828         (_MonoGenericMethod::reflection_info): ... from here.
6829         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
6830         Update to changes.
6831         * reflection.c (inflate_mono_method): Likewise.
6832         (mono_reflection_bind_generic_method_parameters): Likewise.
6833
6834 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6835
6836         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
6837         *verify.c: factored long ldarg forms to share code with short forms
6838
6839 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6840
6841         *verify.c: fixed code formating factored some duplicate code
6842         into a new function
6843
6844         *verify.h: fixed binary incompatibility introduced earlier
6845
6846         *pedump.c: fixed formating
6847
6848 2007-06-11  Raja R Harinath  <harinath@gmail.com>
6849
6850         Fix assertion when disassembling Mono.C5.dll
6851         * loader.c (method_from_methodspec): Avoid inflating a method
6852         twice with the same context.  If the methodref is inflated, use
6853         the declaring method instead.
6854
6855         * class.c (mono_class_from_generic_parameter): Fix case similar to
6856         bug #81830 handled below, but for method containers.
6857
6858 2007-06-10  Raja R Harinath  <harinath@gmail.com>
6859
6860         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
6861         get_shared_generic_class.  Directly inflate the instance.
6862         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
6863         (inflate_generic_class): Delete.
6864         (get_shared_generic_class): Delete.  Move setting of
6865         'cached_class' and 'cached_context' ...
6866         * metadata.c (mono_metadata_lookup_generic_class): ... here.
6867
6868         * metadata.c (mono_metadata_lookup_generic_class): Change
6869         signature to take the components of a MonoGenericClass rather than
6870         an allocated MonoGenericClass.  Change semantics to be intern-like.
6871         * reflection.c (mono_class_bind_generic_parameters): Update to
6872         changes.  Make locking region tighter.
6873         * class.c (inflate_generic_class): Update to changes.
6874         (get_shared_generic_class): Likewise.
6875         * metadata-internals.h: Likewise.
6876
6877         * reflection.c (mono_class_bind_generic_parameters): Take and
6878         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
6879         (mono_reflection_bind_generic_parameters): Use
6880         'mono_class_bind_generic_parameters' rather than duplicate the code.
6881         * class.c (mono_bounded_array_class_get): Update to changes.
6882         * object-internals.h: Likewise.
6883
6884         * reflection.c (mono_class_bind_generic_parameters): Only support
6885         parameterizing generic type definitions.  Remove support for other
6886         open types.
6887
6888 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
6889
6890         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
6891
6892         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
6893         in the dynamic case.
6894
6895 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
6896
6897         * threads.c: When cleaning up thread, reset the Background bit.
6898         Fixes bug #81720.
6899
6900 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
6901
6902        * metadata.c: Move variable declarations to top of scope.
6903        * verify.c: Move variable declarations to top of scope.
6904
6905        Code is contributed under MIT/X11 license.
6906
6907 2007-06-08  Raja R Harinath  <rharinath@novell.com>
6908
6909         * reflection.c (mono_class_bind_generic_parameters): Replace
6910         open-coded loop with mono_metadata_inflate_generic_inst.
6911
6912         * class.c (get_shared_generic_class): Don't call
6913         mono_get_shared_generic_inst.  Use the container's own
6914         'class_inst'.
6915
6916         * metadata.c (mono_metadata_load_generic_params): Move
6917         initialization of 'context' field here from ...
6918         * class.c (mono_class_create_from_typedef): ... here, and ...
6919         * loader.c (mono_get_method_from_token): ... here.
6920
6921         * class.c (get_shared_generic_class): Rename from
6922         mono_get_shared_generic_class and make static.
6923         (mono_get_shared_generic_inst): Move to metadata.c.
6924         * loader.c (mono_get_shared_generic_method): Likewise.
6925         * class-internals.h, metadata-internals.h: Update to changes.
6926
6927         Fix #81830
6928         * class.c (mono_class_from_generic_parameter): Don't assume a
6929         generic container owner exists.  Generic containers from monodis
6930         don't have any.
6931
6932 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
6933
6934         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
6935         * verify.h: new typedefs to returns the non-verifiable status
6936         * verify.c: initial implementation of generics, stack merging and object compatibility check
6937
6938 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6939
6940         * class.c, image.c, class-internals.h (MonoImage): class_cache is
6941         a MonoInternalHashTable again (fixed bug in internal hash table
6942         code).
6943
6944 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6945
6946         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
6947         MonoInternalHashTable again (fixed bug in internal hash table
6948         code).
6949
6950 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6951
6952         * class.c, image.c, class-internals.h, domain.c,
6953         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
6954         changes.  Have to figure out what makes them break the SWF
6955         regression.
6956
6957 2007-06-04  Mark Probst  <mark.probst@gmail.com>
6958
6959         * class.c, image.c, class-internals.h (MonoImage): class_cache is
6960         a MonoInternalHashTable now.
6961
6962 2007-06-04  Mark Probst  <mark.probst@gmail.com>
6963
6964         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
6965         MonoInternalHashTable now.
6966
6967 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
6968
6969         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
6970         invoke_impl code.
6971
6972         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
6973
6974         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
6975         dependent trampoline.
6976
6977         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6978
6979         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
6980
6981 2007-05-29  Robert Jordan  <robertj@gmx.net>
6982
6983         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
6984
6985 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
6986
6987         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
6988
6989 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
6990
6991        * marshal.c: Fix interface lookup loops for
6992        cominterop_get_com_slot_for_method and 
6993        cominterop_get_method_interface. Only need to lookup
6994        if type is a class, else use interface type method is on.
6995
6996        Code is contributed under MIT/X11 license.
6997
6998 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
6999
7000         * reflection.c: HasSecurity can be present even if no specially 
7001         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
7002         SecurityAttribute). Fix CAS regression tests on buildbot.
7003
7004 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
7005
7006        * appdomain.c: Add configure checks for header files.
7007        * image.c: Add configure checks for header files.
7008        * file-io.c: Add configure checks for header files.
7009        * debug-mono-symfile.c: Add configure checks for header files.
7010        * threadpool.c: Add configure checks for header files.
7011        * console-io.c: Add configure checks for header files.
7012        * profiler.c: Add configure checks for header files.
7013        * rawbuffer.c: Add configure checks for header files.
7014        * icall.c: Add configure checks for header files.
7015        * rand.c: Add configure checks for header files.
7016        * socket-io.c: Add configure checks for header files.
7017
7018        Code is contributed under MIT/X11 license.
7019
7020 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
7021
7022         * reflection.c (mono_custom_attrs_from_builders): Remove the 
7023         assertion as it breaks the build.
7024         
7025         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
7026
7027         * reflection.c (lookup_custom_attr): Make a copy here too.
7028
7029         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
7030         dynamic images.
7031
7032         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
7033         images.
7034
7035         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
7036         info.
7037
7038 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
7039
7040         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
7041         (load_cattr_value): Ditto.
7042
7043 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
7044
7045         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
7046
7047 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
7048
7049         * threads.c: In "start_wrapper", set apartment_state to MTA if
7050         apartment_state is Unknown and we're running on 2.0 profile or
7051         higher.
7052         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
7053         to main method, then set apartment_state to Unknown on 1.0 profile,
7054         and MTA on 2.0 profile.
7055
7056 2007-05-16  Jb Evain  <jb@nurv.fr>
7057
7058         * class-internals.h (MonoDefaults): Add an attribute_class and
7059           customattribute_data_class.
7060         * domain.c (mono_init_internal): Populate them.
7061         * reflection.c: Use them to remove duplicates. Make a vew
7062         MonoClass variables `static'.
7063
7064 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
7065
7066         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
7067         step in implementing IMT, so that all isinst checks now can go
7068         through the bitmap.
7069         This was needed because vtables for TransparentProxy need to look
7070         like the vtable of the "target" class, so they need to point to
7071         its interface bitmap directly.
7072
7073         * object.c: inside "mono_class_create_runtime_vtable" and
7074         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
7075
7076 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
7077
7078         * object-internals.h
7079           culture-info.h : added territory field in MonoCulture and
7080           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
7081         * locales.c : fill territory field above too.
7082         * culture-info-table.h : regenerated.
7083
7084 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
7085
7086         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
7087         Fixes #81599.
7088
7089 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
7090
7091         * object.c: Always initialize apartment, even if 
7092         there is no custom attributes on entry point.
7093         
7094         Code is contributed under MIT/X11 license.
7095
7096 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
7097
7098         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
7099         * metadata.c: If no encoding is set, check for unicode
7100         on class.
7101         
7102         Code is contributed under MIT/X11 license.
7103
7104 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7105
7106         * threads.c: Handle if mono_thread_current returns NULL 
7107         
7108         Code is contributed under MIT/X11 license.
7109
7110 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
7111
7112         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
7113         in start_wrapper. Added mono_thread_init_apartment_state and
7114         mono_thread_cleanup_apartment_state.
7115         * object.c: Initialize thread apartment state on main thread
7116         by checking for STAThreadAttribute on entry point.
7117         * object-internals.h: Add apartment_state field to MonoThread.
7118         * threads-types.h: Add unmanaged definition of 
7119         System.Threading.ApartmentState, MonoThreadApartmentState.
7120         
7121         Code is contributed under MIT/X11 license.
7122         
7123 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
7124
7125         * class.c: Fix windows build.
7126         * class-internals.h: Fix windows build.
7127         
7128         Code is contributed under MIT/X11 license.
7129
7130 2007-05-08  Robert Jordan  <robertj@gmx.net>
7131
7132         * process.c (CreateProcess_internal):
7133         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
7134         .CreateNoWindow was specified. Fixes #81496.
7135
7136 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7137
7138         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
7139         step in implementing IMT, replaced it with two compact arrays
7140         (interfaces_packed and interface_offsets_packed) and a bitmap that
7141         is used for isinst checks (interface_bitmap).
7142
7143         * class.c: (compare_interface_ids): compare function to pass to
7144         bsearch when looking for an interface with a given id.
7145         (mono_class_interface_offset): reimplemented using bsearch on
7146         interfaces_packed, getting the offset from interface_offsets_packed.
7147         (print_implemented_interfaces): utility debugging function.
7148         (setup_interface_offsets): reworked to initialize interfaces_packed,
7149         interface_offsets_packed and interface_bitmap.
7150
7151         * object.c: replaced all accesses to "MonoClass.interface_offsets"
7152         with uses of interfaces_packed and interface_offsets_packed.
7153
7154 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
7155
7156         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
7157         mono_class_interface_offset prototype to wrap all accesses to
7158         "MonoClass.interface_offsets".
7159
7160         * class.c: Implemented mono_class_interface_offset, and wrapped all
7161         accesses to "MonoClass.interface_offsets".
7162
7163         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
7164         "MonoClass.interface_offsets".
7165
7166 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
7167
7168         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
7169         GetMethodFromHandle overloads (bug #78637).
7170
7171 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
7172
7173         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
7174         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
7175
7176 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
7177
7178         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
7179         #81498.
7180
7181         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
7182         gracefully.
7183         (mono_custom_attrs_from_index): Ditto.
7184
7185         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
7186         Fixes #81501.
7187
7188 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
7189
7190         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
7191         is now allocated from a mempool.
7192
7193 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
7194
7195         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
7196         caller holds threads_lock, leading to deadlocks. Fixes #81476.
7197
7198 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
7199
7200         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
7201         mono_loader_clear_error () too late. Fixes #81463.
7202
7203 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
7204
7205         * culture-info-table.h : regenerated.
7206
7207 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
7208
7209         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
7210         is missing.
7211
7212 2007-04-25  Dick Porter  <dick@ximian.com>
7213
7214         * Makefile.am: Put the mingw enforced-optimisation back into the
7215         PLATFORM_WIN32 section.
7216
7217 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
7218
7219         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
7220         patch.
7221
7222         * image.c (mono_image_load_module): New API function to load a module reference.
7223
7224         * image.c (load_modules): Load modules lazily. Fixes #80812.
7225
7226         * class.c (mono_class_from_typeref): Use mono_image_load_module.
7227         
7228         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
7229
7230         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
7231         to mono_image_load_module_dynamic.
7232
7233 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
7234
7235         * marshal.c: Fix calling convention for CCW on non-windows
7236         platforms. STDCALL on windows, CDECL everywhere else to work 
7237         with XPCOM and MainWin COM.
7238         
7239         Code is contributed under MIT/X11 license.
7240
7241 2007-04-23  Martin Baulig  <martin@ximian.com>
7242
7243         Fix #80969.
7244
7245         * loader.c
7246         (method_from_memberref): Added `gboolean *used_context' argument.
7247         (mono_get_method_from_token): Likewise.
7248         (mono_get_method_full): Don't insert the method in the cache when
7249         `used_context' is true.
7250
7251 2007-04-23  Raja R Harinath  <rharinath@novell.com>
7252
7253         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
7254
7255         * reflection.c (mono_reflection_bind_generic_parameters): Don't
7256         create new MonoTypes for returned types.
7257         * class.c (mono_generic_class_get_class): Export mono-internal.
7258         * class-internals.h: Update to changes.
7259
7260 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
7261
7262         * threadpool.c, threadpool.h, icall-def.h: patch from
7263         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
7264
7265 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
7266
7267         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
7268         
7269         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
7270
7271         * threads.c (mono_thread_get_stack_bounds): New helper function.
7272
7273         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
7274         Correctly compute stack bounds when attaching. Fixes #81394.
7275
7276 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
7277
7278         * reflection.c: fix handling of doubles in custom attributes
7279         for the arm-fpa format (bug #81368).
7280
7281 2007-04-18  Raja R Harinath  <rharinath@novell.com>
7282
7283         * reflection.c (assembly_add_win32_resources): Mildly relax an
7284         bounds check to let the end pointer point just past the end of the
7285         allocated buffer.  (may fix #81384)
7286
7287 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
7288
7289         * culture-info-table.h : regenerated.
7290
7291 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
7292
7293         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
7294         the thread is aborted early.
7295
7296 2007-04-05  Dick Porter  <dick@ximian.com>
7297
7298         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
7299         FindFirstFile()/FindNextFile() to find entries.  This lets the
7300         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
7301         81038.
7302
7303         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
7304         the parameters of
7305         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
7306
7307 2007-04-04  Martin Baulig  <martin@ximian.com>
7308
7309         * debug-helpers.c
7310         (mono_method_desc_full_match): Add support for nested classes.
7311
7312 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
7313
7314         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
7315
7316 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
7317
7318         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
7319         waiting for too many threads.
7320
7321 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
7322
7323         * environment.c: Fix return value check on uname so we can get the 
7324         executing version on Solaris operating systems.
7325
7326 2007-03-28  Jb Evain  <jbevain@gmail.com>
7327
7328         * class.c (mono_type_get_name_recurse): Complete the
7329         fix for the creation of assembly qualified names for
7330         pointer types. Fixes #81208.
7331
7332 2007-03-27  Dick Porter  <dick@ximian.com>
7333
7334         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
7335         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
7336         changed.
7337
7338         * threads.c
7339         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
7340         the value of ReleaseMutex().
7341
7342 2007-03-27  Dick Porter  <dick@ximian.com>
7343
7344         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
7345         in little-endian order, not network endian, so must be converted
7346         to host endian here.  Fixes bug 80593.
7347
7348 2007-03-22  Jb Evain  <jbevain@gmail.com>
7349
7350         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
7351         qualified names for pointer types. Fixes #81208.
7352
7353 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
7354
7355         * marshal.c: Add support for PreserveSigAttribute. 
7356         
7357         Code is contributed under MIT/X11 license.
7358
7359 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
7360
7361         * process.c: Fix endianness issues. Fixes #81126.
7362
7363         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
7364         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
7365
7366         * image.c (mono_image_lookup_resource): Make this work on big-endian
7367         machines.Change API contract so the caller needs to free the return value.
7368         
7369         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
7370         API change.
7371         
7372 2007-03-14  Martin Baulig  <martin@ximian.com>
7373
7374         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
7375         mono_type_get_desc() as well.
7376
7377 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
7378
7379         * icall.c:  Fix environ access in VS.  
7380         
7381 2007-03-13  Alp Toker  <alp@atoker.com>
7382
7383         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
7384         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
7385         #63841.
7386
7387 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
7388
7389         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
7390         circular references among dynamic methods. Fixes #81091.
7391
7392         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
7393
7394 2007-03-09  Martin Baulig  <martin@ximian.com>
7395
7396         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
7397
7398 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
7399
7400         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
7401         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
7402         
7403         Code is contributed under MIT/X11 license.
7404         
7405 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
7406
7407         * loader.c: Reapply patch for bug #79424.
7408
7409 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7410
7411         * metadata.c (mono_type_to_unmanaged): Only convert object to
7412         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
7413
7414 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
7415
7416         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
7417         (and incorrectly set) is_reference field from MonoGenericInst.
7418
7419 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7420
7421         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
7422         a little earlier.
7423
7424         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
7425
7426         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
7427
7428 2007-03-05  Miguel de Icaza  <miguel@novell.com>
7429
7430         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
7431         FileOptions.1 value to mean "temporary", map that to
7432         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
7433
7434         Fixes 80688
7435
7436 2007-03-03  Marek Habersack  <mhabersack@novell.com>
7437
7438         * appdomain.c: implement MS .Net style shadow copying. Copies of
7439         the assemblies are made in a subdirectory of the dynamic base
7440         directory, the assembly names are preserved.
7441         Copy .mdb and .config files along with the assemblies being shadowed.
7442
7443 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7444
7445         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
7446         (emit_marshal_handleref): Ditto.
7447
7448         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
7449         on Visual C++. Fixes #80671.
7450
7451 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
7452
7453         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
7454         for clone operations.
7455
7456 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7457
7458         * marshal.c: Fix warnings.
7459
7460 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
7461
7462         * loader.c: allow case-insensitive matching of the dll name
7463         in dllmap handling when prefixed with "i:".
7464
7465 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
7466
7467         * threads.c: Fix #ifdef for dummy_apc function for VS.
7468
7469 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
7470
7471         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
7472
7473 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
7474         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
7475         giving precedence to the methods with a fully qualified name
7476         (InterfaceName.MethodName) when building the interface sections
7477         of the vtable.
7478
7479 2007-02-16  Dick Porter  <dick@ximian.com>
7480
7481         * threadpool.c (append_job): Fix fast-path array handling, so it's
7482         less likely the array will grow exponentially when the load is
7483         heavy.
7484
7485 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7486
7487         * metadata-internals.h, loader.c: fix dllmap lookup order
7488         for non-function maps, too, and prepare for fallback code.
7489
7490 2007-02-12  Robert Jordan  <robertj@gmx.net>
7491
7492         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
7493         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
7494         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
7495         GlobalFree. Fixes a part of bug #77075.
7496
7497 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
7498
7499         * loader.c: implemented typedef parent in field memberref.
7500
7501 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
7502
7503         * marshal.c: Fix warnings and remember to call Release on
7504         IUnknown of RCW.
7505         
7506         Code is contributed under MIT/X11 license.
7507
7508 2007-02-10  Miguel de Icaza  <miguel@novell.com>
7509
7510         * class-internals.h: Add MonoHandleRef definition, and
7511         handleref_class to mono_defaults. 
7512
7513         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
7514         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
7515
7516         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
7517         (do nothing on this stage)
7518         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
7519         (emit_marshal_handleref): New method, used for argument handling
7520         of HandleRefs. 
7521
7522 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
7523
7524         * class.c (mono_class_setup_parent): Lazily init com types.
7525         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
7526         init com types.
7527         * object.c (mono_remote_class_vtable): Lazily init com types.
7528         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
7529         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
7530         * domain-internals.h: Expose mono_init_com_types.
7531         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
7532         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
7533         Add support for COM Callable Wrapper marshalling.
7534         * marshal.h: Add icall definitions.
7535         * gc.c: Handle freeing of CCWs in finalizer code.
7536         
7537         Code is contributed under MIT/X11 license.
7538
7539 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
7540
7541         * reflection.c: changed all the signature encoding code to use
7542         a variable-sized buffer.
7543
7544 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7545
7546         * marshal.c: locking fixes: never take the loader lock
7547         or other runtime locks when holding the marshal lock
7548         (fixes bug#80664).
7549
7550 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
7551
7552         * marshal.c: make the delegate function pointer mapping
7553         work for the moving GC.
7554
7555 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
7556
7557         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
7558         for bug #80618.
7559
7560 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7561
7562         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
7563         gmodule.
7564
7565 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
7566
7567         * threadpool.c: made the code moving-GC safe.
7568
7569 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
7570
7571         * assembly.c, boehm-gc.c, class-internals.h, class.c,
7572         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
7573         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
7574         warning cleanup.
7575         * reflection.c: warning cleanup, some threading and moving GC fixes.
7576
7577 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
7578
7579         * class.c, loader.c: create the needed Set/Get/Address array methods
7580         as well as the .ctors in mono_class_init (), fixes bug #80567.
7581
7582 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
7583
7584         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
7585         we doesn't decrease its alignment. Should fix the sparc build.
7586
7587 2007-01-24  Dick Porter  <dick@ximian.com>
7588
7589         * socket-io.c
7590         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7591         Create the returned object if we need to ignore an unsupported
7592         socket option.  Fixes a segfault reported by Atsushi.
7593
7594 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
7595
7596         * class.c, object.c: restrict GC-tracked fields to
7597         UIntPtr fields used inside corlib, so we provide better
7598         type info to the GC and also allow broken packing as in
7599         bug #80580.
7600
7601 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
7602
7603         * sgen-gc.c: removed duplicated function.
7604
7605 2007-01-19  Miguel de Icaza  <miguel@novell.com>
7606
7607         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
7608         value that means that the value is not supported, but that we
7609         should not return a failure, but instead report this as a
7610         successful operation.
7611
7612 2007-01-19  Raja R Harinath  <rharinath@novell.com>
7613
7614         Fix tests/bug79956.2.il
7615         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
7616         (mono_generic_class_get_class): If the generic definition in an
7617         enum, copy over other fields related to it.
7618
7619 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
7620
7621         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
7622         genericinst enums (bug #79215).
7623
7624 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
7625         * class.c: Fix bug 80307.
7626
7627 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
7628
7629         * image.c: if the file table is not present, try to load
7630         all the modules, since we don't have info about them
7631         having or not metadata (bug #80517).
7632         * assembly.c: allow mono_assembly_load_references () to
7633         work for netmodules.
7634
7635 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7636
7637         * image.c, metadata-internals.h, object.c: execute module
7638         cctors when running on the 2 runtime if present (bug #80487).
7639
7640 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
7641
7642         * icall.c: optimized InitializeArray() on bigendian.
7643
7644 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
7645
7646         * icall.c: fix for the broken ARM FPA double format.
7647
7648 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
7649
7650         * icall.c: handle endian issues for r4 and r8 types, too, in
7651         the InitializeArray() icall.
7652
7653 2007-01-15  Miguel de Icaza  <miguel@novell.com>
7654
7655         * loader.c (mono_loader_error_prepare_exception): Clear the error
7656         once we have extracted the information from it, do this before we
7657         call into the JIT's class loading mechanisms.
7658
7659         * object.c (mono_class_create_runtime_vtable): Do not clear the
7660         loader error before calling mono_class_get_exception_for_failure
7661         as the loader error is needed inside
7662         mono_class_get_exception_for_failure to throw the error (thinko).
7663
7664         Fixes #80521
7665         
7666 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
7667
7668         * reflection.c: align fields rva data so it's faster to load at
7669         runtime.
7670
7671 2007-01-12  Raja R Harinath  <rharinath@novell.com>
7672
7673         Prepare to simplify GenericMethod handling.
7674         * class-internals.h (mono_method_get_context): New accessor function.
7675         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
7676         rather than directly accessing '->context' field.
7677
7678         * class-internals.h (_MonoGenericParam.method): Move ...
7679         (_MonoGenericContainer): ... here.  Add into union with klass field.
7680         * class.c, icall.c, loader.c, metadata.c, reflection.c:
7681         Update to changes.
7682
7683 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
7684
7685         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
7686         the wrapper type enum and reduce relocations.
7687
7688 2007-01-12  Raja R Harinath  <rharinath@novell.com>
7689
7690         * reflection.c (inflate_mono_method): Reuse method instantiation
7691         from the generic method, if available.
7692
7693 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7694
7695         * marshal.c (emit_marshal_variant): Fix conv_arg
7696         type in last commit, based on whether parameter is byref.
7697         
7698 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7699
7700         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
7701         marshalling.
7702         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
7703         MONO_TYPE_OBJECT back for VARIANT support.
7704
7705 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7706
7707         * marshal.c, marshal.h, icall-def.h: Implement 
7708         Marshal.ReAllocCoTaskMem.
7709
7710 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
7711
7712         * marshal.c: memory retention fixes: use the proper
7713         image cache for runtime_invoke method lookups.
7714
7715 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
7716
7717         * mempool.c: added code to help debug mempool allocations.
7718
7719 2007-01-11  Dick Porter  <dick@ximian.com>
7720
7721         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
7722         support (experimenting with faking it with IP_MTU_DISCOVER for
7723         systems that don't have IP_DONTFRAGMENT.)
7724         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
7725         icall.
7726
7727         * icall-def.h: new System.Net.Sockets.Disconnect icall.
7728
7729         * socket-io.h: Add new fields to MonoSocketAsyncResult
7730         corresponding to the new ones in Socket.cs.
7731
7732 2007-01-11  Raja R Harinath  <rharinath@novell.com>
7733
7734         Fix IronPython regression mentioned in #80249
7735         * metadata.c (do_mono_metadata_parse_generic_class): Clear
7736         'cached_context' field, since it may have been initialized as a
7737         side-effect of metadata parsing.
7738
7739         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
7740         (_MonoGenericClass.cached_class): Move here and rename from lone
7741         remaining field of ...
7742         (_MonoInflatedGenericClass): ... this.  Remove.
7743         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
7744         to changes.
7745
7746         Fix mcs/tests/test-128.cs regression.
7747         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
7748         2007-01-10 change below.
7749         [MONO_TYPE_OBJECT]: Recurse into array case.
7750
7751 2007-01-11  Raja R Harinath  <harinath@gmail.com>
7752
7753         * class-internals.h (mono_get_inflated_generic_class): Remove.
7754         * class.c (mono_get_inflated_generic_class): Remove.
7755         (mono_generic_class_get_class): Rename from
7756         mono_class_create_generic.
7757         (mono_class_from_mono_type) [GENERICINST]: Use it.
7758         * reflection.c, metadata.c: Update to changes.  Use
7759         'mono_class_from_mono_type'.
7760
7761 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
7762
7763         * reflection.c: use passed type when encoding an array element
7764         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
7765
7766 2007-01-09  Robert Jordan  <robertj@gmx.net>
7767
7768         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
7769         result arguments (someDelegate.EndInvoke (unrelatedAres)).
7770         Fixes bug #80392.
7771
7772 2007-01-09  Raja R Harinath  <rharinath@novell.com>
7773
7774         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
7775
7776         * object.c (set_value): Avoid aliasing between type->data.klass
7777         and type->data.generic_class.
7778
7779         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
7780
7781 2007-01-08  Raja R Harinath  <rharinath@novell.com>
7782
7783         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
7784         between type->data.klass and type->data.generic_class.
7785
7786 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
7787
7788         * marshal.c: In MS.NET, StringBuilder objects are not copied by
7789         value in out parameters.
7790
7791 2007-01-08  Raja R Harinath  <rharinath@novell.com>
7792
7793         Simplify invariant for MonoGenericClass::klass field.
7794         * class.c (mono_class_create_generic): Verify 'klass' is null.
7795         * metadata.c (do_mono_metadata_parse_generic_class): Don't
7796         initialize 'klass' field.
7797
7798 2007-01-05  Raja R Harinath  <rharinath@novell.com>
7799
7800         Ongoing work to avoid redundant data and simplify invariants.
7801         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
7802         'generic_class', and change type to a GenericInst.
7803         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
7804         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
7805
7806 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
7807
7808         * class.c : skip io-layer under PLATFORM_WIN32.
7809
7810 2007-01-03  Tor Lillqvist  <tml@novell.com>
7811
7812         Fix #80305: In a bundled executable, look in the bundled exe
7813         assembly to determine the runtime version. Add the possibility to
7814         bundle also the machine.config file.
7815         
7816         * assembly.c (mono_assembly_open_from_bundle): Make
7817         non-static. Allow being called even if we have no bundled
7818         assemblies, and return NULL right away in that case.
7819
7820         * domain-internals.h: Declare mono_assembly_open_from_bundle()
7821         here.
7822
7823         * domain.c (app_config_parse): Take an assembly exe file name as
7824         parameter instead of a config file name. Check for a bundled
7825         config file for that assembly by calling
7826         mono_config_string_for_assembly_file() (see below) before looking
7827         for one in the file system.
7828         (get_runtimes_from_exe): Corrsponding change to call of
7829         app_config_parse().
7830         (get_runtimes_from_exe): Check for bundled assembly exe file first
7831         by calling mono_assembly_open_from_bundle(). If no bundled
7832         assembly exe file is found, call mono_image_open() as before to
7833         look it up in the file system.
7834
7835         * mono-config.c: Add variable bundled_machinec_onfig.
7836         (mono_config_string_for_assembly_file): New function.
7837         (mono_config_for_assembly): Move code snippet that looks for a
7838         bundled assembly .config file into the above new function. Call
7839         it.
7840         (mono_register_machine_config, mono_get_machine_config): New
7841         functions to set and retrieve
7842
7843         * assembly.h: Declare mono_register_machine_config().
7844
7845         * mono-config.h: Declare mono_get_machine_config() and
7846         mono_config_string_for_assembly_file().
7847
7848         * icall.c: No declaration of environ necessary on Win32. It is
7849         declared (as a macro expanding to a function call) in stdlib.h.
7850         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
7851         New internal mono function. Returns the value of
7852         mono_get_machine_config() as a Mono string.
7853
7854         * icall-def.h: Add get_bundled_machine_config().
7855
7856 2007-01-04  Raja R Harinath  <rharinath@novell.com>
7857
7858         Remove redundant field
7859         * class-internals.h (_MonoGenericContext.container): Remove field.
7860         * loader.c (mono_method_get_signature_full): Don't parse a
7861         "container" for a signature parse when the signature is inflated
7862         immediately.
7863         (method_from_methodspec): Likewise, for a generic_inst.
7864         * class.c, metadata.c, reflection.c: Update to changes.
7865
7866 2006-01-04  Raja R Harinath  <rharinath@novell.com>
7867
7868         * class-internals.h (_MonoGenericClass): Rename 'context' field to
7869         'cached_context', and change semantics -- it starts off NULL, and
7870         is initialized on demand.
7871         * class.c (mono_generic_class_get_context): New accessor to
7872         replace 'context' field accesses.
7873         (mono_class_get_context): New helper.
7874         (*): Update to changes.
7875         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
7876
7877 2007-01-03  Miguel de Icaza  <miguel@novell.com>
7878
7879         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
7880         before the memcpy.   Fixes Marshal2 regression.
7881
7882 2007-01-02  Jb Evain  <jbevain@gmail.com>
7883
7884         * blob.h: add a MONO_TYPE_ENUM definition
7885         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
7886         fix the encoding of arrays of enums in custom attributes.
7887
7888         Fixes #79666.
7889
7890 2007-01-01  Miguel de Icaza  <miguel@novell.com>
7891
7892         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
7893         string is null terminated, but only cut the string short if it
7894         overflows the buffer.   
7895         
7896         (mono_string_to_byvalstr): Also fix this routine.   The code here
7897         was not properly terminating a string (it was only terminated
7898         because of the previous catch-all memset). 
7899
7900         I left the memset, because I do not know if applications expect
7901         the runtime to clear this region. 
7902
7903         Fixes #79944.
7904
7905         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
7906         Clear the error before returning to unmanaged code to prevent the
7907         runtime from being confused later on (fixes  80420).
7908         (ves_icall_type_from_name): Always call mono_loader_clear_error
7909         after parsing a type that could have failed.
7910         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
7911
7912         * loader.c (mono_loader_clear_error): Fix indentation.
7913
7914 2006-12-28  Martin Baulig  <martin@ximian.com>
7915
7916         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
7917
7918 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
7919
7920         * reflection.c: patch from Rolf Bjarne Kvinge to fix
7921         getting a token for an EnumBuilder.
7922
7923 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7924
7925         * reflection.c: be more careful in case resource generation
7926         fails to create the data array.
7927
7928 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
7929
7930         * sgen-gc.c: write barrier for clone and fix unregister handles.
7931
7932 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
7933
7934         * reflection.c: some fixes needed in the generics code for the moving GC.
7935
7936 2006-12-22  Robert Jordan  <robertj@gmx.net>
7937
7938         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
7939         account. Fixes bug #80299.
7940
7941 2006-12-21  Raja R Harinath  <rharinath@novell.com>
7942
7943         Fix WaitHandle usage in delegates.
7944         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
7945         * object.c (mono_wait_handle_new): Use the property set method to
7946         initialize the handle.
7947         (mono_wait_handle_get_handle): New.
7948         * threadpool.c (mono_async_invoke): Use it.
7949         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
7950         Likewise.
7951         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
7952
7953 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
7954
7955         * marshal.c (emit_marshal): Call emit_marshal_variant and
7956         emit_marshal_com_interface when applicable.
7957         (emit_marshal_variant, emit_marshal_com_interface): Add
7958         methods for this case and remove if's from emit_marshal_object.
7959         
7960 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
7961
7962         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
7963
7964 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
7965
7966         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
7967         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
7968         and GlobalFree on Windows. Remove FIXME.
7969
7970 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7971
7972         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
7973         implementation for managed objects.
7974
7975 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
7976
7977         * object.c: implemented code to be used for checking
7978         that no reference field overlaps with non-references.
7979
7980 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7981
7982         * threadpool.c: fix queue code to be compatible with the
7983         moving GC.
7984
7985 2006-12-18  Miguel de Icaza  <miguel@novell.com>
7986
7987         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
7988         in structures by throwing ArgumentNullException.
7989
7990         (emit_marshal_safehandle): Also when they are null parameters.
7991
7992         (emit_marshal_safehandle): Add support for ref
7993         SafeHandles parameters
7994
7995 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7996
7997         * profiler.c: updated to use the mono-dl API instead of
7998         gmodule.
7999
8000 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8001
8002         * profiler.c: updated to use the mono-dl dynamic loading
8003         API instead of gmodule.
8004
8005 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
8006
8007         * profiler.c: use readlink, older versions of glib don't have
8008         g_file_read_link ().
8009
8010 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8011
8012         * profiler.c: try to detect the path to mono if libc fails to provide
8013         a useful name (bug #80286).
8014
8015 2006-12-16  Raja R Harinath  <rharinath@novell.com>
8016
8017         Fix #80242
8018         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
8019         instance, use the generic type definition instead.
8020         (ves_icall_Type_GetNestedTypes): Likewise.
8021         * class.c (mono_class_create_generic): Always set the
8022         nested_classes of a generic instance to NULL, even if the generic
8023         type definition has nested types.
8024
8025 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
8026
8027         * marshal.c (mono_string_from_bstr): Revert previous Windows change
8028         and fix on Linux.
8029         
8030 2006-12-15  Miguel de Icaza  <miguel@novell.com>
8031
8032         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
8033         my arguments were in the wrong order.   I also fixed the Windows
8034         version which seems to have had the same issue.
8035
8036         (mono_free_bstr): On Unix, this is g_free.
8037         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
8038         conversions (for the tests in corlib to pass).
8039
8040 2006-12-14  Miguel de Icaza  <miguel@novell.com>
8041
8042         * marshal.c (emit_ptr_to_object_conv): For now, ignore
8043         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
8044         exception if a ref SafeHandle in a struct has changed).
8045         
8046         (emit_struct_conv): Do not perform layout checks for classes
8047         derived from SafeHandle, as those are specially handled. 
8048
8049         (emit_object_to_ptr_conv): Add support for
8050         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
8051
8052         (emit_marshal_safehandle): Implement conversion of return values
8053         of safehandles (MARSHAL_ACTION_CONV_RESULT).
8054         
8055         * threads.c: WaitHandle now is compiled with two different handles
8056         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
8057         for 2.0.
8058         
8059         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
8060         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
8061         these routines to cope with both kinds of fields.
8062
8063 2006-12-12  Miguel de Icaza  <miguel@novell.com>
8064
8065         * metadata.c (mono_type_to_unmanaged): Handle the case where
8066         type->data.klass is a SafeHandle, and in that case, return the
8067         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
8068         MONO_MARSHAL_CONV_SAFEHANDLE. 
8069
8070 2006-12-11  Miguel de Icaza  <miguel@novell.com>
8071
8072         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
8073         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
8074         calling emit_marshal_object.
8075
8076         (emit_marshal_safehandle): Implement marshalling of
8077         SafeHandle parameters (no ref support yet).
8078
8079         (MarshalAction): Document the defines as I implement
8080         them for SafeHandle.
8081
8082         (emit_marshal_object): indentation police.
8083
8084         * class-internals.h: Define MonoSafeHandle.
8085         Add safehandle_class to MonoDefaults type.
8086
8087         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
8088         list of classes to check for fields. 
8089
8090         * domain.c (mono_init_internal): Add SafeHandle to the list of
8091         mono_defaults loaded.
8092
8093 2006-12-15  Raja R Harinath  <rharinath@novell.com>
8094
8095         Fix #80253
8096         * reflection.c (mono_reflection_bind_generic_parameters): If the
8097         generic type definition is a type builder, ensure that it is fully
8098         initialized before instantiating it.  Kill some dead code.
8099
8100 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
8101
8102         * object.c: clear the loader_error () before loading
8103         more metadata stuff (bug #80258).
8104
8105 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
8106
8107         * icall.c, icall-defs.h: type modifiers icalls for
8108         parameters and properties.
8109
8110 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
8111
8112         * object.c, icall.c: fixed warnings.
8113
8114 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8115
8116         * marshal.c: fixed a couple of leaks and coding style in a few places.
8117
8118 2006-12-08  Dick Porter  <dick@ximian.com>
8119
8120         * process.c: Cope with NULL ProcessStartInfo arguments on windows
8121         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
8122         80173.
8123
8124 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8125
8126         * process.c: ProcessStartInfo may have only filename set and
8127         arguments can be NULL.
8128
8129 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
8130
8131         * icall.c: fix leak found by Robert Jordan.
8132
8133 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
8134
8135         * marshal.c, marshal.h: generate managed method to access an element
8136         of a multi-dimensional array.
8137
8138 2006-11-30  Paolo Molaro (lupus@ximian.com)
8139
8140         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
8141
8142 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8143
8144         * icall.c: back out GetFields () fix until the serialization code is
8145         fixed to not depend on the incorrect behaviour.
8146
8147 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
8148
8149         * profiler.c: provide defaults if none are set.
8150
8151 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
8152
8153         * Makefile.am, attrdefs.h: new public header file with
8154         constants for attributes for use by embedders.
8155
8156 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
8157
8158         * icall.c: GetFields () fix for bug #80064.
8159
8160 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
8161
8162         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
8163         removed long unused icalls.
8164
8165 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
8166   
8167         * marshal.c: 
8168                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
8169                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
8170                 can be generated without a delegate class.
8171                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
8172         
8173         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8174
8175 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8176
8177         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
8178         #80069.
8179
8180 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
8181
8182         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
8183         icall-def.h: added icalls needed by System.GC.
8184
8185 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
8186
8187         * loader.c: ensure the class in catch clauses is handled
8188         correctly for generics methods (fixes bug#79980).
8189
8190 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
8191
8192         * monitor.h, monitor.c: added mono_locks_dump () function
8193         to help debug deadlocks involving managed locks.
8194
8195 2006-11-13  Dick Porter  <dick@ximian.com>
8196
8197         * file-io.c (get_file_attributes): If the file is a symlink try
8198         and get the stat data for the target, but also add the
8199         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
8200         the specs for the windows symlink support, but will probably have
8201         to be reworked when I have test data from a vista machine.  Fixes
8202         bug 79887.
8203
8204 2006-11-13  Dick Porter  <dick@ximian.com>
8205
8206         * gc.c (mono_domain_finalize): 
8207         * marshal.c (mono_delegate_begin_invoke): 
8208         * threadpool.c (socket_io_init, mono_thread_pool_init)
8209         (mono_thread_pool_finish): 
8210         * monitor.c (mono_monitor_try_enter_internal): 
8211         * threads.c (mono_thread_resume, mono_thread_init)
8212         (mono_thread_suspend_all_other_threads)
8213         (mono_thread_execute_interruption): 
8214         * appdomain.c (mono_domain_unload): Check for NULL error returns
8215         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
8216         75733.
8217
8218 2006-11-11  Miguel de Icaza  <miguel@novell.com>
8219
8220         * process.c
8221         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
8222         Only close the handle if the value of the handle is not
8223         INVALID_HANDLE_VALUE.  This just makes the process a bit more
8224         robust.
8225
8226         Improvement for #75733, so that we do not run into this problem. 
8227
8228         
8229         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
8230         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
8231         internal variables.  Fixes #79462 
8232         
8233
8234 2006-11-09  Dick Porter  <dick@ximian.com>
8235
8236         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8237         Use poll() not select().  Fixes bug 79397.
8238
8239 2006-11-09  Raja R Harinath  <rharinath@novell.com>
8240
8241         Fix #79872
8242         * assembly.c (mono_assembly_load_from_full): Check that the given
8243         image has an assembly manifest.
8244
8245 2006-11-09  Ankit Jain  <jankit@novell.com>
8246
8247         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
8248         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
8249         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
8250
8251 2006-11-07  Dick Porter  <dick@ximian.com>
8252
8253         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8254         Put the old resolver behaviour back for pre-2.0 profiles.
8255
8256 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8257
8258         * threadpool.c: precise GC and locking fixes.
8259
8260 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
8261
8262         * class.c: don't load types that have an explicit unaligned
8263         managed reference. Provide better info in the TypeLoad exception.
8264         Part of the fix for bug #79744.
8265         * object.c: use the correct check for class type load issues.
8266
8267 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8268
8269         * class.c: enforce alignment of fields with managed references
8270         even when Pack=1 is forced by the user (bug #77788).
8271
8272 2006-11-03  Dick Porter  <dick@ximian.com>
8273
8274         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8275         If the address reverse lookup fails, return it as the hostname
8276         anyway.  Fixes bug 79721.
8277
8278 2006-11-03  Dick Porter  <dick@ximian.com>
8279
8280         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
8281         Fix build on Windows.
8282
8283 2006-11-02  Dick Porter  <dick@ximian.com>
8284
8285         * icall-def.h: 
8286         * object-internals.h: 
8287         * exception.c (mono_get_exception_thread_interrupted): 
8288         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
8289         Fixes bug 74525.
8290
8291         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
8292         Check for pending Thread.Interrupt.
8293
8294 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
8295         * loader.c: Fixed bug 79684.
8296
8297 2006-10-27  Dick Porter  <dick@ximian.com>
8298
8299         * file-io.c (get_file_attributes): Force symlinks to directories
8300         to be returned as a regular file.  Fixes bug 79733.
8301 2006-10-26  Dick Porter  <dick@ximian.com>
8302
8303         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
8304         CreateFile to open a directory then we need to set the
8305         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
8306
8307 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
8308
8309         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
8310         friends.
8311
8312 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8313
8314         * sgengc.c: small cleanup of timer code.
8315
8316 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8317
8318         * sgen-gc.c: fix some warnings and start adding support for
8319         complete object removal on domain unload.
8320
8321 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
8322
8323         * assembly.c: build_assembly_name should not consider a version
8324         number without build or revision number invalid. Fixes bug #79715.
8325
8326 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
8327
8328         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
8329         call kernel32 function OutputDebugString directly.
8330         
8331         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8332         
8333 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
8334
8335         * reflection.c: small cleanup, using a function to insert a MonoString
8336         in the string heap.
8337
8338 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
8339
8340         * reflection.c: moving GC fixes.
8341
8342 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
8343
8344         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
8345         all the objects with finalizers belonging to an unloading appdomain.
8346
8347 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
8348
8349         * sgen-gc.c: added ability to allocate even when the nursery is fully
8350         pinned and fixed a couple of bugs.
8351
8352 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8353
8354         * threads.h: Revert the last change for now.
8355
8356         * threads.h (mono_thread_get_pending_exception): Rename this to
8357         mono_thread_get_undeniable_exception ().
8358
8359 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
8360
8361         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
8362         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
8363         when fname does not refer to valid assembly. This result in a more
8364         meaningful error message.
8365         * exception.c: added mono_get_exception_bad_image_format2 which 
8366         constructs a BadImageFormatException using the ctor taking a custom
8367         message and the file name. Passing in a NULL msg results in a default
8368         message.
8369         * exception.h: define mono_get_exception_bad_image_format2 function.
8370         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
8371         when file name pointed to an invalid IL image. Use 
8372         mono_get_exception_file_not_found2 to construct FileNotFoundException,
8373         as this results in a more meaningful error message.
8374
8375 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8376
8377         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
8378         #79465.
8379
8380 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
8381
8382         * metadata.c (mono_type_size): Change the align parameter to guint32 for
8383         consistency with the other _size functions.
8384         (mono_type_stack_size): Ditto.
8385
8386         * class.c object.c icall.c: Fix warnings caused by the above change.
8387
8388         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
8389
8390         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
8391
8392         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
8393
8394 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8395
8396         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
8397         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
8398         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
8399         threadpool.h, threads-types.h: mark more internal functions.
8400
8401 2006-10-11  Dick Porter  <dick@ximian.com>
8402
8403         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8404         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
8405         reproduce the bug even before applying the fix.)
8406
8407 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
8408
8409         * reflection.c: allow retrieving attributes for arguments in generic
8410         methods (bug #79241).
8411
8412 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
8413
8414         * debug-mono-symfile.c: properly check fopen () result (found by
8415         coverity).
8416
8417 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
8418
8419         * reflection.c: make error message clearer and fixed two
8420         issuelets found by Coverity.
8421
8422 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
8423
8424         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
8425
8426 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8427
8428         * object-internals.h, gc-internal.h, profiler-private.h:
8429         mark internal functions.
8430
8431 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8432
8433         * reflection.c: put data in the text section.
8434         * icall.c: recognize more types in type_from_typename ().
8435         * process.c, marshal.c: added some GC FIXMEs.
8436
8437 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8438
8439         * loader.c: check for NULL before initializing.
8440
8441 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
8442
8443         * gc.c (finalizer_thread): Use a non-alertable wait here.
8444
8445         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
8446         until the correct solution is found.
8447
8448 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8449
8450         * reflection.c (mono_module_get_object): Avoid an assert when operating on
8451         modules with no metadata. Fixes #79596.
8452
8453         * image.c (load_metadata_ptrs): Put back the error message when
8454         the #- heap is encountered since the support is not complete yet.
8455
8456 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8457
8458         * gc.c: do not allow the user to SuppressFinalize () a
8459         delegate because it would leak the trampoline if present.
8460
8461 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8462
8463         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
8464         PropertyPtr table.
8465
8466 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
8467
8468         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
8469
8470         * metadata.c (mono_metadata_get_param_attrs): Ditto.
8471
8472         * row-indexes.h: Add definitions for *Ptr tables.
8473
8474         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
8475
8476         * metadata.c (mono_metadata_translate_token_index): New helper function to
8477         translate table indexes used in uncompressed metadata.
8478         (mono_metadata_decode_table_row): Ditto.
8479         (mono_metadata_decode_table_row_col): Ditto.
8480
8481         * metadata.c: Add table schema for *Ptr tables.
8482
8483         * class.c loader.c: Use the new helper function to access the affected metadata
8484         tables.
8485         
8486         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
8487         #38532.
8488         
8489 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
8490
8491         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
8492         sequences which can be unbounded in size. Fixes #79583.
8493
8494 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
8495
8496         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
8497         static initialization.
8498
8499         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
8500
8501         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
8502
8503         * domain.c (mono_domain_free): Free up type_init_exception_hash.
8504
8505         * object.c (mono_runtime_class_init): Implement correct semantics when a static
8506         ctor fails, i.e. throw the same exception on subsequent accesses.
8507         
8508 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
8509
8510         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
8511         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
8512         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
8513         Handle marshalling of interfaces and VARIANTs contained in structs.
8514         
8515         Code is contributed under MIT/X11 license.
8516         
8517 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
8518
8519         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
8520         
8521         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
8522         mempool.
8523
8524 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8525
8526         * console-io.c: ignore previous SIGINT handler.
8527
8528 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
8529
8530         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
8531         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
8532         #79460, #79461, #79485.
8533
8534         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
8535
8536         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
8537         #79217.
8538
8539 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
8540
8541         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
8542         could be generated from it.
8543
8544 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
8545
8546         * rand.c: fix read loop to correctly handle EINTR.
8547
8548 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8549
8550         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
8551         internal calls are defined to keep methods closer to the declaring
8552         type and allow a significant reduction in runtime relocations and
8553         memory usage.
8554
8555 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
8556
8557         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
8558         exception message to have FileNotFoundException use the default
8559         assembly load error message. Fixes bug #79426.
8560         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
8561
8562 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8563
8564         * threadpool.c: (start_thread_or_queue) use the root domain when
8565         creating the thread instead of the async object one.
8566
8567 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
8568
8569         * class.c, object.c, class-internals.h, reflection.c:
8570         for arrays, store element_size inside MonoClass (speedup
8571         for array object creation).
8572
8573 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
8574
8575         * icall.c: fixed CodeBase to use the file name and not the module
8576         name (bug #79365).
8577
8578 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
8579
8580         * mono-debug.c, mono-debug.h: export find_method as
8581         mono_debug_find_method ().
8582
8583 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8584
8585         * debug-helpers.c, class-internals.h: added a few functions useful
8586         when debugging under gdb.
8587
8588 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8589
8590         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
8591         characters that need special handling.
8592
8593 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
8594
8595         * mono-config.c: make the os/cpu specification more flexible,
8596         allowing lists and negation.
8597
8598 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
8599
8600         * marshal.c: COM Interop fixes. Handle case where method->klass.
8601         is interface. Handle BSTR/MonoString when null. Use CDECL as 
8602         calling convention on non-windows platforms. This is for
8603         compatibility with XPCOM and MainWin COM.
8604         
8605         Code is contributed under MIT/X11 license.
8606         
8607
8608 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
8609
8610         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
8611         correctly. Fixes #79217.
8612
8613         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
8614
8615 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
8616
8617         * mono-config.c: allow both an os and cpu attribute for dllmap
8618         and dllentry elemnets to enable a single config file to be used
8619         for multiple architectures.
8620
8621 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
8622
8623         * loader.c: MonoLoaderError was cleared too soon on load failure.
8624         Fixes bug #79424.
8625
8626 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
8627
8628         * icall.c: use the defining class vtable when accessing a
8629         static field, not a pobblibly derived class.
8630
8631 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
8632
8633         * icall.c string-icalls.c: Remove references to unicode.h.
8634
8635         * unicode.h unicode.c Makefile.am: Remove these unused source files.
8636
8637         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
8638
8639         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
8640         indicating the image where custom marshaller types should be looked up.
8641         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
8642         custom marshallers, instead of corlib. Fixes #79425.
8643
8644 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
8645
8646         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
8647
8648 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
8649
8650         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
8651         Implement Environment.ProcessorCount.
8652         
8653         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
8654         Implement Environment.ProcessorCount.
8655         
8656         * icall.c: 
8657         Add Environment.ProcessorCount icall.
8658         
8659         Patch by Jason McFall.
8660
8661 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8662
8663         * assembly.c: don't append .exe/.dll when the filename already contains
8664         one of those extensions.
8665
8666 2006-09-12  Martin Baulig  <martin@ximian.com>
8667
8668         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
8669         to array interfaces.
8670
8671 2006-09-11  Martin Baulig  <martin@ximian.com>
8672
8673         * reflection.c (mono_image_build_metadata): Create the
8674         MethodImpl's after emitting all types and methods, so we don't
8675         need another fixup pass for them.
8676
8677 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
8678
8679         * class.c (mono_class_from_name_case): Fix regression introduced by the last
8680         change.
8681
8682 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
8683
8684         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
8685         unload.
8686
8687 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
8688
8689         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
8690         args is not set. Fixes #78926.
8691
8692 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
8693
8694         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
8695
8696         * image.c (load_class_names): Move this to class.c, and rename it to 
8697         'mono_image_init_name_cache'.
8698         (load_modules): Fix a warning.
8699
8700         * class.c icall.c image.c: Initialize image->name_cache lazily.
8701
8702         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
8703         on its name using information in the AOT file.
8704
8705         * class.c (mono_class_from_name): Use the new hook function.
8706
8707 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
8708
8709         * reflection.c (mono_param_get_objects): Handle enum default parameter values
8710         correctly.
8711
8712         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
8713         Fixes #79289.
8714         
8715 2006-09-06  Martin Baulig  <martin@ximian.com>
8716
8717         * icall.c (mono_lookup_internal_call): Small fix.
8718
8719 2006-09-05  Raja R Harinath  <rharinath@novell.com>
8720
8721         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
8722         double g_free.
8723
8724 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
8725
8726         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
8727         when --debug is specified.
8728
8729 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
8730
8731         * class.c (setup_generic_array_ifaces): Fix a warning.
8732
8733 2006-09-04  Miguel de Icaza  <miguel@novell.com>
8734
8735         * Temporarily remove the patch to assemly.c that checks the
8736         assembly versions as it breaks our gacutil.
8737
8738 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
8739
8740         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
8741
8742         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
8743         a net 1.0 runtime.
8744
8745         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
8746         created using the default ctor. Fixes #79152.
8747         (mono_string_builder_to_utf16): Ditto.
8748
8749 2006-09-01  Martin Baulig  <martin@ximian.com>
8750
8751         Fix handling of the generic array interfaces.
8752
8753         * class-internals.h
8754         (MonoDefaults): Removed `generic_array_class' and added
8755         `generic_ilist' class.
8756
8757         * class.c
8758         (mono_bounded_array_class_get): Add the new generic array interfaces.
8759         (setup_generic_array_ifaces): New static method; create vtable
8760         entries for each method in the generic array interfaces.
8761
8762         * metadata.c
8763         (select_container): Allow "parent-less" generic methods.
8764
8765         * marshal.c
8766         (mono_marshal_get_generic_array_helper): New public method.
8767
8768         * icall.c
8769         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
8770         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
8771         moved the interncall into System.Array.
8772
8773 2006-09-01  Raja R Harinath  <rharinath@novell.com>
8774
8775         A few more cases of avoiding work on types with ->byref set.
8776         Has the real fix for #79238
8777         * icall.c (is_generic_parameter): New helper.
8778         (ves_icall_Type_GetGenericParameterPosition): Use it.
8779         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
8780         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8781         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8782         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
8783         reference types.
8784         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
8785         reference types.
8786         (ves_icall_Type_get_IsGenericInstance): Likewise.
8787         (ves_icall_Type_get_IsGenericType): Likewise.
8788
8789 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
8790
8791         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
8792         class if possible.
8793
8794         * mempool.h (mono_mempool_get_allocated): New helper function.
8795
8796         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
8797         change.
8798
8799         * mempool.c: Fix warnings and the calculation of stats.
8800
8801         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
8802
8803         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
8804
8805         * loader.c (mono_get_method_from_token): Update method_count stat.
8806
8807         * class-internals.h (MonoStats): Add some stats.
8808
8809 2006-08-31 Robert Jordan  <robertj@gmx.net>
8810
8811         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
8812         with managed variants.
8813         All code is contributed under the MIT/X11 license.
8814         
8815 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
8816
8817         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
8818         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
8819
8820         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
8821
8822         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
8823         with cycles in classes.
8824
8825         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
8826
8827         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
8828         missing a [MarshalAs] directive. Fixes #79203.
8829
8830         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
8831         klass->marshal_info. Fixes #79217.
8832
8833 2006-08-30  Martin Baulig  <martin@ximian.com>
8834
8835         Committing a patch from Joachim Ante <joe@otee.dk>:
8836         Add support for binary data symbol stores.
8837
8838         * debug-mono-symfile.c
8839         (mono_debug_open_mono_symbol_file): Renamed into
8840         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
8841         arguments.
8842
8843         * mono-debug.c
8844         (mono_debug_open_image): Added `raw_contents' and `size' args.
8845         (mono_debug_init_2_memory): New public function.
8846
8847 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
8848
8849         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
8850
8851 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8852
8853         * appdomain.c: implement support for ShadowCopyFiles.
8854
8855 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
8856
8857         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
8858         when value is NULL (and should remove CID #51).
8859
8860 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8861
8862         * image.c: moved 2 functions to ../utils.
8863
8864 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
8865
8866         * gc.c: cope with the target object of a GC handle being NULL
8867         (bug #78877).
8868
8869 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
8870
8871         * class.c: recursively check parent's explicit implementations
8872         of interface methods (fixes bug #79125).
8873
8874 2006-08-19  Miguel de Icaza  <miguel@novell.com>
8875
8876         * filewatcher.c: Avoid warnings when building, do not redefine
8877         constants that are defined.
8878
8879         Remove warnings.
8880
8881 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8882
8883         * image.c: don't fail when the link points to an absolute path.
8884
8885 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
8886
8887         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
8888         Fix CID #3.
8889
8890 2006-08-17  Miguel de Icaza  <miguel@novell.com>
8891
8892         * image.c (full_path): A new method used to obtain the actual path
8893         of an assembly even in the presence of symbolic links.  
8894
8895         This is necessary for the case where we are running a binary that
8896         has been GACed, but we are using the "published" path name
8897         ($prefix/mono/1.0/blah.exe) which happens to point to the real
8898         file in the GAC.
8899
8900         This was the source of the failure for the `xsp' command with the
8901         recent AppDomain changes, as far as the runtime was concerned,
8902         there were two different assemblies: $prefix/mono/1.0/blah.exe and
8903         $prefix/mono/gac/blah/version/blah.exe.
8904
8905         (do_mono_image_open): use full path
8906
8907 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8908
8909         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
8910
8911 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
8912
8913         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
8914         domain_id is supplied. Fix CID #241 and corlib's unit tests.
8915
8916 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8917
8918         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
8919         small structures. Fixes #78990.
8920
8921 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8922
8923         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
8924
8925         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
8926
8927 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8928
8929         * appdomain.c:
8930         * marshal.c: don't load all the assemblies from a domain into newly
8931         created ones. The new domains might have different rules and load
8932         assemblies from different locations. Fixes bug #76757.
8933
8934         Patch by Lluis. Conflicts resolved by Brian Crowell.
8935
8936 2006-08-16  Alp Toker  <alp@atoker.com>
8937
8938         * socket-io.c: First half of the fix for #79084.
8939         Set sa_size to the length of the content, not that of the struct.
8940         Don't add NULL suffix to the content, this should be done in
8941         managed code if needed.
8942
8943 2006-08-14  Raja R Harinath  <rharinath@novell.com>
8944
8945         Fix part of #79012
8946         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
8947         mono_metadata_parse_type returns NULL.
8948
8949 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
8950
8951         * normalization-tables.h : new file for string normalization data.
8952         * locales.c, locales.h, icall.c :
8953           added load_normalization_resource() for string normalization,
8954           and icall as well.
8955         * Makefile.am : added normalization-tables.h to the sources.
8956
8957 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
8958
8959         * marshal.c: Add more helper functions to reduce code duplication and use them
8960         everywhere.
8961
8962 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
8963
8964         * marshal.c: Fix non-x86 stdcall warnings.
8965         
8966         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
8967         them everywhere.
8968
8969 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
8970
8971         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
8972         type check on multi-dimensional arrays. Fixes #79000.
8973
8974 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
8975
8976         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
8977         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
8978         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
8979         * class-internals.h: add is_com_object to class structure.
8980         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
8981         null checks to COM object marshalling. Fix .ctor call on RCW.
8982         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
8983         
8984         All code is contributed under the MIT/X11 license.
8985
8986 2006-08-09  Dick Porter  <dick@ximian.com>
8987
8988         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
8989         racing mono_monitor_allocator_lock() somewhere, so don't delete
8990         the critical section for now.  Found by running and exiting
8991         monodevelop.
8992
8993 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
8994
8995         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
8996         (ves_icall_System_ComObject_FindInterface): Ditto.
8997         (ves_icall_System_ComObject_CacheInterface): Ditto.
8998
8999         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
9000         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
9001
9002 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9003
9004         * threadpool.c: treat pipes from process asynchronous reads as sockets
9005         when reading from them, so we get select/poll or epoll to wait for
9006         data.
9007
9008 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
9009
9010         * loader.c: Fix a typo (CID #233) in the null check.
9011
9012 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
9013
9014         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
9015         Hopefully fixes #78949.
9016         
9017         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
9018         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
9019         bytes. Fixes #78972.
9020
9021 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9022
9023         * filewatcher.c: we need to set errno here.
9024
9025 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9026
9027         * filewatcher.c: let Win32Exception get the error value.
9028
9029 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9030
9031         * filewatcher.c: translate errno into win32 errors for Win32Exception
9032         to know what happened.
9033
9034 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
9035
9036         * threadpool.c: Fix more warnings.
9037
9038         * assembly.c (search_loaded): Fix warnings.
9039
9040         * threadpool.c (mono_thread_pool_finish): Fix warnings.
9041         (mono_async_invoke): Ditto.
9042
9043 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
9044
9045         * object.c (mono_remote_class_vtable): Need to create proxy vtable
9046         entries for __ComObject type in addition to ComImport types.
9047         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
9048         about hash table.
9049         
9050         All code is contributed under the MIT/X11 license.
9051
9052 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
9053
9054         * image.c: avoid tentative loading of modulerefs that contain
9055         no metadata (P/Invoke library names).
9056
9057 2006-07-28  Dick Porter  <dick@ximian.com>
9058
9059         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
9060         mono_loader_lock() somewhere, so don't delete the critical section
9061         for now.  Found by running and exiting monodevelop.
9062
9063 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9064
9065         * filewatcher.c: define the inotify syscalls when we're building on
9066         linux and have sys/syscall.h. The build system might not have support
9067         for inotify but the target system might have it.
9068
9069 2006-07-26  Miguel de Icaza  <miguel@novell.com>
9070
9071         * domain.c: Documentation updates.
9072
9073         * loader.c (mono_free_method): Do not release the method
9074         information if we are being profiled, as profilers will use this
9075         information at shut down to present some data to the user.
9076
9077         This is needed so that the profiler does not crash, as the
9078         profiler tends to keep MonoMethods around, and they might become
9079         invalid if we free these.
9080
9081         (mono_get_method_constrained): Return the original CIL stream
9082         method as well, so verification can be performed against it.
9083
9084 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9085
9086         * filewatcher.[ch]: support for inotify file system watcher.
9087         * icall.c: add new internal calls for the inotify file system watcher.
9088
9089 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9090
9091         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
9092         #78888.
9093
9094 2006-07-20  Dick Porter  <dick@ximian.com>
9095
9096         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
9097         warning.
9098
9099 2006-07-20  Dick Porter  <dick@ximian.com>
9100
9101         * threads.c (start_wrapper): Do the thread cleanup while we still
9102         hold a reference to its object.  Fixes bug 78123.
9103
9104 2006-07-18  KornĂ©l Pál  <kornelpal@gmail.com>
9105
9106         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
9107         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
9108           "managed-to-managed".
9109         * icall.c: Redirect string constructors that take sbyte* to
9110           ves_icall_System_String_ctor_RedirectToCreateString.
9111         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
9112           to CreateString () methods with matching signature.
9113         * reflection.c: Use original security informations for
9114           MONO_WRAPPER_MANAGED_TO_MANAGED.
9115         * security-manager.c: Use original security informations for
9116           MONO_WRAPPER_MANAGED_TO_MANAGED.
9117         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
9118           that is a placeholder and only its address should be used.
9119         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
9120           that is a placeholder and only its address should be used.
9121
9122 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
9123
9124         Begin implementing COM Interop.
9125         * appdomain.c: Increment corlib version.
9126         * class.c: Set ComImport classes' parent to __ComObject.
9127         * loader.c: Mark cominterop methods as such.
9128         * domain.c: Add __ComObject class to MonoDefaults structure.
9129         * image.c: Add 2 hashtables to the image for COM Interop related methods
9130         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
9131         using the mempool allocator
9132         
9133         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
9134         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
9135         declaration for mono_metadata_type_dup_mp.
9136         
9137         * debug-helpers.c: Added strings for two additional wrapper types
9138         * object.c: Create proxy objects for ComImport classes
9139         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
9140         and added __ComObject class to MonoDefaults structure.
9141         
9142         * object-internals.h: Finish MonoRealProxy definition, and add definition of
9143         MonoComInteropProxy and MonoComObject.
9144         
9145         * marshal.c: Added support for COM Interop
9146         (signature_cominterop): Converts managed signature to corresponding
9147         unmanaged COM signature.
9148         (cominterop_get_function_pointer): gets unmanaged function pointer via
9149         COM object vtable
9150         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
9151         (cominterop_get_method_interface): returns interface type that method is defined on
9152         (mono_mb_emit_cominterop_call): emits native call to function pointer
9153         gotten from vtable
9154         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
9155         that matches signature of unmanaged function.
9156         (cominterop_get_native_wrapper): wrapper around adjusted method call.
9157         (cominterop_get_invoke): forwards call from proxy to __ComObject
9158         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
9159         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
9160         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
9161         
9162         * marshal.h: Added Marshal icall declarations.
9163         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
9164         so we can access them in finalizer
9165         
9166 2006-07-14  Dick Porter  <dick@ximian.com>
9167
9168         * object.c (mono_type_initialization_cleanup): Fix a race
9169         condition by temporarily commenting out the critical section
9170         deletion.
9171
9172 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
9173
9174         * reflection.c (create_custom_attr): Fix some warnings.
9175         (create_custom_attr_data): Ditto.
9176         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
9177         types. Fixes #78855.
9178
9179 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
9180
9181         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
9182
9183         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
9184
9185 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
9186
9187         * reflection.c (resolve_object): Add support for DynamicMethod.
9188
9189         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
9190         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
9191
9192 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
9193
9194         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
9195         don't leak GPtrArray's pdata has we have no use (nor free) for it.
9196
9197 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
9198
9199         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
9200         Fixes #77888.
9201
9202 2006-06-30  Raja R Harinath  <rharinath@novell.com>
9203
9204         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
9205         slightly: remove a shadow local variable.
9206
9207 2006-06-29  Raja R Harinath  <rharinath@novell.com>
9208
9209         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
9210         definition that introduces the virtual function slot.
9211         Also fix Coverity #105.
9212
9213 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
9214
9215         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
9216         for dynamic assemblies. Fixes #78724.
9217
9218 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
9219
9220         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
9221         Fixes #78722.
9222
9223 2006-06-21  Martin Baulig  <martin@ximian.com>
9224
9225         * reflection.c
9226         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
9227         fixes #76484.
9228
9229 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
9230
9231         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
9232
9233 2006-06-20  Raja R Harinath  <rharinath@novell.com>
9234
9235         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
9236         nor TYPEREFs.
9237         * class.c (mono_class_create_from_typespec): Add 'context' argument.
9238         Inflate result if necessary.
9239         (mono_class_get_full): Remove old version.  Rename from
9240         'mono_class_get' and add 'context' argument.  Pass it to
9241         ..._create_from_typespec.
9242         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
9243         (mono_ldtoken): Revert change below.
9244
9245 2006-06-20  Martin Baulig  <martin@ximian.com>
9246
9247         * class.c (mono_ldtoken): Don't pass the generic context to
9248         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
9249
9250 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
9251
9252         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
9253         and later freeing it. Fixes #78638.
9254
9255 2006-06-15  Miguel de Icaza  <miguel@novell.com>
9256
9257         * icall.c (mono_class_get_throw): Revert over-zealous error
9258         throwing, the caller for mono_class_get_throw will cope with
9259         errors when classes are not properly initialized already.
9260
9261         The code still copes with loader exceptions though.
9262
9263         Fixes the regression in reftype1 and reftype3 from the CAS tests.
9264         
9265 2006-06-14  Miguel de Icaza  <miguel@novell.com>
9266
9267         Fixes the `make run1' version of RuntimeAbort (to be commited,
9268         source is in Bugzilla).
9269         
9270         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
9271         FALSE on class loading failure instead of returning true.
9272
9273         * class.c (mono_class_create_from_typedef): It is possible for
9274         mono_metadata_interfaces_from_typedef_full to fail if a class is
9275         not found, cope with this.
9276         
9277
9278 2006-06-14  Dick Porter  <dick@ximian.com>
9279
9280         * socket-io.c: 
9281         * process.c: Fix a bunch of signed/unsigned warnings from gcc
9282         4.1.1
9283
9284 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
9285
9286         * culture-info-table.h : oops, forgot to make it nsync with r61548.
9287
9288 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9289
9290         * icall.c: Another fix for building mono in Visual Studio.
9291
9292 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9293
9294         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
9295         
9296 2006-06-09  Martin Baulig  <martin@ximian.com>
9297
9298         * debug-mono-symfile.c: Put this back and really fix it this
9299         time. Sorry for all the trouble.
9300
9301 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
9302
9303         * icall.c (mono_class_get_throw): Fix a warning.
9304         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
9305         ReflectionTypeLoadException if needed. Fixes #78606.
9306
9307         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
9308         (mono_class_init): Ditto.
9309
9310         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
9311         ref_only exceptions.
9312         (mono_loader_clear_error): Make this work even if there is no error.
9313
9314 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
9315
9316         * object-internals.h marshal.c marshal.h icall.c: Implement method 
9317         Marshal.GetComSlotForMethodInfo using internal call.
9318
9319 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
9320
9321         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
9322         a function for signalling it.
9323
9324         * class.c (mono_class_from_typeref): Use the new kind of loader error when
9325         a referenced assembly is not found.
9326
9327         * loader.c (mono_loader_error_prepare_exception): Add support for 
9328         LOADER_ERROR_ASSEMBLY. Fix formatting.
9329
9330 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9331
9332         * domain.c appdomain.c class-internals.h marshal.c: Add support 
9333         for VARIANT marshalling on windows and increment corlib version
9334         since Variant struct was added.
9335
9336 2006-06-03  Miguel de Icaza  <miguel@novell.com>
9337
9338         * debug-mono-symfile.c: Revert Martin's previous patch which broke
9339         stack trace line information:
9340
9341         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
9342         (Martin) when looking up B which is between A and C, return A not C.
9343
9344         Bug is #78573.
9345
9346         Thanks to Alexander Olk for tracking this down.
9347
9348 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
9349
9350         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
9351         
9352         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
9353         avoid clobbering its value.
9354         (mono_string_to_lpstr): Fix a warning on windows.
9355
9356 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9357
9358         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
9359
9360         * reflection.c loader.c: Removed references to 'dummy' flag.
9361
9362         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
9363
9364         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
9365         it gets GC tracking.
9366
9367         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
9368         GC tracking.
9369         
9370         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
9371
9372         * marshal.c threadpool.c: Update callers of mono_async_result_new.
9373
9374         * appdomain.c: Bump corlib version.
9375
9376 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9377
9378         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9379         CEE_STIND_REF when working with object references.
9380
9381 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9382
9383         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
9384         Fixes #78539.
9385
9386 2006-05-30  Miguel de Icaza  <miguel@novell.com>
9387
9388         * loader.c (method_from_memberref): Fix argument value for
9389         mono_loader_set_error_method_load (I was passing the MonoClass
9390         instead of the class name char *).
9391
9392 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9393
9394         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9395         CEE_STIND_REF when working with object references.
9396
9397 2006-05-30  Martin Baulig  <martin@ximian.com>
9398
9399         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
9400         mono_method_full_name() change and replace the ':' with a '.'
9401         here.
9402
9403 2006-05-30  Martin Baulig  <martin@ximian.com>
9404
9405         * debug-mono-symfile.c
9406         (mono_debug_symfile_lookup_location): Fix the algorithm:
9407         when looking up B which is between A and C, return A not C.
9408
9409 2006-05-29  Martin Baulig  <martin@ximian.com>
9410
9411         * mono-debug.h
9412         (MonoDebugMethodInfo): Make the typedef public.
9413         (MonoDebugSourceLocation): New public struct.
9414
9415         * mono-debug.c
9416         (mono_debug_source_location_from_address): Removed.
9417         (mono_debug_source_location_from_il_offset): Removed.
9418         (mono_debug_il_offset_from_address): Removed.
9419         (mono_debug_address_from_il_offset): Removed.
9420         (mono_debug_lookup_method): New public function.
9421         (mono_debug_lookup_source_location): New public function; replaces
9422         the old mono_debug_source_location_from_*() functions; see the
9423         inline documentation.
9424         (mono_debug_free_source_location): New public function.
9425         (mono_debug_print_stack_frame): New public function; see the
9426         inline documentation.
9427
9428         * debug-mono-symfile.c
9429         (mono_debug_find_source_location): Renamed into
9430         mono_debug_symfile_lookup_location(); only take a
9431         `MonoDebugMethodInfo *' and an `offset' argument; added inline
9432         documentation.
9433         (mono_debug_find_method): Renamed into
9434         mono_debug_symfile_lookup_method().
9435
9436 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
9437
9438         * assembly.c (mono_assembly_open_full): Dont overwrite the status
9439         returned by mono_image_open_full ().
9440
9441         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
9442         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
9443         #78517.
9444
9445         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
9446         #78518.
9447
9448 2006-05-27  Miguel de Icaza  <miguel@novell.com>
9449
9450         * class.c (mono_class_from_typeref): handle missing images
9451         earlier, deals with bug #78418.   Refactor code; 
9452
9453         Fix a warning introduced in my previous commit (some stale code
9454         from before I revisited my patch).
9455
9456         * class.c (mono_class_create_from_typedef): On failure, remove the
9457         class from the MonoImage->class_cache as the class is not
9458         initialized;   Fixes the leak pointed out by Paolo.
9459
9460 2006-05-25  Dick Porter  <dick@ximian.com>
9461
9462         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
9463         DeleteCriticalSections until I figure out which one may still be
9464         sometimes locked when mono_thread_cleanup is called.
9465
9466 2006-05-24  Dick Porter  <dick@ximian.com>
9467
9468         * threads.c (mono_thread_cleanup): Move the threading cleanup out
9469         of mono_thread_manage and back into its own function, so it can be
9470         called after the finalizer thread has finished.
9471
9472         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
9473
9474 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
9475
9476         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
9477         Fixes #78495.
9478
9479         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
9480         with non-blittable elements.
9481         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
9482
9483 2006-05-24  Martin Baulig  <martin@ximian.com>
9484
9485         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9486         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
9487
9488         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
9489         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
9490         `mono_debugger_event_handler' to NULL.
9491
9492 2006-05-24  Martin Baulig  <martin@ximian.com>
9493
9494         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
9495
9496 2006-05-24  Martin Baulig  <martin@ximian.com>
9497
9498         * mono-debug-debugger.h
9499         (mono_debugger_create_notification_function): Added
9500         `MonoCodeManager *' argument.
9501
9502 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
9503
9504         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
9505
9506 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
9507
9508         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
9509         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
9510         implementation.
9511
9512 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
9513
9514         * icall.c: precise GC support: objects can't be stored in unmanaged
9515         memory anymore, even if they are kept alive by other references: since
9516         they can move the GC needs to be able to always find them.
9517
9518 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
9519
9520         * object.c: precise GC support for static fields. Support
9521         for moving GCs: write barriers and pinned allocation for interned
9522         strings.
9523
9524 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
9525
9526         * domain.c, domain-internals.h: precise GC support for the MonoDomain
9527         structure.
9528
9529 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
9530
9531         * class.c, gc.c: sgen and precise GC updates.
9532
9533 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
9534
9535         * marshal.h, marshal.c: added write barrier wrapper and precise type
9536         fixes.
9537
9538 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
9539
9540         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
9541         support.
9542
9543 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
9544
9545         * reflection.c: precise and sgen GC updates.
9546
9547 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
9548
9549         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
9550
9551 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
9552
9553         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
9554
9555 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
9556
9557         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
9558         MONO_TYPE_OBJECT. Fixes #78462.
9559
9560 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
9561
9562         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
9563         and blittable types.
9564
9565 2006-05-17  Miguel de Icaza  <miguel@novell.com>
9566
9567         * class.c (mono_class_get_exception_for_failure): Implement parts
9568         of a TODO: if the loader error is set (instead of the class
9569         error), we return a Loader exception that can be properly thrown
9570         elsewhere.
9571
9572         This was exposed by some Winforms 2.0 code that I tried to run
9573         (Atsushi pointed me to it).
9574
9575 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
9576
9577         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
9578         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
9579         
9580         * marshal.c (emit_marshal_vtype): Add limited support for 
9581         UnmanagedType.LPStruct. Fixes #78427.
9582
9583         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
9584         Applied a patch from kangaroo to fix #77523.
9585
9586 2006-05-17  Martin Baulig  <martin@ximian.com>
9587
9588         * threads.c
9589         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
9590         (debugger_thread_created): Removed.
9591         (debugger_thread_exited): Removed.
9592
9593 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
9594
9595         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9596
9597         * object-internals.h (MonoReflectionResource): Sync with managed version.
9598
9599 2006-05-12  Wade Berrier <wberrier@novell.com>
9600
9601         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
9602
9603 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
9604
9605         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
9606         functions try to allocate from the image mempool.
9607
9608 2006-05-12  Dick Porter  <dick@ximian.com>
9609
9610         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
9611
9612 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
9613
9614         * object.c: The FieldGetter and FieldSetter methods require the full
9615         name of the class, not only the name. Fixes bug #78277.
9616
9617 2006-05-11  Miguel de Icaza  <miguel@novell.com>
9618
9619         * loader.c (method_from_memberref): Do not pass the NULL klass to
9620         mono_loader_set_error_() methods.  Pass the non-NULL value
9621         (class). 
9622
9623 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
9624
9625         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
9626         (mono_assembly_close): Null out assembly->image->references after freeing it.
9627
9628         * image.c (mono_image_close): Free image->references.
9629         
9630         * reflection.c (mono_image_basic_init): Fix a small memory leak.
9631
9632 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
9633
9634         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
9635         before checking if it's NULL (g_assert).
9636
9637 2006-05-10  Martin Baulig  <martin@ximian.com>
9638
9639         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
9640         I thought I already killed that two months ago, but now it somehow reappeared.
9641
9642 2006-05-10  Martin Baulig  <martin@ximian.com>
9643
9644         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
9645
9646 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
9647
9648         * reflection.c: Allocate memory for dynamically created methods in the image
9649         mempools.
9650
9651 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
9652
9653         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
9654         don't use the ad pointer before checking if it's NULL (g_assert).
9655
9656 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
9657
9658         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
9659         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
9660
9661         * marshal.c: Allocate all signatures from mempools.
9662
9663         * marshal.c: Allocate some more signatures from mempools.
9664
9665 2006-05-09  Miguel de Icaza  <miguel@novell.com>
9666
9667         * object.c (mono_load_remote_field): The code used to provide a
9668         temporary variable for returning results if the user did not
9669         provide a result pointer.  But our temporary variable was allocted
9670         on the satck.
9671
9672         Fix calling code to always pass a result area.   Coverity ID 103.
9673
9674 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
9675
9676         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
9677         value, not the old. Fixes #78312.
9678         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
9679
9680         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
9681         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
9682         per-image cache.
9683
9684         * assembly.c (mono_assembly_close): Free image->references.
9685
9686         * assembly.c (mono_assembly_names_equal): Fix a warning.
9687         (mono_assemblies_cleanup): Cleanup more global data.
9688
9689         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
9690
9691         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
9692         ptr_cache and image->modules.
9693
9694         * image.c (mono_image_init): Allocate array_cache lazily.
9695         
9696 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9697
9698         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
9699         behavior was changed recently and has bad side effects.
9700
9701 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
9702
9703         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
9704         
9705         * assembly.c (mono_assembly_close): Remove a debug printf.
9706
9707         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
9708
9709         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
9710         to also allow for temporary references between mono_image_open ()/close ().
9711
9712         * domain.c (get_runtimes_from_exe): Add a FIXME.        
9713
9714 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
9715
9716         * marshal.c: Fix support for dynamic methods.
9717
9718         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
9719
9720         * marshal.c (mono_marshal_cleanup): New cleanup function.
9721
9722         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
9723         image mempools.
9724
9725         * class.c (mono_class_init): Fix leaking class->nested_classes.
9726
9727         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
9728
9729         * image.c (mono_image_init): Initialize the new cashes.
9730
9731         * image.c (mono_image_close): Destroy the new cashes.
9732
9733         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
9734
9735         * mempool.c (mono_mempool_strdup): New helper function.
9736
9737         * class-internals.h: Add prototype for mono_loader_unlock ().
9738
9739         * domain.c (mono_jit_info_table_find): Fix a warning.
9740         (mono_debugger_check_runtime_version): Ditto.
9741
9742         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
9743         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
9744         functions to these modules.
9745
9746         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
9747         metadata modules.
9748         
9749         * marshal.c (mono_free_bstr): Fix a warning.
9750
9751         * assembly.c (mono_assembly_open_full): Fix another small leak.
9752
9753         * object.c: Fix some unload leaks in the remoting code.
9754
9755         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
9756         function.
9757
9758         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
9759
9760         * reflection.c: Fix some unload leaks in dynamic assemblies.
9761
9762 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
9763
9764         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
9765         * marshal.h: Add BSTR support on Win32
9766         * icall.c: Add BSTR icalls
9767         * metadata.h: Add BSTR enums
9768
9769 2006-04-28  Miguel de Icaza  <miguel@novell.com>
9770
9771         Work to catch the crash from #76795 and turn it into an
9772         exception.   As I stubbed out pieces of the VisualBasic support,
9773         I found a number of places where the code was failing and I added
9774         checks to those places. 
9775         
9776         * metadata.c (do_mono_metadata_parse_generic_class): Make this
9777         function return a status code.  If we fail to parse the signature
9778         from mono_metadata_parse_generic_inst, return FALSE.
9779
9780         * loader.c (mono_get_method_from_token): If we fail to load the
9781         method (mono_class_get) return NULL.   
9782
9783         * (method_from_memberref): Return NULL if we are unable to parse
9784         the method signature
9785
9786         (mono_loader_error_prepare_exception): Since we now use the
9787         loader_error flag internally to stop processing, and obtaining
9788         exceptions that might be thrown will walk this code path the
9789         proper way of going from a MonoLoaderError into a
9790         MonoException was convoluted.   This new routine encapsulates the
9791         process of turning the error into an exception and *clearing* the
9792         error afterwards.
9793         
9794 2006-04-27  Miguel de Icaza  <miguel@novell.com>
9795
9796         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
9797         with missing assemblies), and to cope with:
9798
9799                 * Missing fieldref from a non-existing assembly.
9800                 * Missing methodref from a non-existing assembly.
9801
9802         The first batch of work to address *some* of the issues from 76661.
9803         
9804         * object.c (mono_class_create_runtime_vtable): If we fail to
9805         initialize the class raise the exception here. 
9806
9807         * metadata.c (mono_class_get_overrides_full): If any methods fail
9808         to load return the failure to the caller.
9809
9810         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
9811         flagging assemblies that failed to load.   
9812
9813         Do not crash if we are unable to load the assembly.
9814
9815         (mono_assembly_close): Do nothing with REFERENCE_MISSING
9816         assemblies. 
9817
9818         * loader.c (mono_loader_set_error_type_load): Change the
9819         convention to always pass unallocated strings, so we make our own
9820         copies (I know our own code had duplicated strings before, but
9821         this keeps the normal conventions).
9822         (method_from_memberref): Call mono_loader_set_error_method_load
9823         for all possible failures of loading the class. 
9824         Remove assert, turn into a loader error.
9825
9826         (mono_loader_error_to_exception): Move this routine from mini
9827         (mini_loader_error_to_exception) there was no need to have that in
9828         mini. 
9829
9830         * class.c (mono_class_from_typeref): If we were not able to load
9831         the assembly with mono_assembly_load_reference, call the
9832         mono_loader_set_error_type_load to register the problem.
9833
9834         (mono_class_setup_fields): If we fail to load the type from
9835         mono_metadata_parse_type_full, call mono_class_set_failure and
9836         break from the loop.
9837
9838         If class->exception_type is set, we do not layout the fields as
9839         that might crash the runtime, and instead return (from breaking
9840         from the previous loop).
9841
9842         (mono_class_setup_vtable): This now returns a boolean indicating
9843         whether the table was properly setup.   The decision is driven by
9844         mono_class_get_overrides_full which might run into non-existing
9845         methods. 
9846         
9847         (mono_class_init): Returns TRUE on success or FALSE if there was a
9848         problem in loading the type (incorrect assemblies, missing
9849         assemblies, methods, etc).
9850
9851         When we call mono_class_setup_fields we also check for a potential
9852         error inside this call (either a class exception or a general
9853         loader exception).
9854
9855         (mono_class_create_from_typedef): If the parent fails to load
9856         (calling mono_class_get_full) return NULL.
9857         
9858         ** Important **
9859
9860         calls to mono_metadata_parse_type_full should be checked
9861         everywhere and set the mono_class_set_failure
9862         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
9863
9864         The current patch checks the places where my manually constructed
9865         tests show the errors are showing up, but we should do it
9866         everywhere. 
9867
9868         ** Important2 **
9869
9870         mono_class_init return values should be tested everywhere, like
9871         the previous case this is something that we should audit
9872         everywhere and not only on the cases exposed by the tests I
9873         created. 
9874
9875 2006-04-26  Miguel de Icaza  <miguel@novell.com>
9876
9877         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
9878         boolean parameter and instead pass the information on `options'
9879         parameter (FileOptions).
9880
9881         * icall.c: Register the new signature for MonoIO.Open.
9882
9883         * debug-helpers.c (dis_one): Trying to understand how coverity
9884         works.  Fix Run 5, item 78.
9885
9886 2006-04-26  Dick Porter  <dick@ximian.com>
9887
9888         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
9889         dereference.
9890
9891 2006-04-25  Martin Baulig  <martin@ximian.com>
9892
9893         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
9894
9895         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
9896         debugger_thread_created().
9897         (debugger_gc_push_all_stacks): Don't handle the main thread in any
9898         special way.
9899         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
9900         (mono_debugger_finalize_threads): New function; undo the effects
9901         of mono_debugger_init_threads().
9902         (mono_debugger_create_all_threads): Removed.
9903
9904 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
9905
9906         * image.c (mono_image_close): Tidy up trace messages.
9907
9908         * assembly.c (mono_assembly_close): Ditto.
9909
9910         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
9911         no longer references an already freed assembly. Fixes #78168.
9912
9913 2006-04-21  Dick Porter  <dick@ximian.com>
9914
9915         * threads.c (mono_thread_detach): Fix reference counting when
9916         detaching threads.
9917
9918 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
9919
9920         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
9921         #78155.
9922
9923 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
9924
9925         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
9926         (mono_type_to_stind): Ditto.
9927
9928         * marshal.c: Use the new helper functions to simplify code.
9929
9930         * image.c (mono_image_close): Add some code for help debug assembly unloading
9931         problems.
9932
9933         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
9934         image mempool.
9935
9936         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
9937         assembly was already loaded in another appdomain. Fixes #78083.
9938
9939 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
9940
9941         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
9942         referenced assemblies.
9943         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
9944
9945         * domain.c (mono_domain_free): Add a trace message.
9946
9947         * appdomain.c (add_assemblies_to_domain): Ditto.        
9948
9949         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
9950         field.  
9951
9952 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
9953
9954         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
9955
9956 2006-04-12  Martin Baulig  <martin@ximian.com>
9957
9958         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
9959         `USE_INCLUDED_LIBGC'.   
9960
9961 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
9962
9963         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
9964         the patch contains ../ and a small directory name later. Hopefully fixes
9965         #78035.
9966
9967 2006-04-10  Martin Baulig  <martin@ximian.com>
9968
9969         Clean up the debugger's thread-handling code.
9970
9971         The debugger's thread-handling code has been moved from
9972         ../mini/debug-debugger.c to threads.c.  We now iterate directly
9973         over the `threads' hash, keep track of exiting threads and also
9974         use proper locking.
9975
9976         We can now debug XSP and XSP based applications with the debugger.
9977
9978         * object-internals.h (MonoThread): Added `gpointer end_stack'.
9979
9980         * threads.h
9981         (MonoThreadCallbacks): Removed; this was only used by the debugger.
9982         (mono_install_thread_callbacks): Likewise.      
9983
9984         * threads.c (mono_thread_callbacks): Removed.
9985         (debugger_thread_created, debugger_thread_exited): New static functions.
9986         (start_wrapper): Call debugger_thread_created().
9987         (thread_cleanup): Call debugger_thread_exited().
9988         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
9989         (mono_debugger_init_threads): New public function.
9990         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
9991         iterate directly over the `threads' hash and also use proper locking.
9992
9993         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
9994
9995         * mono-debug-debugger.h
9996         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
9997
9998 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
9999
10000         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
10001         argument type=array. Fixes #78057.
10002
10003 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
10004
10005         * culture-info-table.h : regenerated. Fixed bug #69652.
10006
10007 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
10008
10009         * loader.c metadata.c: Reapply a variant r59116.
10010         
10011         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
10012
10013         * class.c (mono_class_setup_interface_offsets): New internal function.
10014
10015         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
10016         interfaces too. Fixes #77398.
10017
10018         * reflection.c (encode_cattr_value): Add support for 
10019         parameter type=object, argument type=array.
10020         (load_cattr_value): Ditto. Fixes #77916.
10021
10022         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
10023         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
10024
10025         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
10026         a byval char array and CharSet is Ansi.
10027
10028         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
10029
10030 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
10031
10032         * metadata.c: Add some locking comments.
10033         
10034         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
10035         mempool.
10036         (mono_metadata_free_method_signature): Don't free the signature itself.
10037
10038         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
10039
10040         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
10041         reference the same MonoImage.
10042         (mono_assembly_load_from_full): Add an assert.
10043
10044 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
10045
10046         * image.c (mono_image_close): Don't put the image we are about to free into the
10047         loaded_images_guid_hash.
10048
10049         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
10050         to reduce code duplication.
10051
10052         * marshal.c: Register the native functions called by this module as icalls, to
10053         somewhat centralize the creation of MonoMethodSignature's.
10054
10055         * loader.c (mono_method_signature): Add a cache for method signatures.
10056
10057         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
10058         the parameter attributes of a method.
10059         (mono_metadata_parse_method_signature_full): Refactored the computation of
10060         parameter attributes into a separate function. Also avoid one allocation in
10061         most cases.
10062
10063         * assembly.c (mono_assembly_close): Ditto.
10064
10065         * image.c (mono_image_close): Log trace messages with INFO level.
10066
10067         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
10068
10069         * image.c reflection.c: Correct reference counting of image modules.
10070         
10071         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
10072         of this function from the image mempool.
10073         
10074         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
10075         to allow more cached types to be used.
10076
10077         * mono-debug.c (mono_debug_add_method): Appled patch from
10078         David S. Miller  <davem@sunset.davemloft.net>: Access 
10079         minfo->lexical_blocks[] entry elements using read32().
10080
10081 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
10082
10083         * loader.c (mono_free_method): No longer free the method header for non-dynamic
10084         methods as it is allocated from the mempool.
10085
10086         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
10087         image mempool.
10088
10089         * metadata-internals.h: Add comments describing the reference counting scheme
10090         used for MonoImage and MonoAssembly.
10091
10092         * image.c assembly.c reflection.c: Rework reference counting of images and 
10093         assemblies so they are freed when the runtime is shut down. Free some 
10094         additional memory structures when an image is unloaded.
10095         
10096 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
10097
10098         * class.c loader.c reflection.c: Allocate more data structures in
10099         the image mempool.
10100
10101 2006-03-31  Miguel de Icaza  <miguel@novell.com>
10102
10103         * icall.c
10104         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
10105         build on pre glib 2.4 systems.
10106
10107 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
10108
10109         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
10110
10111         * icall.c: Fix some warnings.
10112
10113 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
10114
10115         * culture-info-table.h : regenerated.
10116
10117 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
10118
10119         * threads.c, object-internals.h, verify.c: changed the culture caching
10120         code to use a normal MonoArray for storage so the GC can keep track of
10121         them easily. Fixed bits of the cache logic, too and simplified the
10122         code.
10123
10124 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
10125
10126         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
10127         thread for non-Boehm GCs.
10128
10129 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
10130
10131         * domain.c, object.c, domain-internals.h: reduce the amount of memory
10132         needed to keep track of the data for static fields.
10133
10134 2006-03-29  Raja R Harinath  <rharinath@novell.com>
10135
10136         Fix #75172
10137         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
10138         for interface classes.  Use 'num_methods' instead.
10139         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
10140         before using '->vtable_size' field.
10141
10142 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
10143
10144         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
10145         doesn't contain managed pointers, so use a normal hashtable.
10146
10147 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
10148
10149         * reflection.c, class-internals.h, domain.c: fixed handling of types
10150         used as values for objects in custom attributes (bug #77915):
10151
10152 2006-03-24  Martin Baulig  <martin@ximian.com>
10153
10154         * class.c (mono_class_setup_fields): Added support for generic
10155         instances; fixes #77580.
10156
10157 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10158
10159         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
10160
10161 2006-03-24  Dick Porter  <dick@ximian.com>
10162
10163         * file-io.c (get_file_attributes): More stat macro breakage.
10164         Fixes bug 77759.
10165
10166 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
10167
10168         * profiler.c: added the file=filename option in the default profiler
10169         to output the profile data to filename.
10170
10171 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10172
10173         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
10174         bug #77877.
10175
10176 2006-03-22  Martin Baulig  <martin@ximian.com>
10177
10178         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
10179         allocated `MonoClassField *' in `fb->handle'.
10180
10181 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
10182
10183         * class.c, image.c, metadata-internals.h: implemented new mechanism to
10184         allocate interface ID to save memory and allow better ID reuse on
10185         appdomain unload. setup_generic_vtable () removal from Martin.
10186
10187 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10188
10189         * object.h, appdomain.c, domain.c, exception.c, icall.c,
10190         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
10191         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
10192         write barriers for reference stores with managed objects accessed with
10193         C structures in the runtime and in embedding programs.
10194
10195 2006-03-20  Raja R Harinath  <rharinath@novell.com>
10196
10197         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
10198         'interface_id' and 'max_interface_id' fields of MonoClasses
10199         representing open generic types.
10200
10201 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
10202
10203         * object.h, object.c, icall.c: added functions to deal with
10204         storing valuetypes that contain references in managed objects.
10205         * reflection.c, string-icalls.c, threads.c, marshal.c: small
10206         fixes and comments around uses of mono_array_addr ().
10207
10208 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
10209
10210         * object.h, icall.c, monitor.c: object.GetHashCode ()
10211         implementation that supports the moving garbage collector.
10212
10213 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
10214
10215         * icall.c, threads-types.h, threads.c: implemented finalizer for
10216         LocalDataStoreSlot.
10217
10218 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
10219
10220         * metadata.c (mono_type_size): Add a fixme.
10221         (mono_type_stack_size): Ditto.
10222
10223         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
10224         'type_forwarders' field.
10225
10226         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
10227         attribute from net 2.0.
10228
10229         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
10230         from class.c.
10231
10232         * class.c (mono_class_setup_fields): Fix a warning.
10233         
10234         * class.c (mono_class_from_name): Add support for assemblyref entries
10235         in the EXPORTEDTYPE table.
10236
10237         * reflection.c: Add support for handling type forwarders under net 2.0.
10238
10239         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
10240         
10241 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
10242
10243         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
10244         overwriting entries in ModuleBuild->types, also clean up the code
10245         a little. Fixes #77774.
10246
10247 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
10248
10249         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
10250         load friend assembly info when present.
10251
10252 2006-03-14  Raja R Harinath  <rharinath@novell.com>
10253
10254         Fix crasher on gtest-158.cs.
10255         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
10256         the return value if the MonoClass we want is yet in an
10257         inconsistent state.
10258         * class.c (mono_class_create_from_typedef): Add an comment
10259         explaining an order dependency between mono_class_setup_parent and
10260         mono_class_setup_mono_type.
10261
10262 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
10263
10264         * class.c: documentation updates and events bug fix.
10265
10266 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
10267
10268         * class.c: some cleanup, locking fixes.
10269
10270 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
10271
10272         * class.c: fix the generics code to setup nested
10273         type info to the instantiated type (bug #77770).
10274
10275 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
10276
10277         * marshal.c: fixed a few type correctness issues.
10278
10279 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10280
10281         * loader.c: the Set/Get/Addrtess array methods should be public.
10282
10283 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
10284
10285         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
10286         
10287         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
10288         info->wrapper.
10289
10290 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
10291
10292         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
10293
10294         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
10295
10296         * mempool.c (mono_mempool_alloc): Speed this up a bit.
10297         (mono_mempool_alloc0): Ditto.
10298
10299 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10300
10301         * socket-io.c:
10302         (create_object_from_sockaddr): it was allocating 4 extra bytes
10303         for the AF_UNIX data. Fixes bug #77747.
10304
10305 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
10306
10307         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
10308
10309 2006-03-09  Dick Porter  <dick@ximian.com>
10310
10311         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
10312         Fixes bug 76966 again.
10313
10314 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10315
10316         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
10317         names from r57532
10318         * appdomain.c: Bumped corlib version to 48 (due to r57532)
10319
10320 2006-03-07  Martin Baulig  <martin@ximian.com>
10321
10322         * object.c
10323         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
10324
10325 2006-03-07  Martin Baulig  <martin@ximian.com>
10326
10327         * class.c
10328         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
10329         regression introduced in r56970; see gtest-252.cs.
10330
10331         * loader.c (mono_get_method_constrained): Correctly handle generic
10332         methods; see gtest-253.cs.
10333
10334 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
10335
10336         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
10337
10338 2006-03-04  Martin Baulig  <martin@ximian.com>
10339
10340         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
10341         compute the parent type at runtime, just like we're already doing
10342         it for interfaces.
10343
10344         * reflection.c
10345         (mono_reflection_bind_generic_parameters): Don't compute the
10346         parent type anymore.
10347
10348         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
10349
10350 2006-03-04  Martin Baulig  <martin@ximian.com>
10351
10352         * mono-debug-debugger.h
10353         (mono_debugger_create_notification_function): Allocate memory at
10354         runtime and return a pointer to it.
10355
10356 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
10357
10358         * assembly.c: Fix windows build.
10359         
10360         * assembly.c: Fix build.
10361
10362         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
10363
10364         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
10365         
10366 2006-03-03  Dick Porter  <dick@ximian.com>
10367
10368         * process.c
10369         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
10370         Check parameters before dereferencing them.  Fixes Aaron's part of
10371         bug 77393.
10372
10373 2006-03-03  Raja R Harinath  <rharinath@novell.com>
10374
10375         Fix performance regression.
10376         * loader.c (find_method_in_class): Add 'from_class' argument.
10377         Rename 'klass' argument to 'in_class'.  The signature is compared
10378         against the method in 'in_class', and the corresponding method is
10379         returned from 'from_class'.
10380         (find_method): Walk both 'in_class' and 'from_class' in parallel.
10381         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
10382         type definition and generic instantiation in parallel.
10383         (mono_get_method_constrained): Update to changes.
10384
10385 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
10386
10387         * threads.c: make sure the domain is correct, too when doing
10388         mono_thread_attach ().
10389
10390 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
10391
10392         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
10393         windows. Fixes #77683.
10394
10395 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
10396
10397         * object.h, *: introduced specific way to set elements of an array
10398         of references to be used as write barrier. Still need to audit the
10399         uses of mono_array_addr.
10400
10401 2006-03-01  Miguel de Icaza  <miguel@novell.com>
10402
10403         * object-internals.h: New field to cache the assmebly name, patch
10404         from Tambet Ingo (tambet@ximian.com)
10405
10406 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10407
10408         * decimal.h, class-internals.h, metadata-internals.h,
10409         file-io.h: mark a few function declarations as internal, to
10410         reduce the number of PLT entries.
10411
10412 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10413
10414         * file-io.c: fix typo in warning message.
10415
10416 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
10417
10418         * loader.c: on unix, lookup the "*A" version of a function
10419         if charset is auto as a second option before failing.
10420
10421 2006-02-28  Raja R Harinath  <rharinath@novell.com>
10422
10423         * class.h (mono_class_inflate_generic_method): Revert to two
10424         argument version.
10425         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
10426         (mono_class_inflate_generic_method_full): Add.
10427         * class.c (mono_class_inflate_generic_method_full): Rename from
10428         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
10429         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
10430         * loader.c, reflection.c: Update to changes.
10431
10432 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
10433
10434         * icall.c: const fixes and small improvements.
10435
10436 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10437
10438         * threadpool.c: for asynchronous connect(), enable the same workaround
10439         for BSD 6 as for the Mac. Fixes bug #77637.
10440
10441 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
10442
10443         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
10444         formatted classes. Fixes #77524.
10445
10446 2006-02-24  Raja R Harinath  <rharinath@novell.com>
10447
10448         * class.c (inflate_generic_type): Add a couple more
10449         micro-optimizations.
10450         (inflate_generic_context): Don't use the 'gmethod' from
10451         'inflate_with'.
10452         (mono_class_inflate_generic_method): If the method has generic
10453         parameters, but the passed-in context doesn't have a 'gmethod',
10454         create one.  Use the possibly simplified generic instantiation
10455         from the declaring class instead of the one passed in.
10456
10457 2006-02-24  Raja R Harinath  <harinath@gmail.com>
10458
10459         Make generic method signature and method header handling lazy.
10460         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
10461         (inflate_generic_header): Likewise.
10462         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
10463         parameter to avoid inflating types.
10464         (mono_get_inflated_method): Empty out.
10465         * class.h (mono_class_inflate_generic_method): Update to changes.
10466         * loader.c (mono_get_method_from_token): Don't parse signature for
10467         generic methods, nor methods of generic classes.
10468         (mono_method_signature): Rename from 'mono_method_signature'.
10469         Inflate signature on demand.
10470         (mono_method_get_header): Inflate method header on demand.
10471         * reflection.c: Update to changes.
10472
10473 2006-02-23  Raja R Harinath  <rharinath@novell.com>
10474
10475         * metadata.c (mono_metadata_inflate_generic_inst): If the
10476         instantiation is closed, don't bother expanding it in the new
10477         context.
10478         * class.c (inflate_generic_class): If the generic instantiation
10479         doesn't change after inflation, return the argument itself.
10480         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
10481         Add bounds checks.
10482         (inflate_generic_context): If neither the generic class nor the
10483         generic method instantiations change, return the original context.
10484         * reflection.c (mono_method_get_object): Do
10485         'mono_get_inflated_method' before accessing the ->klass field.
10486         (inflate_mono_method): Don't create a MonoGenericMethod unless
10487         necessary.
10488         (inflate_method): Don't pass a constructed type as the declaring
10489         type of a methodbuilder.
10490
10491 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
10492
10493         * object.c: fix memory overwrite.
10494
10495 2006-02-22  Dick Porter  <dick@ximian.com>
10496
10497         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
10498         it doesn't work any more.
10499         (mono_threads_request_thread_dump): Fix unused variable warnings.
10500
10501 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10502
10503         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
10504         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
10505         the public header file.
10506
10507 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
10508
10509         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
10510
10511 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
10512
10513         * class-internals.h, object.c: reduce the size of MonoVTable
10514         and store the interface_offsets array at negative offsets.
10515
10516 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
10517
10518         * metadata.c: tweak table descriptors data structures to reduce
10519         size and runtime relocations.
10520
10521 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10522
10523         * marshal.c: fix some types and opcodes to be type-safe
10524         in marshaling wrappers.
10525
10526 2006-02-21  Ankit Jain  <jankit@novell.com>
10527
10528         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
10529
10530 2006-02-21  Raja R Harinath  <rharinath@novell.com>
10531
10532         * metadata.c (get_constraints): Relax debugging checks for monodis.
10533
10534 2006-02-21  Ankit Jain  <jankit@novell.com>
10535
10536         * metadata.c (mono_metadata_load_generic_params): Move the code
10537         checking for ambiguous generic params from here to mono/dis/get.c
10538         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
10539
10540 2006-02-21  Raja R Harinath  <harinath@gmail.com>
10541
10542         Fix assertion triggered when compiling nemerle.
10543         * class.c (mono_get_shared_generic_inst): Rename from
10544         get_shared_inst and make non-static.
10545         * loader.c (mono_get_shared_generic_method): New.  Used to create
10546         the MonoGenericContext-equivalent of a MonoGenericContainer.
10547         (mono_get_method_from_token): Initialize the 'context' field of
10548         the created MonoGenericContainer.
10549         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
10550         * metadata.c (get_constraints): Add sanity check.
10551         * class-internals.h: Add new internal methods.
10552
10553         * reflection.c (verify_safe_for_managed_space): New sanity check.
10554         Currently checks that owner-less generic parameters aren't allowed
10555         in managed space.
10556         (mono_type_get_object): Use it.
10557         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
10558         that are now in mono_type_get_object.
10559         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
10560
10561 2006-02-19  Raja R Harinath  <harinath@gmail.com>
10562
10563         * metadata.c (mono_type_create_from_typespec): Rename from
10564         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
10565         argument and caching of types in the generic container.
10566         (unwrap_arrays, find_generic_param): Remove.
10567         * metadata-internals.h: Update.
10568         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
10569
10570 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
10571
10572         * class.c (mono_class_get_exception_for_failure): Fix a warning.
10573
10574         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
10575         return values. Fixes #77581.
10576
10577         * class.c (mono_fnptr_class_get): Switch name and name_space.
10578
10579         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
10580         classes and add support for [In, Out] attributes.
10581         (mono_marshal_free_asany): Ditto. Fixes #77524.
10582
10583 2006-02-18  Raja R Harinath  <harinath@gmail.com>
10584
10585         * class.c (mono_class_from_generic_parameter): Make more robust to
10586         incomplete MonoGenericContainers from monodis.
10587
10588 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
10589
10590         * class-internals.h: added some more exception types.
10591         * class.c, metadata.c: added a few checks to handle missing
10592         types.
10593
10594 2006-02-17  Raja R Harinath  <rharinath@novell.com>
10595
10596         Use owner-less generic-params some more.
10597         * class.c (my_mono_class_from_generic_parameter): Remove.
10598         (mono_class_from_generic_parameter): Handle null image,
10599         param->name and param->owner.
10600         (mono_class_from_mono_type): Update.
10601         (mono_class_create_from_typespec): Remove 'container' parameter.
10602         If that parameter is non-null, the result is always inflated by
10603         'mono_class_get_full' anyway.
10604         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
10605         parameter.
10606         (mono_class_get_full): Update.
10607
10608         * class.c (inflate_generic_type) [GENERICINST]: If the generic
10609         instance is not open, don't bother inflating.
10610         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
10611         parse metadata for inflated classes.
10612         (_mono_class_get): Change GenericContext* parameter to
10613         GenericContainer*.
10614         (mono_class_create_from_typespec): Likewise.  Simplify, and
10615         implement trivially.  All the cases are handled in
10616         mono_class_from_mono_type.  Don't inflate returned class.
10617         (mono_class_get_full): Delegate GENERICINST optimization to
10618         inflate_generic_type.
10619         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
10620
10621 2006-02-16  Dick Porter  <dick@ximian.com>
10622
10623         * socket-io.c (create_object_from_sockaddr): Fix typo.
10624         (create_sockaddr_from_object): Check array lengths before
10625         potentially accessing items off the end.
10626         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
10627         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
10628         (ves_icall_System_Net_Sockets_Socket_Send_internal)
10629         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
10630         length checks to avoid wraparound overflows.
10631         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
10632         contents of the array of sockets
10633         (hostent_to_IPHostEntry2)
10634         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
10635         Check return value of inet_ntop ().
10636         (addrinfo_to_IPHostEntry): Fix typo
10637
10638 2006-02-16  Raja R Harinath  <rharinath@novell.com>
10639
10640         Type metadata parsing doesn't use generic-instantiation information.
10641         * metadata.c (mono_metadata_parse_array_full): Change
10642         MonoGenericContext* parameter to MonoGenericContainer*.
10643         (mono_metadata_parse_type_full): Likewise.
10644         (mono_type_create_from_typespec_full): Likewise.
10645         (mono_metadata_parse_mh_full): Likewise.
10646         (mono_metadata_parse_generic_inst): Likewise.
10647         (do_mono_metadata_parse_generic_class): Likewise.
10648         (do_mono_metadata_parse_type): Likewise.
10649         * metadata-internals.h: Update to changes.
10650         * class.c (mono_class_find_enum_basetype): Likewise.
10651         (mono_class_setup_fields): Likewise.
10652         (mono_class_create_from_typespec): Likewise.
10653         * loader.c (method_from_methodspec): Likewise.
10654         (mono_get_method_from_token): Likewise.
10655         (mono_method_get_header): Likewise.
10656
10657 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10658
10659         * marshal.c: handle additional GENERICINST case (patch from
10660         Thong Nguyen <tum@veridicus.com>).
10661         Fix a few cases where LDIND_I/STIND_I was used for references.
10662
10663 2006-02-16  Raja R Harinath  <rharinath@novell.com>
10664
10665         * reflection.c (mono_reflection_get_token): Remove unused variable.
10666
10667 2006-02-16  Martin Baulig  <martin@ximian.com>
10668
10669         * reflection.c (mono_reflection_get_token): Add support for fields
10670         in instantiated generic types.
10671
10672         * icall.c
10673         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
10674
10675 2006-02-15  Martin Baulig  <martin@ximian.com>
10676
10677         * icall.c
10678         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
10679         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
10680         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
10681         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
10682
10683 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
10684
10685         * class.c, metadata.c, metadata.h, object.c, icall.c,
10686         marshal.c: changed mono_type_get_underlying_type () to do
10687         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
10688         Fixed handling of instantiated generic valuetypes (bug #75479).
10689
10690 2006-02-15  Raja R Harinath  <rharinath@novell.com>
10691
10692         * metadata.c (mono_metadata_decode_signed_value): Simplify.
10693         Delegate to mono_metadata_decode_value, and work on the returned value.
10694
10695         * icall.c (ves_icall_MonoType_GetGenericArguments):
10696         Add consistency check here too.
10697         
10698 2006-02-15  Ankit Jain  <jankit@novell.com>
10699
10700         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
10701         char/short etc.
10702
10703 2006-02-15  Ankit Jain  <jankit@novell.com>
10704
10705         * metadata.c (mono_metadata_decode_signed_value): New function to decode
10706         signed values, used only for representing lower bounds of arrays.
10707         (mono_metadata_parse_array_full): Use new
10708         mono_metadata_decode_signed_value to decode lower bounds.
10709
10710 2006-02-14  Martin Baulig  <martin@ximian.com>
10711
10712         * reflection.c
10713         (mono_reflection_get_token): Support "MonoGenericMethod" and
10714         "MonoGenericCMethod" and allow generic instances / methods.
10715
10716 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
10717
10718         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
10719         to obtain the terminal size using an ioctl.
10720
10721         * object.c (mono_nullable_init): Revert this as nullable reference
10722         types are not valid.
10723         (mono_nullable_box): Ditto.
10724
10725 2006-02-09  Dick Porter  <dick@ximian.com>
10726
10727         * threads.c (mono_thread_detach): Drop a reference to the thread
10728         we're detaching.
10729
10730 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
10731
10732         * object.c (mono_nullable_init): Handle nullable reference types.
10733         (mono_nullable_box): Ditto. Fixes #77446.
10734
10735 2006-02-07  Martin Baulig  <martin@ximian.com>
10736
10737         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
10738
10739 2006-02-07  Ankit Jain  <jankit@novell.com>
10740
10741         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
10742         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
10743         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
10744         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
10745         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
10746         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
10747
10748 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
10749
10750         * class.c (mono_class_create_generic): Set type_token as well.
10751
10752         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
10753         compatible with MS.
10754
10755 2006-02-02  Martin Baulig  <martin@ximian.com>
10756
10757         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
10758         has never been used so far.
10759
10760 2006-02-02  Martin Baulig  <martin@ximian.com>
10761
10762         * mono-debug-debugger.h: Changed comment at the top of this file;
10763         the header is not installed, but it's safe to #include it from
10764         within the JIT.
10765
10766         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
10767         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
10768
10769 2006-02-02  Martin Baulig  <martin@ximian.com>
10770
10771         * mono-debug.h
10772         (MonoSymbolTable): Removed the `metadata_info' field.
10773
10774         * mono-debug.c
10775         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
10776
10777         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
10778         (mono_debugger_add_builtin_types): Removed.
10779         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
10780         (mono_debugger_create_notification_function): We now operate on a
10781         pre-allocated area; take a `gpointer' and return `void'.
10782
10783         * mono-debug-debugger.c
10784         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
10785         (mono_debugger_add_builtin_types): Removed.
10786
10787 2006-02-02  Martin Baulig  <martin@ximian.com>
10788
10789         * threads.c (mono_debugger_create_all_threads): New public method.
10790
10791 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
10792
10793         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
10794         breaks on several platforms.
10795
10796 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
10797
10798         * assembly.c: the VS.NET build doesn't supply default values for
10799         MONO_ASSEMBLIES and MONO_CFG_DIR.
10800
10801 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
10802
10803         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
10804         helper function.
10805
10806         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
10807
10808         * loader.c (method_from_memberref): Fix a warning.
10809
10810         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
10811
10812         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
10813         with explicit layout. Fixes #77433.
10814
10815 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
10816
10817         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
10818         max_interface_id is initialized before using it. Fixes #77398.
10819         (ves_icall_Type_GetInterfaces): Ditto.
10820
10821 2006-01-30  Raja R Harinath  <rharinath@novell.com>
10822
10823         * metadata.c (mono_metadata_parse_method_signature_full): Don't
10824         allocate memory for parameter attributes when parsing memberref
10825         signatures.
10826         * loader.c (mono_loader_set_error_method_load): Don't warn.
10827         (method_from_memberref): Ensure MissingMethodException gets thrown
10828         if method is not found.  Make warning more informative.
10829
10830 2006-01-29  Raja R Harinath  <harinath@gmail.com>
10831
10832         Fix #77397
10833         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
10834         return true if is byref.
10835         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
10836         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
10837         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10838
10839 2006-01-27  Raja R Harinath  <rharinath@novell.com>
10840
10841         Fix tests/find-method.2.il
10842         * loader.c (find_method, find_method_in_class): Remove is_inflated
10843         argument.  Revert 2006-01-18 change.
10844         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
10845         is generic, search for method in its generic definition.
10846         * class.c (mono_class_setup_vtable_general): Print generic
10847         arguments of generic types in debugging printf.
10848
10849 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
10850
10851         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
10852
10853         * threads.c (mono_threads_request_thread_dump): New helper function.
10854
10855 2006-01-25  Raja R Harinath  <rharinath@novell.com>
10856
10857         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
10858
10859 2006-01-25  Ankit Jain  <jankit@novell.com>
10860
10861         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
10862         move definition to ..
10863         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
10864         
10865 2006-01-25  Ankit Jain  <jankit@novell.com>
10866             Raja R Harinath  <rharinath@novell.com>
10867
10868         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
10869         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
10870         as necessary.
10871
10872 2006-01-25  Martin Baulig  <martin@ximian.com>
10873
10874         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
10875         `MonoDebuggerThread' into debug-debugger.c.
10876
10877 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
10878
10879         * profiler.c: fix printing of data.
10880
10881 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
10882
10883         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
10884           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
10885
10886 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
10887
10888         * object.c: fix deadlock related to string interning.
10889
10890 2006-01-23  Martin Baulig  <martin@ximian.com>
10891
10892         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
10893
10894         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
10895
10896 2006-01-23  Martin Baulig  <martin@ximian.com>
10897
10898         * mono-debug.h: Moved the prototypes of some functions which are
10899         used by the JIT here from mono-debug-debugger.h.
10900
10901 2006-01-21  Martin Baulig  <martin@ximian.com>
10902
10903         * Makefile.am: Don't install mono-debug-debugger.h.
10904
10905 2006-01-21  Martin Baulig  <martin@ximian.com>
10906
10907         * mono-debug-debugger.h: Enforce the private status of this header
10908         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
10909         Moved some stuff from mono-debugger-jit-wrapper.h here.
10910
10911 2006-01-20  Raja R Harinath  <rharinath@novell.com>
10912
10913         * class.c (mono_class_from_typeref): Add a sanity test to help
10914         catch lack of assembly load/search hooks.
10915
10916 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
10917
10918         * marshal.c (emit_struct_conv): Relax the fields with same offset
10919         check even more. Fixes #77230.
10920
10921 2006-01-18  Martin Baulig  <martin@ximian.com>
10922
10923         * loader.c (find_method_in_class): Added `gboolean is_inflated'
10924         argument; if false, we compare the uninstantiated signatures.
10925         (method_from_memberref): Compare the uninstantiated signatures;
10926         fixes #76417.
10927
10928 2006-01-18  Robert Jordan  <robertj@gmx.net>
10929
10930         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
10931         Clear the weak link. Fixes bug #77170.
10932
10933         * gc.c (mono_gchandle_free):
10934         Reflect *-gc.c changes (tiny optimization).
10935
10936 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
10937
10938         * metadata.c (mono_metadata_signature_dup): Applied patch from
10939         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
10940         Fixes #77288.
10941
10942 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
10943
10944         * marshal.c (emit_struct_conv): Allow fields with the same offset when
10945         marshalling from native to managed code. Fixes #77230.
10946
10947 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10948
10949         * threadpool.c: fix problem (Mac only) when more than one asynchronous
10950         connect. Fixes bug #77020.
10951
10952 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
10953
10954         * class.c: fixed id assignement for nested interfaces (bug #77275).
10955         Added also better info for --print-vtable debugging.
10956
10957 2006-01-12  Martin Baulig  <martin@ximian.com>
10958
10959         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
10960         interfaces on-the-fly; fixes #76625.
10961
10962         * class-internals.h
10963         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
10964         don't need that anymore.
10965
10966 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10967
10968         * socket-io.c
10969         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10970         To avoid initing the nested_classes when not needed I turned the
10971         PeerCredData as a toplevel internal class, as it has to be shared
10972         anyways. 
10973
10974         Fixes the CASA issue.
10975
10976 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
10977
10978         * domain.c: Accessors for MonoJitInfo
10979
10980         * profiler-private.h: Add jitinfo to the end jit hook
10981
10982         * profiler.[ch]: Define new hooks, called after jitting which give
10983         the MonoJitInfo that was compiled
10984
10985 2006-01-10  Martin Baulig  <martin@ximian.com>
10986
10987         * class.c (mono_class_setup_events): Add support for generic
10988         classes; fixes #76440.
10989
10990 2006-01-06  Raja R Harinath  <rharinath@novell.com>
10991
10992         Fix #77160.
10993         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
10994         on passed-in method.
10995
10996 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
10997
10998         * object.c (mono_runtime_invoke_array): Add Nullable support.
10999
11000         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
11001
11002 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
11003
11004         * file-io.c: Don't consider sockets as directory and avoid an endless
11005         loop. Fix bug #76966.
11006
11007 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
11008
11009         * object.c (mono_nullable_init): New helper function.
11010         (mono_nullable_box): Ditto.
11011
11012         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
11013
11014         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
11015
11016         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
11017         
11018 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
11019
11020         * class.c (mono_class_is_assignable_from): Make T assignable to 
11021         Nullable<T>.
11022
11023 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
11024
11025         * appdomain.c: Bump corlib version to 46.
11026         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
11027         serialization purpose) and changed ves_icall_System_Reflection_
11028         Assembly_get_code_base signature to accept a boolean (to escape, or 
11029         not, the assembly code base).
11030
11031 2005-12-23  Dick Porter  <dick@ximian.com>
11032
11033         * icall.c: 
11034         * threads-types.h: 
11035         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
11036         CreateEvent icall now returns "created" boolean parameter.
11037
11038 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
11039
11040         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
11041         #76967.
11042
11043         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
11044         when attr_klass is an interface. Fixes #77045.
11045
11046 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
11047
11048         * marshal.c (emit_struct_conv): Fix previous patch.
11049         
11050         * marshal.c (emit_struct_conv): Add a check for fields with the same
11051         offset.
11052
11053 2005-12-20  Raja R Harinath  <rharinath@novell.com>
11054
11055         Fix regression in Mono.C5.
11056         * class.c (mono_class_create_generic): If 'klass' is an interface
11057         set up the interface offsets.
11058         (mono_class_is_assignable_from): Don't throw away generic arguments.
11059
11060 2005-12-19  Raja R Harinath  <rharinath@novell.com>
11061
11062         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
11063         type parameters.
11064
11065 2005-12-15  Raja R Harinath  <rharinath@novell.com>
11066
11067         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
11068         dead store.
11069         (do_mono_metadata_parse_generic_class): Don't pass the current
11070         generic context when parsing the type being instantiated: it
11071         cannot use it, anyway.
11072
11073         * loader.c (method_from_memberref): Don't inflate a signature if
11074         it doesn't contain any type parameters.
11075
11076 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
11077
11078         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
11079
11080 2005-12-14  Martin Baulig  <martin@ximian.com>
11081
11082         * class.c
11083         (mono_type_get_name_recurse): Don't return null for type
11084         parameters and open generic classes.
11085         (mono_class_setup_methods): Don't exclude generic instances.
11086         (mono_get_unique_iid): Use different IDs for different
11087         instantiations of the same generic type.
11088         (mono_class_setup_vtable): Only use setup_generic_vtable() for
11089         open generic instances; create a normal vtable for closed generic
11090         instances.
11091         (mono_class_setup_vtable_general): We're now also called for
11092         closed generic instances.
11093
11094         * reflection.c
11095         (mono_reflection_bind_generic_parameters): Correctly use
11096         mono_metadata_lookup_generic_inst() everywhere.
11097
11098 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
11099
11100         * object.c (mono_class_create_runtime_vtable): Call 
11101         mono_class_setup_vtable ().
11102
11103         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
11104         function.
11105         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
11106         #76959.
11107
11108         * loader.c (mono_loader_set_error_type_load): Print the type load
11109         warnings to the console so they are more visible to the user.
11110         (mono_loader_set_error_method_load): Ditto.
11111
11112         * reflection.c (ensure_runtime_vtable): Revert the last change as it
11113         is still broken.
11114         
11115         * reflection.c (ensure_runtime_vtable): Fix build.
11116
11117         * reflection.c (ensure_runtime_vtable): Disable an optimization which
11118         doesn't work in all cases.
11119
11120 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
11121
11122         * object.c (mono_array_new_full): Treat a single dimensional array
11123         with 0 lower bounds as an szarray. Fixes #76973.
11124
11125         * reflection.c (custom_attr_visible): Really fix this.
11126
11127 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
11128
11129         * reflection.c (custom_attr_visible): Allow nested public attributes
11130         as well.
11131
11132         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
11133         interface check.
11134
11135 2005-12-12  Raja R Harinath  <harinath@gmail.com>
11136
11137         * class.c (set_generic_param_owner): Delete.
11138         (mono_class_create_from_typedef): Don't set ->owner field of
11139         generic parameters to "param containers" of enclosing classes.
11140         * reflection.c (mono_reflection_initialize_generic_parameter):
11141         Likewise.
11142
11143 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
11144
11145         * reflection.c (custom_attr_visible): Fix build.
11146
11147 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
11148
11149         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
11150         private attributes.
11151         
11152         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
11153         handling of null parameter defaults.
11154
11155 2005-12-09  Raja R Harinath  <rharinath@novell.com>
11156
11157         * class.c (mono_class_from_generic_parameter): Don't set
11158         klass->generic_container.
11159         (my_mono_class_from_generic_parameter): Likewise.
11160
11161 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
11162
11163         * reflection.c (load_public_key): Fix a warning.
11164         (method_encode_code): Fix unaligned accesses.
11165
11166 2005-12-07  Martin Baulig  <martin@ximian.com>
11167
11168         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
11169
11170         * reflection.c
11171         (write_generic_param_entry): Encode our custom attrs.
11172
11173         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
11174
11175 2005-12-07  Martin Baulig  <martin@ximian.com>
11176
11177         * reflection.c (encode_new_constraint): Removed; we don't use the
11178         `NewConstraintAttribute' anymore.
11179
11180 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
11181
11182         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
11183         not fire a TypeResolve event when Assembly.GetType () is called.
11184
11185 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
11186
11187         Beginning of support for nullable types in the runtime. Parts of
11188         this patch are from Martin.
11189
11190         * appdomain.c (MONO_CORLIB_VERSION): Bump
11191
11192         * domain.c (mono_init_internal): get the nullable type
11193
11194         * class.c (mono_class_is_nullable): New method
11195         (mono_class_get_nullable_param): New mehod
11196         (mono_class_create_generic): In types T? set cast_class to T
11197
11198         * class-internals.h (MonoDefaults): new nullable default class
11199         (mono_class_get_nullable_param, mono_class_get_nullable_param):
11200         new methods.
11201
11202 2005-12-05  Raja R Harinath  <rharinath@novell.com>
11203
11204         * metadata.c (select_container): New.  Refactor code to select the
11205         appropriate GenericContainer given the type of generic parameter
11206         we are looking for.
11207         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
11208         not a MonoGenericContext.  Use select_container.  Update parameters.
11209         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
11210         and MONO_TYPE_MVAR.
11211         (unwrap_arrays): Remove duplicate tests.
11212         (find_generic_param): Rename from 'has_same_context'.  Now walks a
11213         generic instantiated class to find any arguments that are generic
11214         parameters.
11215         (mono_type_create_from_typespec_full): Use find_generic_param to
11216         avoid evicting some generic instantiations from the typespec
11217         cache.
11218
11219 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
11220
11221         * reflection.c: fixed writing of doubles on ARM FPA.
11222
11223 2005-12-02  Robert Jordan  <robertj@gmx.net>
11224
11225         * icall.c: Fixed EventInfo.ReflectedType (#76829).
11226
11227 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11228
11229         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
11230         least on SUSE 10 they are not the same (on debian, they are just the
11231         same thing).
11232
11233 2005-12-01  Raja R Harinath  <rharinath@novell.com>
11234
11235         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
11236         DeclaringType for VARs and MVARs.
11237         * class.c (set_generic_param_owner): Fix initialization of owner
11238         fields.
11239
11240 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11241
11242         * icall.c: fixed Enum.ToObject() to correctly convert the values.
11243
11244 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11245
11246         * threadpool.c: workaround for a bug that shows up on the Mac:
11247         select()+connect() on a blocking socket is not like it should
11248         be, so we proceed to connect() in that case, wasting the I/O
11249         threadpool thread until connect succeedes. Fixes bug #75436.
11250
11251 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11252
11253         * threadpool.c: fix typo when setting file descriptor states.
11254
11255 2005-11-28  Raja R Harinath  <rharinath@novell.com>
11256
11257         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
11258         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11259         create a temporary signature container.
11260         (mono_metadata_parse_generic_param): Update to changes.
11261         (mono_type_create_from_typespec_full): Update to changes.
11262         * loader.c (method_from_memberref): Don't use a
11263         MonoGenericContainer while parsing a memberref signature.
11264         (method_from_methodspec): Remove dead-store of the 'container'
11265         variable.  It's overwritten before use.
11266
11267         * metadata.c (mono_type_create_from_typespec_full): Make debugging
11268         checks tighter.
11269         (mono_metadata_parse_generic_param): Likewise.
11270         * loader.c (find_method_in_class): Does not need a
11271         MonoGenericContainer.  Use 'mono_method_signature' rather than
11272         'mono_method_signature_full'.
11273         (find_method, mono_get_method_constrained, method_from_memberref):
11274         Update to changes.
11275
11276         * metadata.c (mono_type_create_from_typespec_full): Ensure that
11277         owner-less generic-parameters are never evicted from the typespec
11278         cache.
11279
11280         * loader.c (method_from_memberref): Don't use the current context
11281         when parsing signatures.
11282         (method_from_methodspec, mono_get_method_from_token): Update to changes.
11283
11284         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
11285         side-effects in g_assert.
11286         * loader.c (mono_get_method_from_token): Resolve klass earlier so
11287         that we don't potentially lose information.
11288
11289 2005-11-26  Dick Porter  <dick@ximian.com>
11290
11291         * icall.c:
11292         * threads.c: icalls to implement basic (ie, not named)
11293         System.Threading.Semaphore.
11294
11295 2005-11-24  Dick Porter  <dick@ximian.com>
11296
11297         * process.c
11298         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11299         Use GetProcessId() if it's available.
11300
11301 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
11302
11303         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
11304
11305 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11306             Ankit Jain  <jankit@novell.com>
11307
11308         * loader.c (mono_get_method_from_token): Initialize 'method' field
11309         of all generic parameters before parsing the signature.  Remove
11310         code that "fixed"-up MVAR references.
11311
11312 2005-11-23  Ankit Jain  <jankit@novell.com>
11313
11314         * metadata.c (mono_metadata_has_generic_params):
11315         (mono_metadata_load_generic_param_constraints):
11316         (mono_metadata_load_generic_params): Move duplicate code ...
11317         (mono_metadata_get_generic_param_row): ... here. Returns the
11318         first row-id in GenericParam table for a given owner (token).
11319         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
11320         prototype.
11321
11322 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11323             Ankit Jain  <jankit@novell.com>
11324
11325         * metadata.c (mono_metadata_class_equal): Pass signature_only when
11326         comparing VARs too.
11327         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
11328         type->data.generic_param only if the type is an MVAR.
11329         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
11330         leak owner-less VARs and MVARs into managed space.
11331
11332 2005-11-21  Martin Baulig  <martin@ximian.com>
11333
11334         * class-internals.h
11335         (MonoMethod): Moved the `generic_container' here from
11336         `MonoMethodNormal' since we now also need it for
11337         `MonoMethodPInvoke';
11338         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
11339         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
11340         an union containing both `MonoMethodNormal' and
11341         `MonoMethodPInvoke'.
11342
11343         * loader.c
11344         (mono_get_method_from_token): Allow implementing generic methods
11345         as interncalls.
11346
11347         * threads.c
11348         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
11349         icall.
11350
11351 2005-11-17  Dick Porter  <dick@ximian.com>
11352
11353         * icall.c: 
11354         * process.h: 
11355         * process.c: Split the Process Start_internal icall into
11356         ShellExecuteEx_internal and CreateProcess_internal, which are
11357         called depending on whether UseShellExecute is true.  Fixes bug
11358         76670.
11359
11360         * appdomain.c (MONO_CORLIB_VERSION): Incremented
11361
11362 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
11363
11364         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
11365         'msize' parameters, use the information in 'mspec' instead.
11366         (emit_object_to_ptr_conv): Ditto.
11367
11368         * marshal.c (emit_struct_conv): Handle explicit layout structs with
11369         fields out of order. Fixes #76733.
11370
11371 2005-11-17  Ankit Jain  <jankit@novell.com>
11372
11373         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
11374
11375 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
11376
11377         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
11378           bug #76575.
11379
11380 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11381
11382         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
11383         for types with non-auto layout. Fixes #76717.
11384
11385 2005-11-16  Ankit Jain  <jankit@novell.com>
11386
11387         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
11388         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
11389         if generic_context is null.
11390           (mono_metadata_generic_param_equal): param->owner can be null.
11391           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
11392         null.
11393
11394 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11395
11396         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
11397         the correct value.
11398
11399 2005-11-15  Martin Baulig  <martin@ximian.com>
11400
11401         * object.c (set_value): Use mono_class_from_mono_type() instead of
11402         the hack for generic instances; fixes #76136.
11403
11404 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
11405
11406         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
11407         fields.
11408
11409         * image.c (load_metadata_ptrs): Initialize the new fields.
11410
11411         * reflection.c (create_dynamic_mono_image): Ditto.
11412
11413         * reflection.c (build_compressed_metadata): Use the new fields.
11414
11415         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
11416         icall.
11417
11418         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
11419         icall.
11420         
11421 2005-11-15  Ankit Jain  <jankit@novell.com>
11422             Raja R Harinath  <harinath@gmail.com>
11423
11424         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
11425         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
11426         new per-generic_container cache if the cached MonoType's context matches
11427         the current context.
11428           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
11429         to the expected context.
11430           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
11431
11432 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11433
11434         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
11435         we changed the signature of an icall.
11436         * icall.c: Modify to mono_double_ParseImpl return true/false 
11437         depending on the success, instead of throwing the exception. This will
11438         help us in Double.TryParse methods.
11439         
11440 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
11441
11442         * marshal.c (emit_marshal_object): Throw an exception when
11443         marshalling 'object' instead of crashing. Fixes #76696.
11444
11445 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11446
11447         * class-internals.h: Add prototype for mono_type_get_full_name ().
11448
11449 2005-11-11  Dick Porter  <dick@ximian.com>
11450
11451         * threads.c (mono_thread_manage): Make sure the main thread has
11452         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
11453
11454 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11455
11456         * loader.c (mono_loader_set_error_type_load): Log a warning to the
11457         console about the missing type.
11458         (mono_loader_set_error_method_load): Ditto.
11459
11460 2005-11-09  Miguel de Icaza  <miguel@novell.com>
11461
11462         * mono-config.c (mono_get_config_dir): Set the system defaults if
11463         none is specified.
11464
11465         * assembly.c (mono_set_dirs): New API entry point to set the
11466         assembly and the config directory in one call
11467
11468 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
11469
11470         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
11471         the ftnptr was created from a delegate in a domain other than the
11472         current domain. Fixes #75377.
11473
11474         * exception.h exception.c: Add mono_get_exception_not_supported ().
11475
11476 2005-11-08  Martin Baulig  <martin@ximian.com>
11477
11478         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
11479
11480 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
11481
11482         * security-manager.h: Added definitions to deal with strongname key 
11483         pairs bigger (and smaller) than 1024 bits.
11484         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
11485         adjust wrt the public key length being used.
11486
11487 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
11488
11489         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
11490           Windows build (r51396-51397).
11491
11492 2005-11-03  Martin Baulig  <martin@ximian.com>
11493
11494         * class.c (mono_class_setup_vtable_general): Also add generic
11495         methods to the vtable; fixes #76581.
11496
11497 2005-11-01  Miguel de Icaza  <miguel@novell.com>
11498
11499         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
11500         sure that we lookup GetString method from the System.Text.Encoding
11501         class, not the derived class or we get an empty method.
11502
11503         Fixed class #76612.
11504
11505 2005-10-25  Miguel de Icaza  <miguel@novell.com>
11506
11507         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
11508         if it has been previously set (embedders). 
11509
11510         Make mono_set_rootdir available also on Unix.
11511
11512 005-10-24  Robert Jordan  <robertj@gmx.net>
11513
11514         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
11515
11516 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
11517
11518         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
11519         only calls which are made to native code use this flag.
11520
11521         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
11522
11523 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
11524
11525         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
11526         Add support for FieldBuilders.
11527
11528 2005-10-29  Martin Baulig  <martin@ximian.com>
11529
11530         * mono-debug.c
11531         (mono_debug_using_mono_debugger): New public method; returns
11532         whether we're running inside the debugger.
11533
11534 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
11535
11536         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
11537         for Method/Constructor/FieldBuilders.
11538
11539 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
11540
11541         * reflection.c (module_add_cattrs): Save custom attributes for global methods
11542         and fields as well.
11543
11544 2005-10-26  Martin Baulig  <martin@ximian.com>
11545
11546         * mono-debug-debugger.c
11547         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
11548
11549 2005-10-24  Raja R Harinath  <harinath@gmail.com>
11550
11551         * icall.c (base64_to_byte_array): Don't pass an out-of-range
11552         integer to isspace.
11553
11554 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
11555
11556         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
11557         when passing valuetypes byref. Fixes #76502.
11558
11559 2005-10-19  Jackson Harper  <jackson@ximian.com>
11560
11561         * profiler.c: Don't put a . in front of types that are not in a
11562         namespace.
11563
11564 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
11565
11566         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
11567
11568 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
11569
11570         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
11571         #76436.
11572         (mono_marshal_get_ldflda_wrapper): Fix a warning.
11573
11574 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11575
11576         * assembly.c metadata-internals.h icall.c: Define an additional
11577         parameter for mono_assembly_name_parse_full, so we can avoid creating
11578         S.R.AssemblyName.Version when no version info wasn't passed.
11579         
11580 2005-10-09  Miguel de Icaza  <miguel@novell.com>
11581
11582         * class.c (mono_type_get_full_name): Reimplement method that was
11583         removed. 
11584
11585         * image.c: Some docs
11586
11587 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
11588
11589         * profiler.c (output_newobj_profile): Fix printing of Total memory
11590         on x86.
11591
11592 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
11593
11594         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
11595
11596 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
11597
11598         * threads.c: remove debug output.
11599
11600 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
11601
11602         * threads.c (mono_thread_manage): Fix crashes if more than 64
11603         threads need to be aborted. Hopefully fixes #75899.
11604
11605         * assembly.c (mono_stringify_assembly_name): New helper function.
11606
11607         * class.c: Use mono_stringify_assembly_name instead of the similar
11608         static function.
11609
11610         * assembly.h assembly.c: Add support for calling a postload search 
11611         hook if an assembly cannot be loaded.
11612
11613         * appdomain.c: Register new search hooks which call the AssemblyResolve
11614         events in AppDomain. Fixes #75231
11615
11616 2005-10-07  Martin Baulig  <martin@ximian.com>
11617
11618         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
11619         methods without debug info.
11620
11621 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
11622
11623         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
11624         wrappers.
11625
11626 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11627
11628         * file-io.c: now that we return symlinks, use lstat and, when the file
11629         is a symbolic link, stat, to get the file attributes. Also avoid the
11630         conversion to/from utf16/external.
11631
11632 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
11633
11634         * class.c (mono_class_layout_fields): Compute klass->has_references
11635         correctly if an embedded valuetype is not yet initialized. Fixes
11636         #76331.
11637
11638 2005-10-04  Martin Baulig  <martin@ximian.com>
11639
11640         * metadata.c
11641         (mono_metadata_load_generic_param_constraints): New public
11642         function; splitted the constraints loading out from
11643         mono_metadata_load_generic_params().
11644
11645         * class.c (mono_class_create_from_typedef): Call
11646         mono_metadata_load_generic_param_constraints() after setting up
11647         the type and creating our parent; fixes #75329.
11648
11649 2005-10-04  Martin Baulig  <martin@ximian.com>
11650
11651         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
11652         non-dynamic parent classes.
11653
11654 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
11655
11656         * file-io.c : win32 build fix (ETXTBSY seems not found).
11657
11658 2005-10-04  Martin Baulig  <martin@ximian.com>
11659
11660         * reflection.c
11661         (mono_image_get_methodspec_token): Make the cache actually work;
11662         fixes #75974.
11663
11664 2005-10-04  Martin Baulig  <martin@ximian.com>
11665
11666         * class.c (mono_class_name_from_token): Removed the unneccessary
11667         `MonoGenericContext *' argument.
11668
11669 2005-10-04  Martin Baulig  <martin@ximian.com>
11670
11671         * loader.c
11672         (method_from_methodspec): Make the caching work again; fixes the
11673         performance regression from #76262.
11674
11675 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11676
11677         * file-io.c:
11678         * file-io.h:
11679         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
11680         GetFileSystemEntries that performs the same work but without going
11681         into io-layer, locking, etc.
11682
11683 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
11684
11685         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
11686         ThreadState_Stopped as well. Fixes #76047.
11687
11688 2005-09-29  Martin Baulig  <martin@ximian.com>
11689
11690         * class.c
11691         (inflate_generic_context): If the new context has a `gmethod', set
11692         its `container' that that gmethod's `container'.
11693
11694         * metadata.c
11695         (mono_metadata_parse_generic_param): Simplify things;
11696         `generic_container = generic_context->container;' is just fine.
11697
11698         * loader.c (method_from_methodspec): Code cleanups.
11699
11700 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
11701
11702         * decimal.c: fix warning (and let gcc generate correct
11703         code on ARM with optimizations).
11704
11705 2005-09-28  Martin Baulig  <martin@ximian.com>
11706
11707         * loader.c
11708         (method_from_memberref): Added `MonoGenericContext *class_context'
11709         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
11710         (method_from_methodspec): If we're a memberref, use the enclosing
11711         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
11712
11713 2005-09-28  Martin Baulig  <martin@ximian.com>
11714
11715         * object.c (mono_runtime_invoke_array): Added support for
11716         MONO_TYPE_GENERICINST; fixes #75917.
11717
11718 2005-09-27  Martin Baulig  <martin@ximian.com>
11719
11720         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
11721         `k->byval_arg.type' to determine the actual type.
11722
11723         * loader.c (method_from_methodspec): Removed some hacks.
11724
11725 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
11726
11727         * class-internals.h (mono_field_is_deleted): Do the test for
11728         rtspecialname before we check the actual name of the field. This
11729         prevents us from dereferencing a pointer into the string table,
11730         saving us from accessing a few pages
11731
11732         * *.c: Replace the use of {Enter,Leave}CriticalSection with
11733         macros. This will allow a deadlock debugger to easily be plugged
11734         in.
11735
11736 2005-09-27  Martin Baulig  <martin@ximian.com>
11737
11738         * loader.c (method_from_methodspec): Create a "signature"
11739         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
11740
11741 2005-09-27  Martin Baulig  <martin@ximian.com>
11742
11743         * class.c
11744         (inflate_generic_class): Correctly set the new context's
11745         container.
11746
11747         * loader.c
11748         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
11749         instead of a `MonoGenericContext *'.
11750         (mono_method_signature_full): Take a `MonoGenericContainer *'
11751         instead of a `MonoGenericContext *'.
11752
11753         * metadata.c
11754         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
11755         instead of a `MonoGenericContext *'.
11756         (mono_metadata_parse_method_signature_full): Likewise.
11757
11758 2005-09-26  Martin Baulig  <martin@ximian.com>
11759
11760         * class.c
11761         (mono_class_from_generic_parameter): Set `klass->generic_container'
11762         (mono_class_from_generic_parameter): Likewise.
11763         (mono_bounded_array_class_get): We inherit the generic container
11764         from the element class.
11765
11766         * loader.c
11767         (find_method, find_method_in_class): Take a `MonoGenericContext *'
11768         argument rather than computing it here.
11769         (method_from_memberref): Correctly set the generic context before
11770         parsing the signature.  Fixes #75681.
11771
11772 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
11773
11774         * object.c (mono_class_has_special_static_fields): Fix warnings.
11775
11776 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11777
11778         * assembly.c: Add parse_public_key function, to
11779         par the public keys. Also added mono_assembly_name_parse_full,
11780         to define it the parsed key should be freed or not.
11781         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
11782         to parse a long format assembly name.
11783         * metadata-internals.h: Keep mono_assembly_name_parse_full as
11784         private, since calling it to preserve the key requires
11785         freeing it manually.
11786         
11787 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
11788
11789         * locales.c : removed HAVE_ICU part.
11790
11791 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
11792
11793         * object.c (mono_class_create_runtime_vtable): Avoid calling 
11794         field_is_special_static if the klass has no special static fields.
11795
11796         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
11797         (MonoCachedClassInfo): Likewise.
11798
11799         * object.c (mono_class_has_special_static_fields): New helper function.
11800
11801 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11802
11803         * class.c (mono_class_create_from_typedef): Don't call 
11804         interfaces_from_typedef_full for enums.
11805         (mono_class_create_from_typedef): Compute the base types of enums directly
11806         without calling mono_class_setup_fields ().
11807         (mono_class_find_enum_basetype): New helper function.
11808
11809         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
11810         one place inside the string heap.
11811         
11812 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
11813
11814         * class.c: locking fixes, code cleanups, some docs added.
11815         Allocate some data structures in the image mempool.
11816
11817 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11818
11819         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
11820         the example code.
11821         
11822 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
11823
11824         * class-internals.h, class.c, reflection.c: reduce memory taken by
11825         MonoClass.
11826
11827 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
11828
11829         * metadata.c, metadata.h, loader.h: documentation updates, code and
11830         API cleanups.
11831
11832 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11833
11834         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
11835         the example code.
11836
11837         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
11838         page faults caused by the runtime while reading metadata.
11839
11840 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11841
11842         * socket-io.c: the field names were changed 3 months ago and no one
11843         realized until bug #76077 got filed!
11844
11845 2005-09-20  Martin Baulig  <martin@ximian.com>
11846
11847         * icall.c (assembly_icalls): Removed some unused debugger icalls.
11848
11849 2005-09-20  Martin Baulig  <martin@ximian.com>
11850
11851         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
11852         write the rank into the class entry.
11853
11854 2005-09-20  Martin Baulig  <martin@ximian.com>
11855
11856         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
11857
11858 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
11859
11860         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11861
11862         * icall.c (custom_attrs_defined_internal): New icall.
11863
11864         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
11865         function.
11866         (mono_custom_attrs_construct_by_type): New helper function.
11867
11868 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
11869
11870         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
11871         terminate the resulting string. Fixes #76123.
11872
11873 2005-09-16  Martin Baulig  <martin@ximian.com>
11874
11875         * mono-debug.c
11876         (mono_debug_add_method): Ignore inflated methods for the moment.
11877
11878 2005-09-14  Martin Baulig  <martin@ximian.com>
11879
11880         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
11881
11882 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
11883
11884         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
11885         return a success/failure indication.
11886         (mono_metadata_interfaces_from_typedef_full): Ditto.
11887         (get_constraints): Ditto.
11888
11889 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
11890
11891         * marshal.c (emit_marshal_array): Fix handling of null arrays.
11892         
11893         * marshal.c (emit_marshal_array): Add support for returning string
11894         arrays from delegates. Fixes #76063.
11895
11896         * marshal.c: Use the emit_ldloc/stloc macros where possible.
11897
11898 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
11899
11900         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
11901         icall.
11902
11903 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
11904
11905         * reflection.c icall.c: Fix after mono_get_exception_type_load
11906         signature change.
11907
11908         * assembly.c (mono_assembly_get_assemblyref): New helper function.
11909         (mono_assembly_load_reference): Use the new helper.
11910
11911         * class-internals.h (MonoLoaderError): New structure containing 
11912         information about type loading errors.
11913
11914         * class-internals.h loader.c: Add APIs to store per-thread loader
11915         error information.
11916
11917         * loader.c class.c: Set the loader error if needed.
11918
11919         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
11920
11921 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
11922
11923         * decimal.c: fixed to handle the broken ARM fp format.
11924
11925 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
11926
11927         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
11928         broken.
11929
11930 2005-09-06  Martin Baulig  <martin@ximian.com>
11931
11932         * domain.c (supported_runtimes): Added v2.0.50727.
11933
11934 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
11935
11936         * culture-info.h: reduce the size of some structures.
11937
11938 2005-09-05  Martin Baulig  <martin@ximian.com>
11939
11940         Reflect latest API changes in the August CTP.
11941
11942         * icall.c
11943         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
11944         ("MonoType.HasGenericArguments"): Removed.
11945         ("MonoMethod.BindGenericParameters"): Renamed to
11946         "MakeGenericMethod".
11947         ("MethodBuilder.BindGenericParameters"): Renamed to
11948         "MakeGenericMethod".    
11949
11950 2005-09-05  Martin Baulig  <martin@ximian.com>
11951
11952         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
11953
11954 2005-09-05  Martin Baulig  <martin@ximian.com>
11955
11956         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11957
11958         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
11959         generic_container is non-NULL.
11960
11961 2005-09-05  Martin Baulig  <martin@ximian.com>
11962
11963         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11964
11965         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
11966
11967 2005-08-29  Michal Moskal  <malekith@nemerle.org>
11968
11969         * reflection.c (encode_locals,
11970         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
11971         for large generic types.
11972
11973 2005-09-05  Martin Baulig  <martin@ximian.com>
11974
11975         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11976
11977         * class.c (mono_dup_array_type): New public method.
11978         (mono_metadata_signature_deep_dup): New public method.
11979         (dup_type): Correctly duplicate array and function types.
11980
11981 2005-09-05  Martin Baulig  <martin@ximian.com>
11982
11983         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11984
11985         * reflection.c (get_default_param_value_blobs): Handle generic types
11986         and generic methods.
11987
11988 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
11989
11990         * class.c: Fixed error reporting (method/class were inversed) for 
11991         inheritance demands.
11992         * security-manager.c|h: Added the AppDomain when calling the managed
11993         System.Security.SecurityManager.InheritanceDemand method.
11994
11995 2005-09-01  Raja R Harinath  <rharinath@novell.com>
11996
11997         * reflection.c (encode_marshal_blob): 'marshaltype' and
11998         'marshaltyperef' are alternate sources for the custom marshaler
11999         name.
12000
12001 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
12002
12003         * class.c: fix creation of array classes with rank == 1
12004         (patch by Ankit Jain <jankit@novell.com>).
12005
12006 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
12007
12008         * object.c: fix check for creating the bound data for arrays vs
12009         szarrays.
12010
12011 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12012
12013         * object.c: configuration file name is now based on the executable name,
12014         not the image name. Fixes bug #75931.
12015
12016 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
12017
12018         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
12019         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
12020
12021 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
12022
12023         * rand.c: Use wincrypt.h instead of WinCrypt.h.
12024
12025 2005-08-24  Ankit Jain  <jankit@novell.com>
12026             Raja R Harinath  <rharinath@novell.com>
12027
12028         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
12029           called by it recursively.
12030           (mono_class_init): Remove special case in pending_init handling, since it's
12031           superseded by the fix to mono_class_from_typeref.
12032
12033 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
12034
12035         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
12036         BROKEN_THREAD_START stuff.
12037
12038 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
12039
12040         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
12041         trampoline.
12042
12043         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
12044         
12045         * object.c (mono_delegate_ctor): Replace the original function address with
12046         a delegate trampoline.
12047
12048 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
12049
12050         * icall.c: add boolean argument to base64_to_byte_array and 
12051         InternalFromBase64String to control whether a whitespace-only string
12052         is allowed (or should casue a FormatException to be thrown). We need
12053         this as the behavior has changed between MS.NET 1.x and 2.0, and we
12054         to match the MS behaviour in both profiles.
12055         * appdomain.c: Bump corlib version.
12056
12057 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12058
12059         This patch implements a big portion of publisher policy
12060         support, used to bind assembly versions and redirect
12061         one assembly from version A to version B.
12062
12063         * assembly.c:
12064         New GSList loaded_assembly_bindings, for storing the cached
12065         assembly bindings.
12066         (assembly_binding_maps_name): New static function for checking if a 
12067         assembly binding information maps an assembly name.
12068         (mono_assembly_binding_info_free): New function for freeing
12069         assembly binding information resources.
12070         (get_publisher_policy_info): New static function for retrieving 
12071         assembly binding information from a MonoImage.
12072         (compare_versions): New static function for comparing an assembly
12073         binding information data and the version of an assembly name.
12074         (check_policy_versions): New static function for checking if an
12075         assembly binding info mapping an assembly name is valid for it.
12076         (mono_assembly_load_publisher_policy): New static function for
12077         loading the 'policy.major.minor.MyAssembly' image for an assembly
12078         with an assembly name 'aname'.
12079         (mono_assembly_bind_version): New static function for updating
12080         assembly redirection.
12081         (mono_assembly_apply_binding): New static function for applying
12082         assembly binding.
12083         (search_binding_loaded): New static function for searching 
12084         loaded assembly binding infos in the cache domain.
12085         (mono_assembly_load_full): Don't apply assembly binding for
12086         reflection only assemblies.
12087
12088         * metadata-internals.h: Add MonoAssemblyBindingInfo,
12089         which contains information about assembly binding. Also
12090         declare signature for mono_config_parse_publisher_policy ()
12091         function, used to retrieve pub policy info.
12092         
12093         * mono-config.c:
12094         (publisher_policy_start): New static function used to parse publisher 
12095         policy config files.
12096         (publisher_policy_parser): New static MonoParseHandler containing 
12097         the functions used when parsing config files.
12098         (mono_config_parse_publisher_policy): New function for parsing
12099         publisher policy files.
12100         
12101 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
12102
12103         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
12104
12105         * marshal.c (mono_delegate_free_ftnptr): Ditto.
12106
12107         * object.c (mono_get_addr_from_ftnptr): New helper function.
12108
12109         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
12110
12111         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
12112
12113 2005-08-19  Dick Porter  <dick@ximian.com>
12114
12115         * threads.c, threads.h, appdomain.c, appdomain.h,
12116         profiler-private.h, monitor.c, object.c, object-internals.h,
12117         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
12118         store the thread ID, so it can hold a 64 bit value if needed.
12119
12120 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
12121
12122         * reflection.c (mono_reflection_create_dynamic_method): Store the
12123         handle class into the method references as well so ldtoken works in
12124         dynamic methods.
12125
12126         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
12127         types.
12128
12129 2005-08-19  Ankit Jain <jankit@novell.com>
12130
12131         Fix #75847.
12132         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
12133           here rather than using the method signature of a arbitrary function
12134           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
12135           two arguments.
12136           Hack done with Harinath.
12137
12138 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12139
12140         * threadpool.c: disable printing stack traces when we get a exception
12141         in a threadpool thread. I need to do more testing to figure out which
12142         cases actually print this. Fixes bug #75828.
12143
12144 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12145
12146         * icall.c: there might be ignored whitespace after the last '='. This
12147         fixes length computation and bug #75840.
12148
12149 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
12150
12151         * assembly.c (mono_assembly_load_full): Consider .exe extension as
12152         well. Fixes #75809.
12153
12154         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
12155         #75784.
12156         
12157         * reflection.c (create_custom_attr_data): Ditto.
12158
12159 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
12160
12161         * locales.c, culture-info.h : removed RegionLCIDMap.
12162         * culture-info-tables.h : regenerated.
12163
12164 2005-08-16  Martin Baulig  <martin@ximian.com>
12165
12166         * class.c (mono_type_get_name_recurse): Small fix.
12167
12168 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
12169
12170         * locales.c : indentation fixie.
12171
12172 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
12173
12174         * object-internals.h,
12175           locales.h,
12176           locales.c,
12177           culture-info.h,
12178           icall.c : added RegionInfo table support.
12179         * culture-info-table.h : regenerated for region support.
12180
12181 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
12182
12183         * reflection.c (resolve_object): handle all kinds of MonoMethod
12184         including generic ones
12185
12186 2005-08-12  Ankit Jain <jankit@novell.com>
12187
12188         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
12189           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
12190
12191 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
12192
12193         * process.c: Don't close a thread handle when it's NULL. This is a
12194         workaround for bug #75733.
12195
12196 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
12197
12198         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
12199
12200 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
12201
12202         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
12203
12204 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12205
12206         * threadpool.c: if a work item in the thread pool has a callback that
12207         catches a exception, don't propagate it after invoking the callback.
12208         Fixes bug #75336.
12209
12210 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
12211
12212         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
12213
12214         * class-internals.h (MonoCachedClassInfo): Add some new fields.
12215
12216         * class.c (mono_class_init): Load field info lazily in the AOT case.    
12217
12218         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
12219
12220 2005-08-03  Ankit Jain  <jankit@novell.com>
12221
12222         Fix #75683.
12223         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
12224           PInvoke calling convention is 0.
12225
12226 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
12227
12228         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
12229         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
12230
12231 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
12232
12233         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
12234         to handle threads not started by the GC (patch by Michael Meeks
12235         <michael.meeks@novell.com>).
12236
12237 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
12238
12239         * reflection.c: Make buffer used in emitting types larger for some
12240         big generic types (patch by Michal Moskal).
12241
12242 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
12243
12244         * mono-debug.c: Fix some (not all) alignment problems.
12245
12246 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12247
12248         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
12249         Invoke mono_image_load_from_data_full passing the refonly
12250         parameter.
12251
12252         * assembly.c
12253         (mono_assembly_open_from_bundle): Add the refonly argument, 
12254         in order to pass it to other methods it calls to.
12255         (do_mono_assembly_open): Add the refonly argument, in order 
12256         to pass it to other methods it calls to.
12257         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
12258         the refonly parameter to it.
12259
12260         * image.c: Add loaded_images_refonly_hash and
12261         loaded_images_refonly_guid_hash to cache the reflection
12262         only loaded images.
12263         (mono_images_init): Initialize the hash tables used for
12264         caching the reflection only images.
12265         (load_modules): Invoke mono_image_open_full passing the refonly
12266         parameter to load the modules the correct way.
12267         (build_guid_table): Add the refonly argument, to re-build the 
12268         correct hash table.
12269         (do_mono_image_open): Added the refonly argument, in order to
12270         define it for the loaded image.
12271         (mono_image_loaded_full): New function, which receives an
12272         additional parameter to look for the image in the refonly or
12273         non-refonly section.
12274         (mono_image_loaded): Updated, using mono_image_loaded_full.
12275         (mono_image_loaded_by_guid_full): The same case that happens
12276         with mono_image_loaded_full.
12277         (mono_image_loaded_by_guid): Likewise.
12278         (register_image): Use the ref_only variable inside MonoImage
12279         to decide in which hash table store the current image.
12280         (mono_image_open_from_data_full): Rename
12281         mono_image_open_from_data to mono_image_open_from_data_full,
12282         adding the refonly argument, to define the ref_only variable 
12283         inside MonoImage.
12284         (mono_image_open_from_data): Return 
12285         mono_image_open_from_data_full.
12286         (mono_image_open_full): Rename mono_image_open to
12287         mono_image_open_full, receiving the new refonly argument,
12288         to pass it to inner methods.
12289         (mono_pe_file_open): Update this function, to open
12290         a MonoImage as a non-refonly image.
12291         (mono_image_close): Use the refonly variable inside
12292         MonoImage to remove the image from the correct caches.
12293
12294         * image.h: Add the signatures of mono_image_open_full,
12295         mono_image_open_from_data_full, mono_image_loaded_full,
12296         mono_image_loaded_by_guid_full.
12297
12298         * metadata-internals.h: Add the ref_only field to 
12299         MonoImage.
12300         
12301 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12302
12303         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
12304         Fix the last behavior, which used to load the assemblies and
12305         extract MonoReflectionAssemblyName information, instead of
12306         extract it from the metadata tables. Needed for Reflection
12307         Only assemblies.
12308         
12309 2005-07-29  Martin Baulig  <martin@ximian.com>
12310
12311         * mono-debug-debugger.c
12312         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
12313         not initialized.
12314
12315         * mono-debug.c
12316         (mono_debug_address_from_il_offset): Check whether we have
12317         debugging support before attempting to take the lock.
12318         (mono_debug_source_location_from_address): Likewise.
12319         (mono_debug_source_location_from_il_offset): Likewise.
12320         (mono_debug_il_offset_from_address): Likewise.
12321         (mono_debug_address_from_il_offset): Likewise.
12322
12323 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
12324
12325         * class.c (mono_class_from_name_case): Add support for dynamic images.
12326         Fixes #75650.
12327
12328         * object.c (mono_class_compute_gc_descriptor): Add a workaround
12329         for #75479.
12330
12331 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12332         
12333         * reflection.c (mono_method_get_object): Fix warning.
12334
12335 2005-07-28  Martin Baulig  <martin@ximian.com>
12336
12337         * mono-debug.c
12338         (mono_debug_add_wrapper): Also write the wrapper type.
12339
12340 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12341
12342         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
12343         
12344         * class.c (mono_class_init): Avoid reading nested classes if the AOT
12345         data indicates the class has none.
12346
12347 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
12348
12349         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
12350         loader lock with the debugger lock. Prevents deadlocks for beagle.
12351
12352         Beagle can now run on an smp box for a weekend without any
12353         issues. Woohoo!
12354
12355 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
12356
12357         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
12358         in a module. Fixes #75629.
12359
12360 2005-07-26  Martin Baulig  <martin@ximian.com>
12361
12362         * mono-debug.c (mono_debug_add_wrapper): New static method.
12363         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
12364         interncall or a wrapper.
12365
12366         * mono-debug.h (MonoDebugWrapperData): New public typedef.
12367         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
12368         (MONO_DEBUGGER_VERSION): Bump to 51.
12369
12370         * mono-debug-debugger.c
12371         (mono_debugger_add_type): Removed this empty function.
12372         (mono_debugger_add_method): Likewise.
12373
12374 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
12375
12376         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
12377         before accessing method->slot.
12378
12379 2005-07-21  Jb Evain  <jbevain@gmail.com>
12380
12381         * reflection.c (method_encode_clauses/class): Handle filters clauses.
12382         Fixes #75010.
12383
12384 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
12385
12386         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
12387         #75587.
12388
12389 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
12390
12391         * image.h image.c: Add mono_image_get_guid () API function.
12392
12393 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
12394
12395         There were issues when multiple threads tried to load
12396         assemblies. A deadlock was created between assemblies_mutex and
12397         mono_domain_assemblies_lock. This fixes the issue by making the
12398         assembly ref counting be lock free. See bug 75586.
12399         
12400         * image.c (mono_image_close): The add ref function here was using
12401         Interlocked operations while the unref was using a mutex and a
12402         --. I don't think this was ever a bug that would be exposed in a
12403         non-pendantic way (ie, by an embedder doing a ref on one thread
12404         and an unref on another), but for the sake of correctness, this is
12405         now Interlocked.
12406
12407         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
12408         (mono_assembly_load_reference): Call mono_assembly_addref rather
12409         than touching the refcount ourselves.
12410         (mono_assembly_close): Use InterlockedDecrement to unref the
12411         assembly. Don't acquire the lock unless it is actually needed.
12412
12413 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12414
12415         * class.c (mono_class_layout_fields): Fix calculation of has_references
12416         for generic types.
12417
12418 2005-07-12  Martin Baulig  <martin@ximian.com>
12419
12420         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12421
12422         * metadata.c
12423         (mono_type_hash): Provide better hashing for generic instances.
12424         (mono_generic_inst_hash): Improve hashing.
12425         (mono_generic_class_hash): Likewise.
12426
12427         * reflection.c (mymono_metadata_type_hash): Improve hashing for
12428         generic instances.
12429
12430 2005-07-12  Martin Baulig  <martin@ximian.com>
12431
12432         * reflection.c (mono_reflection_create_runtime_class): Remove the
12433         hack for generic type definitions and non-`Run' assemblies.
12434         (mono_reflection_bind_generic_parameters): Also use
12435         `klass->wastypebuilder' to check for TypeBuilders.
12436
12437 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12438
12439         * class.c (mono_class_layout_fields): Fix calculation of has_references
12440         for generic types.
12441
12442         * class.c (inflate_generic_class): Fix a leak.
12443         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
12444         for generic types.
12445
12446 2005-07-11  Martin Baulig  <martin@ximian.com>
12447
12448         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
12449         on error.
12450
12451 2005-07-11  Martin Baulig  <martin@ximian.com>
12452
12453         * loader.c (find_method): Also lookup in
12454         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
12455
12456 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12457
12458         * appdomain.c (mono_domain_unload): Don't free the error message
12459         before passing it to mono_get_exception_...
12460
12461         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
12462         
12463 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
12464
12465         * threads.c: try to better guess an available RT signal (bug #75387).
12466
12467 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12468
12469         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
12470         and CACHE_OBJECT.
12471
12472 2005-07-07  Martin Baulig  <martin@ximian.com>
12473
12474         * class.c (mono_type_get_name_full): Return NULL for
12475         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
12476         fixes #75408.
12477
12478 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12479
12480         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
12481         exit the appdomain as well being aborted.
12482
12483         * threadpool.c: Create all threadpool threads inside the root appdomain, and
12484         change back to the root domain after calling managed code. This enables
12485         appdomains using threadpools to be unloaded.
12486
12487 2005-07-07  Martin Baulig  <martin@ximian.com>
12488
12489         * class-internals.h
12490         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
12491         into `MonoDynamicGenericClass' since we only need it for dynamic
12492         types.
12493
12494         * reflection.c (mono_class_bind_generic_parameters): We don't need
12495         to compute the `parent' here.
12496
12497 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
12498
12499         * culture-info-table.h : regenerated.
12500
12501 2005-07-06  Martin Baulig  <martin@ximian.com>
12502
12503         * icall.c
12504         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
12505
12506         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
12507
12508 2005-07-06  Martin Baulig  <martin@ximian.com>
12509
12510         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
12511         we're doing a signature-only comparision; fixes #74945.
12512
12513 2005-07-06  Martin Baulig  <martin@ximian.com>
12514
12515         * class-internals.h (MonoGenericClass): Moved some things out into
12516         a new `MonoInflatedGenericClass' type.  
12517         (MonoInflatedGenericClass): New type; the `klass' of a
12518         `MonoGenericClass' is now computed lazyly in
12519         mono_get_inflated_generic_class().      
12520
12521         * class.c (mono_get_inflated_generic_class): New public function.
12522         (mono_class_inflate_generic_method): Removed the unused
12523         `MonoClass *' argument.
12524         (setup_generic_vtable): Don't call mono_get_inflated_method() on
12525         all the methods.
12526         (mono_class_create_generic): Make this static and merge it with
12527         mono_class_create_generic_2(); we're now called automatically from
12528         mono_get_inflated_generic_class().
12529
12530         * loader.c (mono_method_signature): Call
12531         mono_get_inflated_method() here.
12532
12533 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
12534
12535         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
12536         type of fields with RVA.
12537
12538         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
12539         for this pseudo class.
12540         (my_mono_class_from_generic_parameter): Likewise.
12541         (mono_class_init): Allow interfaces to have cctors.
12542
12543 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12544
12545         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
12546         lazily for AOT methods.
12547
12548 2005-07-05  Martin Baulig  <martin@ximian.com>
12549
12550         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
12551         returns FALSE for a successful match, not TRUE.
12552
12553 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12554
12555         * loader.c (mono_method_get_index): Optimize this a bit.
12556
12557 2005-07-04  Martin Baulig  <martin@ximian.com>
12558
12559         * class.c
12560         (class_compute_field_layout): Move the check for generic type
12561         definitions into mono_class_layout_fields().  Fixes #74684.
12562         (mono_class_from_generic_parameter): Correctly compute
12563         `klass->parent'; fixes #75457.
12564
12565         * reflection.c (register_assembly, register_module): Make sure
12566         `domain->rejobject_hash' is already created.
12567
12568 2005-07-02  Martin Baulig  <martin@ximian.com>
12569
12570         * class-internals.h
12571         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
12572         `MonoDynamicGenericClass'.      
12573
12574 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
12575
12576         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
12577         returned by a field getter is null, since null is a valid value.
12578
12579 2005-07-01  Martin Baulig  <martin@ximian.com>
12580
12581         * reflection.c (mono_reflection_generic_class_initialize): Update
12582         the `dgclass->fields [i].parent' to the correct class.
12583         (mono_image_get_fieldref_token): Use the declaring type, not the
12584         reflected type.
12585
12586 2005-07-01  Martin Baulig  <martin@ximian.com>
12587
12588         * loader.c (find_method): Also look in the interfaces; fixes #75429.
12589
12590 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
12591
12592         * threads.c (thread_cleanup): assert that thread != NULL
12593         (wait_for_tids_or_state_change): We were using the wrong variable
12594         when accessing wait->threads. `i' was always out of the bounds of
12595         the array.
12596
12597 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12598
12599         * loader.c: map user32 and kernel32 to libMonoSupportW
12600
12601 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
12602
12603         * appdomain.c (unload_thread_main): Mark this as WINAPI.
12604
12605 2005-06-28  Martin Baulig  <martin@ximian.com>
12606
12607         * loader.c (method_from_methodspec): Fix #75334.
12608
12609 2005-06-28  Martin Baulig  <martin@ximian.com>
12610
12611         Fix #74953 - Arrays now implement the generic IList<T> interface
12612         on the 2.0 platform.
12613
12614         * class-internals.h (MonoDefaults): Added `generic_array_class'.
12615
12616         * reflection.c (mono_class_bind_generic_parameters): New public
12617         function; similar to mono_reflection_bind_generic_parameters(),
12618         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
12619
12620         * domain.c (mono_init_internal): Try to initialize.
12621         `mono_defaults.generic_array_class' here; this'll only succeed if
12622         we're using the 2.0 corlib.
12623
12624         * icall.c
12625         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
12626         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
12627         (mono_lookup_internal_call): Added support for nested classes.
12628
12629         * loader.c
12630         (mono_get_method_from_token): Set `result->signature->pinvoke' if
12631         we're an interncall and have generic arguments.
12632
12633         * class.c
12634         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
12635         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
12636         instance of System.Array.InternalArray<T> for arrays, so they
12637         implement the generic IList<T> interface.
12638
12639 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
12640
12641         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
12642         (chastamar@yahoo.com). Fixes #75374.    
12643
12644 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
12645
12646         * culture-info-table.h: regenerated.
12647
12648 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12649
12650         * icall.c: handle spaces correctly for base64 strings.
12651
12652 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
12653
12654         * *.c: Kill some warnings.
12655
12656 2005-06-23  Duncan Mak  <duncan@novell.com>
12657
12658         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
12659         that this builds on Solaris 10 (x86).
12660
12661 2005-06-23  Martin Baulig  <martin@ximian.com>
12662
12663         * class.c
12664         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
12665         generic type definitions.
12666
12667 2005-06-23  Martin Baulig  <martin@ximian.com>
12668
12669         Fix #75331.
12670
12671         * metadata.c (mono_class_get_overrides): Renamed to
12672         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
12673         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
12674         pass it to mono_get_method_full().
12675
12676 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
12677
12678         * reflection.c (mono_reflection_create_runtime_class): take the
12679         mono_domain_lock in this method. Prevents deadlocks
12680
12681 2005-06-22  Martin Baulig  <martin@ximian.com>
12682
12683         * loader.c (method_from_methodspec): Fix #75330.
12684
12685 2005-06-22  Martin Baulig  <martin@ximian.com>
12686
12687         * reflection.c (type_get_qualified_name): Use
12688         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
12689         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
12690         argument; use it if we don't have an assembly name.
12691
12692 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
12693
12694         * object.c: In mono_message_init, set "copy out" flag for in
12695         parameters with the [Out] flag.
12696
12697 2005-06-21  Martin Baulig  <martin@ximian.com>
12698
12699         * class.c
12700         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
12701         and MONO_TYPE_PTR.
12702
12703 2005-06-21  Martin Baulig  <martin@ximian.com>
12704
12705         * class.c (mono_class_init): Don't initialize `class->fields' for
12706         generic instances since they're initialized again in
12707         compute_field_layout(). 
12708         (compute_field_layout): Set the field's `generic_info' here; fix
12709         #75320. 
12710
12711 2005-06-21  Martin Baulig  <martin@ximian.com>
12712
12713         * class-internals.h
12714         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
12715
12716         * metadata.c (mono_metadata_generic_method_equal): Also
12717         distinguish the `generic_class'; fixes #75334.
12718
12719 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12720
12721         * domain.c:
12722         * appdomain.c:
12723         * domain-internals.h:
12724         * reflection.c: 'domain_assemblies' field is now protected by its own
12725         lock. Don't call into managed code to run the AssemblyLoad event if we
12726         now there are no registered delegates for it.
12727
12728 2005-06-20  Martin Baulig  <martin@ximian.com>
12729
12730         * class.c (mono_class_is_assignable_from): Use a custom version of
12731         mono_class_has_parent() to make things work for generic instances;
12732         fix #75300.
12733
12734 2005-06-20  Martin Baulig  <martin@ximian.com>
12735
12736         * loader.c (method_from_methodspec): Apply a patch from
12737         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
12738
12739 2005-06-20  Martin Baulig  <martin@ximian.com>
12740
12741         * class.c (mono_class_init): Reverted Zoltan's last change; it
12742         breaks generics.
12743
12744 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
12745
12746         * threads.c (wait_for_tids_or_state_change): Add missing locking.
12747
12748 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12749
12750         * socket-io.c: fix the index in the socket array for writable/error
12751         sockets. Fixes bug #75306.
12752
12753 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
12754
12755         * class.c (mono_class_init): Allow interfaces to have static ctors.
12756
12757 2005-06-17  Martin Baulig  <martin@ximian.com>
12758
12759         * loader.c (method_from_methodspec): Use `context->container' when
12760         parsing the `gmethod->inst'.
12761
12762 2005-06-17  Martin Baulig  <martin@ximian.com>
12763
12764         * class.c (mono_type_get_name_recurse): Don't add the assembly
12765         name for type arguments.
12766
12767 2005-06-15  Martin Baulig  <martin@ximian.com>
12768
12769         * reflection.c (mono_image_get_inflated_method_token): Encode
12770         correct klass; fixes #75260.
12771
12772 2005-06-13 Michal Moskal <malekith@nemerle.org>
12773
12774         * icall.c: Make GetCorrespondingMethod/Constructor take
12775         MonoReflectionMethod method not MonoMethod. Removed
12776         MonoType.GetCorrespondingField, and make
12777         MonoGenericType.GetCorrespondingField take name not
12778         MonoClassField.
12779
12780 2005-06-13  Michal Moskal <malekith@nemerle.org>
12781
12782         * reflection.c (field_encode_signature, encode_locals):
12783          Make sizes of buffers for types larger (for big generic types).
12784          (create_generic_typespec,
12785          mono_reflection_sighelper_get_signature_local,
12786          mono_reflection_sighelper_get_signature_field):
12787          Add asserts for too small buffers.
12788
12789 2005-06-15  Martin Baulig  <martin@ximian.com>
12790
12791         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
12792         if our parent is not a dynamic type.
12793
12794 2005-06-15  Martin Baulig  <martin@ximian.com>
12795
12796         * class-internals.h (MonoTypeNameFormat): New enum.
12797
12798         * class.c
12799         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
12800         (mono_type_get_full_name): Removed.
12801         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
12802         argument instead of the boolean's.
12803
12804         * icall.c (ves_icall_System_MonoType_getFullName):
12805         Added `gboolean assembly_qualified'.    
12806
12807         * reflection.h
12808         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
12809
12810         * reflection.c (mono_reflection_parse_type): Parse the new type
12811         name format.
12812
12813 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12814
12815         * icall.c: no need to convert from utf16 to utf8 and then back again
12816         after the call to GetLogicalDrives.
12817
12818 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12819
12820         * icall.c: frombase64. Fix problems exposed by new tests.
12821
12822 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12823
12824         * icall.c: added internal calls for converting char [] and strings in
12825         base64 into byte [].
12826
12827 2005-06-10  Martin Baulig  <martin@ximian.com>
12828
12829         * class.c (mono_class_create_generic_2): Read the nested classes
12830         from the metadata rather than from `gklass->nested_classes' since
12831         `gklass' might not be initialized yet.
12832
12833 2005-06-09  Duncan Mak  <duncan@novell.com>
12834
12835         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
12836         all public headers. Fixes #74919.
12837
12838 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
12839
12840         * domain.c: The key for proxy_vtable_hash is now a pointer
12841         array. Added new GHashFunc and GCompareFunc functions for this.
12842
12843         * class.h: The list of interfaces in MonoRemoteClass is known in
12844         advance and can't grow (we create a new MonoRemoteClass if needed),
12845         so now the interface array can be allocated together with
12846         MonoRemoteClass.
12847         
12848         * object.c: Added a new method create_remote_class_key.
12849         Fixed mono_remote_class so it does not depend on
12850         mono_upgrade_remote_class.
12851         Removed extend_interface_array.
12852         Added new method clone_remote_class(), which makes a copy of a remote
12853         class and adds a new interface or class to it.
12854         mono_upgrade_remote_class() now creates a new remote class (or gets
12855         it from the cache) if an vtable upgrade is needed. In this way
12856         we make sure that other objects sharing the same remote class
12857         don't get the new vtable with unwanted interfaces.
12858         
12859         * object-internals.h:
12860         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
12861         
12862         * marshal.c: Track changes in mono_upgrade_remote_class().
12863
12864 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
12865         * icall.c: Add runtime methods for obtaining members of inflated
12866         class, which were created from supplied non-inflated members. It
12867         is used in internal Get{Method,Constructor,Field} methods in
12868         System.Type
12869
12870 2005-06-09  Martin Baulig  <martin@ximian.com>
12871
12872         * reflection.c
12873         (mono_reflection_bind_generic_method_parameters): Fix #75169.
12874
12875 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12876         * reflection.c (mono_image_basic_init): Define
12877         Version in MonoDynamicAssembly. 
12878         
12879 2005-06-08  Martin Baulig  <martin@ximian.com>
12880
12881         Fix #75136.
12882
12883         * loader.c
12884         (mono_method_signature_full): New public method; takes a
12885         `MonoGenericContext *'.
12886         (find_method): Use mono_method_signature_full() and pass the
12887         klass'es context to it.
12888
12889         * class.c (mono_class_is_inflated_method): Use
12890         mono_method_signature_full() and pass the context to it.
12891
12892 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
12893
12894         * object.c: add proper locking in mono_remote_class_vtable(),
12895         fixes possible memory corruption.
12896
12897 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
12898
12899         * marshal.c (mono_remoting_marshal_init): set
12900         initialized after initialization.
12901
12902 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12903
12904         * locales.c : hush.
12905
12906 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
12907
12908         * object.c (extend_interface_array): fix really silly
12909         memory corrupting / comparison bug.
12910
12911 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12912
12913         * reflection.c: Functions added to support the creation
12914         of CustomAttributeData, which includes Attribute data
12915         used by ReflectionOnly methods.
12916
12917         * reflection.h:  mono_reflection_get_custom_attrs_data and
12918          mono_custom_attrs_data_construct added (functions exposed).
12919
12920          * icall.c: Added mono_reflection_get_custom_attrs_data
12921          as icall.
12922         
12923 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
12924
12925         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
12926         lupus's request.
12927
12928 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
12929
12930         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
12931
12932         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
12933         dynamic DllImportAttribute.
12934
12935         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
12936         dynamic DllImportAttribute.
12937
12938         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
12939         Fixes #75162.
12940
12941 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12942
12943         * threads.c: avoid segfault when an unstarted thread is aborted.
12944
12945 2005-06-05  KornĂ©l Pál <kornelpal@hotmail.com>
12946
12947         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
12948         Returns the name and version of the runtime for reporting.
12949
12950 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12951
12952         * appdomain.c: bump corlib version.
12953         * object-internals.h: new field in MonoReflectionAssembly.
12954
12955 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12956
12957         * object-internals.h: Carlos forgot to add this field.
12958
12959 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12960
12961         * icall.c: Added create_version to create instances
12962         of Version of MonoReflectionAssemblyName. This change helps
12963         the AssemblyName tests to keep running fine.
12964         
12965 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
12966   
12967         * object.c (mono_method_return_message_restore): A somehow less
12968         intrusive fix for #75138.
12969
12970 2005-06-03  Raja R Harinath  <rharinath@novell.com>
12971
12972         * object.c (mono_method_return_message_restore): Fix computation
12973         of expected number of out args.
12974
12975 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
12976
12977         * reflection.c (mono_image_get_method_info): Fix the case when the
12978         charset is empty.
12979
12980 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
12981
12982         * object.c: Added missing null check in
12983           mono_method_return_message_restore.
12984
12985 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
12986
12987         * reflection.c (mono_image_get_method_info): Handle the case when
12988         dllentry is empty.
12989
12990 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
12991
12992         * object.c: When creating the vtable for a proxy, take into account
12993         all inherited interfaces, not only the ones registered in
12994         iclass->interfaces. This fixs bug #74996.
12995         Also, in mono_method_return_message_restore, verify that the array
12996         of out args has the expected lengh.
12997
12998 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12999
13000         * socket-io.c: update the timeout in Poll when the call is interrupte.
13001
13002 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13003
13004         * socket-io.c: support abort/suspend in Select_internal after last
13005         change.
13006
13007 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13008
13009         * threadpool.c: remove warning.
13010
13011 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13012
13013         * icall.c:
13014         * socket-io.[ch]: Select_internal uses poll() now when available, thus
13015         removing the 1024 limit from select(). Runtime part of the fix for
13016         bug #71203.
13017
13018 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13019
13020         * socket-io.c: when resolving the addresses for the same
13021         host returned by gethostname(), get the local IPs from the interface
13022         list. Loopback addresses are discarded if the are interfaces up with
13023         non-loopback ones. Fixes bug #63265.
13024
13025 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
13026
13027         * appdomain.c, verify.c, object-internals.h, reflection.c:
13028         bumped corlib number to 36, and added new extra_flags field
13029         to ReflectionMethodBuilder and friends.  Fixes #75060.
13030
13031 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
13032
13033         * gc.c: register a new weak link only if the object is non-null
13034         (fixes bug#75047).
13035
13036 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13037
13038         * culture-info.h : short time pattern too.
13039
13040 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
13041
13042         * culture-info.h : expand long time pattern string length.
13043
13044 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13045
13046         * culture-info-table.h : update (more French date format; #72788).
13047
13048 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
13049
13050         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
13051         the method is static. Fixes #75029.
13052
13053 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
13054
13055         * reflection.c: Update the table_idx field of method builders after
13056         saving the module, since it can change. This is a workaround for
13057         bug #74914. 
13058
13059 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13060
13061         * culture-info-table.h : update (additional French date format).
13062
13063 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
13064
13065         * icall.c (ves_icall_type_Equals): Revert last change.
13066         
13067         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
13068
13069         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
13070
13071 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
13072
13073         * class-internals.h: Added executioncontext_class field to 
13074         MonoDefaults structure.
13075         * domain.c: Cache System.Threading.ExecutionContext class in 
13076         mono_defaults.
13077         * object.c: Capture the ExecutionContext for asynchroneous calls in
13078          mono_async_result_new.
13079         * object-internals.h: Added execution_context and original_context 
13080         fields to MonoAsyncResult. Added execution_context to MonoThread.
13081         * security-manager.c|.h: Added mono_get_context_capture_method to 
13082         return the capture method (if required by the security manager or by
13083         the framework version used).
13084         * threadpool.c: Apply capture (if present) ExecutionContext in 
13085         mono_async_invoke and revert to original context after it completes.
13086
13087 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
13088
13089         * culture-info-table.h : updated (real hacky solution for zh-CHT).
13090
13091 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
13092
13093         * culture-info-table.h : zh-CHT related workaround.
13094
13095 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13096
13097         * marshal.c (emit_marshal_custom): Add some error checking and call the
13098         methods in the ICustomMarshaler interface. Fixes #74875.
13099         
13100         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
13101         native->managed wrappers.
13102
13103 2005-05-12  Martin Baulig  <martin@ximian.com>
13104
13105         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
13106         here and use the loader lock.
13107
13108         * mono-debug.c: Properly lock when the debugger is not attached.
13109         (mono_debug_init): Release the initial lock if we're not running
13110         in the debugger.
13111
13112 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
13113
13114         * marshal.c (emit_marshal_custom): Pass through NULL values without
13115         calling the custom marshalling routines.
13116
13117         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
13118         conversion in structures. Fixes #74882.
13119
13120 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
13121
13122         * culture-info-table.h : zh-* cultures were missing.
13123
13124 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
13125
13126         * threads.c: Added a new event background_change_event which is signaled
13127         when a thread changes its background mode.
13128         Moved here several checks previously done in managed code. The checks
13129         require the thread lock, and using the thread lock in managed code
13130         can result in deadlocks.
13131         Merged Start_internal and Thread_internal into a single method. Now 
13132         Thread_internal does all work of creating and starting a thread.
13133         Added icalls for setting and getting the state of the object. Moved from
13134         managed code to avoid locking there.
13135         Added wait_for_tids_or_state_change() which is called instad of
13136         wait_for_tids when waiting for non-backround threads to end. This method
13137         will return if one of the threads ends or the background_change_event
13138         is signaled.
13139         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
13140         the background mode. This method signals the background_change_event
13141         event.
13142         * icall.c:
13143         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
13144         removed Start_internal.
13145         
13146 2005-05-11  Martin Baulig  <martin@ximian.com>
13147
13148         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
13149         to order of some fields to get proper alignment on 64-bit machines.
13150
13151 2005-05-11  Martin Baulig  <martin@ximian.com>
13152
13153         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
13154         changes as they're broken and completely fuck up the debugger.
13155
13156         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
13157
13158 2005-05-10  Martin Baulig  <martin@ximian.com>
13159
13160         * reflection.c (mono_reflection_generic_class_initialize): Don't
13161         call mono_class_setup_parent() here.
13162
13163 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13164
13165         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
13166         send/receive timeout use an integer in milliseconds. We were using a
13167         struct timeval.
13168
13169 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13170
13171         * locales.c:
13172         (internal_get_cultures): reserve the first slot of the array for the
13173         InvariantCulture, which will be filled in managed code.
13174
13175 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
13176
13177         * reflection.c (mono_image_fill_module_table): Initialize the
13178         GENERATION field as well.
13179
13180 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13181
13182         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
13183         Monitor.Enter on the object.
13184
13185 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
13186
13187         * threads.c: Enable the wait for running threads when exiting.
13188         * icall.c: Suspend all threads before exiting.
13189
13190 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
13191
13192         * assembly.c (mono_assembly_load_reference): Fix warning.
13193
13194 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13195
13196         * threadpool.c: changed the default number of threads per cpu. From now
13197         on, the default will be 20 + (5 * number of cpus) instead of 50.
13198
13199 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
13200
13201         * loader.c (mono_method_get_signature_full): Add locking here.
13202
13203 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
13204
13205         * appdomain.c: Moved methods for parsing and freeing assembly
13206         names to assembly.c.
13207         * assembly.c, domain-internals.h: Created public methods for parsing
13208         assembly names. Fixed mono_assembly_load_with_partial_name:
13209         it now finds the best match, taking into account the version,
13210         token and culture specified in the partial name. Also return
13211         the latest version if no version information is specified.
13212
13213 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
13214
13215         * threadpool.c: replace check for SocketAsyncCall class.
13216
13217 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13218
13219         * threadpool-internals.h:
13220         * Makefile.am: added threadpool-internals.h
13221
13222         * threadpool.c: call mono_unhandled_exception on exceptions not handled
13223         that happen in threadpool threads (tested on MS).
13224         (mono_thread_pool_remove_socket): new function that dispatch any pending
13225         AIO call on a socket that is closing. By now only epoll really needs it,
13226         as select/poll wake up when the socket closes.
13227
13228
13229         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
13230
13231 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
13232
13233         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
13234
13235 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
13236
13237         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
13238
13239 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
13240
13241         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
13242         has an abort request, convert it into a suspend request.
13243
13244 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
13245
13246         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
13247         warning for the usage of `UnmanagedFunctionPointerAttribute' which
13248         is not supported yet.
13249
13250 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13251
13252         * image.c: register assemblies loaded from data (bundles) in the loaded
13253         assemblies hash. Fixes bug #74772.
13254
13255 2005-04-29  Martin Baulig  <martin@ximian.com>
13256
13257         * class.c (mono_type_get_name_recurse): Update to the new naming
13258         schema from the latest .NET 2.x beta2.
13259         (mono_class_setup_vtable_general): If we're a generic instance,
13260         copy the vtable from our generic type definition and inflate all
13261         the methods in it.
13262
13263         * loader.c (find_method): Update to the new naming schema from the
13264         latest .NET 2.x beta2.
13265
13266 2005-04-29  Raja R Harinath  <harinath@gmail.com>
13267
13268         * class.c (mono_class_init): Add a mono_loader_unlock to the
13269         #74734 fix.
13270
13271 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
13272
13273         * icall.c (ves_icall_System_Environment_Exit): Remove the 
13274         suspend_all_other_threads () call for the time being, since it can hang.
13275
13276         * threads.c (mono_thread_manage): Similarly, disable the waiting for
13277         the background threads to exit, since it can also hang.
13278
13279         * class.c (mono_class_init): Applied patch from Ankit Jain 
13280         (radical@gmail.com). Avoid pending init errors when a field refers
13281         to a nested class using a typeref. Fixes #74734.
13282
13283         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
13284         this for dynamic modules.
13285
13286 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13287
13288         * threads.c: don't wait for threads that are in the process of aborting
13289         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
13290         and waiting for background threads to finish. This makes xsp and
13291         mod-mono-server exit without random length delays and/or hangs.
13292
13293 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13294
13295         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
13296
13297 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
13298
13299         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
13300         dynamic types to prevent infinite loops. Fixes #74727.
13301
13302         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
13303         ..._is_assignable_to.
13304
13305 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
13306
13307         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
13308
13309 2005-04-25  Martin Baulig  <martin@ximian.com>
13310
13311         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
13312
13313         * domain.c
13314         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
13315
13316         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
13317
13318         * reflection.c (build_compressed_metadata): Set metadata header
13319         version to 2.0.
13320
13321 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
13322
13323         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
13324         number into an integral and a decimal part. Fixes #70473.
13325
13326         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
13327
13328 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
13329
13330         * culture-info-table.h : reflected the latest locale-builder output.
13331
13332 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13333
13334         * threadpool.c: check for SuspendRequested too when deciding if
13335         mono_thread_interruption_checkpoint should be called.
13336
13337 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13338
13339         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
13340         * threads.c: remove interruption_mutex and use Interlocked instead. When
13341         suspending all the threads, wait for all the suspended events at once.
13342         If we're shutting down and get an APC that is going to be queued,
13343         call mono_thread_execute_interruption immediately, as the thread might
13344         be sleeping on a pthread condition or mutex.
13345
13346         * icall.c: call mono_runtime_set_shutting_down before suspending the
13347         threads.
13348
13349         Fixes bug #74693. And now xsp is happier when exiting.
13350
13351 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
13352
13353         * loader.c (mono_stack_walk): Fix #74690.
13354
13355 2005-04-22  Martin Baulig  <martin@ximian.com>
13356
13357         * mono-debug.h (MonoDebugMethodJitInfo): Added
13358         `MonoDebugMethodJitInfo *jit'.
13359
13360         * mono-debug.c (mono_debug_read_method): Cache the
13361         MonoDebugMethodJitInfo in `address->jit'.
13362         (mono_debug_free_method_jit_info): New public method.
13363
13364 2005-04-22  Martin Baulig  <martin@ximian.com>
13365
13366         * class.c (mono_class_is_assignable_from): Disallow
13367         type parameter -> interface.
13368
13369 2005-04-21  Dick Porter  <dick@ximian.com>
13370
13371         * threads.c (mono_thread_create): Turn an assertion into an error.
13372
13373 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
13374
13375         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
13376         
13377         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
13378         Fix some gcc 4.0 warnings.
13379
13380 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
13381
13382         * file-io.c: fix alt dir separator char on unix systems
13383         and cleanup (fixes bug #71214).
13384
13385 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
13386
13387         * marshal.c: Use CALLVIRT instead of CALL when dispatching
13388         a call to a remote domain, since the method may be an
13389         interface method in the client domain. This fixes bug #74192.
13390
13391 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13392
13393         * threadpool.c: recv/send are now performed before going back to managed
13394         code to save one transition.
13395
13396 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13397
13398         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
13399
13400         * metadata/threadpool.c: removed hack to workaround the bug above.
13401
13402         Fixes bug #74618.
13403
13404 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
13405
13406         * reflection.c reflection.h: Fix handling of parameter defaults in
13407         dynamic methods. Also fixes handling of parameter attributes.
13408         Fixes #74609.
13409
13410         * mono-debug.c (mono_debug_close_image): Fix warning.
13411
13412 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13413
13414         * socket-io.h: replaced old unused field with new 'blocking'.
13415         * threadpool.c: restore socket blocking state on windows(tm).
13416
13417 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
13418
13419         * icall.c: don't return the codebase in the AssemblyName[] returned by
13420         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
13421         * object-internals.h: Removed FIXME (fields were presents) and fixed
13422         versioncompat declaration.
13423
13424 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13425
13426         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
13427         not closed, so don't cleanup when it happens.
13428
13429 2005-04-13  Chris Toshok  <toshok@ximian.com>
13430
13431         * mono-debug-debugger.h: change prototype for
13432         mono_debugger_lookup_type.
13433
13434         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
13435         this function, although it should probably be named
13436         mono_debugger_init_type.
13437
13438 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13439
13440         * threadpool.c: fix non-AIO case.
13441
13442 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
13443
13444         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
13445         the built-in profiler to measure just JIT compilation times.
13446
13447 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13448
13449         * threadpool.c: the epollfd might be closed by another thread at
13450         any time, so ignore EBADF at treat it as a "we're closing" sign.
13451
13452 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13453
13454         * threadpool.c: release the semaphores with a count equals to the number
13455         of working threads in both IO and regular pools. Fixed typo that messed
13456         up the count of IO pool threads. Don't initialize the pipe handles if
13457         we're using epoll.
13458
13459 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13460
13461         * threadpool.c: some systems don't like a NULL when deleting the socket
13462         from epoll.
13463
13464 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13465
13466         * threadpool.c: fix semaphore allocation.
13467
13468 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13469
13470         * threadpool.c: added epoll() based implementation for asynchronous IO
13471         that is used instead of the default poll() when available.
13472         It can be disabled by setting MONO_DISABLE_AIO.
13473
13474 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13475
13476         * threadpool.c: windows needs 'closesocket' and instead of returning
13477         0 when the stream is closed while in select, it returns -1. Fixes bug
13478         #74573.
13479
13480 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
13481
13482         * class.c (class_compute_field_layout): Fix the regression caused by
13483         the previous try.
13484
13485 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13486
13487         * threadpool.c: separate pool for socket async. IO.
13488         * threadpool.h: mono_max_worker_threads is not a global any more.
13489
13490 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
13491
13492         * class.c (class_compute_field_layout): Fix #74549.
13493
13494 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13495
13496         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
13497         use 2 connected sockets instead.
13498
13499 2005-04-08  Miguel de Icaza  <miguel@novell.com>
13500
13501         * mono-config.c: Add new entry point for mkbundle
13502         mono_config_parse_memory. 
13503
13504 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13505
13506         * threadpool.c: removed another unused function.
13507
13508 2005-04-08  Ankit Jain  <radical@corewars.org>
13509
13510         * reflection.c (get_default_param_value_blobs): Add 'types'
13511         parameter to get the types encoded in the constant table.
13512         (mono_param_get_objects): Use the type from the constant table,
13513         not the type of the parameter, when creating default values.
13514         Handle null default values correctly.
13515
13516 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13517
13518         * file-io.c:
13519         * file-io.h:
13520         * threadpool.c:
13521         * threadpool.h:
13522         * icall.c:
13523         * socket-io.c: removed dead code for async IO.
13524
13525 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13526
13527         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
13528
13529         * threadpool.c: intercept socket async. calls and pass them to a thread
13530         that is polling and dispatching the job items to the threadpool as
13531         socket become ready. Fixes bugs #71217, #71933.
13532
13533         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
13534         between char and short/ushort arrays.
13535
13536         * socket-io.c: remove dead code.
13537
13538 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13539
13540         * locales.c,
13541           icall.c : removed InternalToUpper_Comp() and
13542           InternalToLower_Comp().
13543
13544 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13545
13546         * char-conversions.h : The tables were incorrectly generated. Should
13547           be generated against invariant culture.
13548
13549 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
13550
13551         * object.c (mono_runtime_invoke_array): Fix return value when 
13552         passing pre-created valuetype objects to ctors.
13553
13554         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
13555         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
13556         Fixes #74338.
13557
13558 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
13559
13560         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
13561         only used with --security and hides the wrong corlib version error.
13562
13563 2005-03-30  Joshua Tauberer  <tauberer@for.net>
13564
13565         * class.c: Changed mono_class_name_from_token so that types
13566         outside of a namespace don't have an initial period.  Improved
13567         the g_warning message used in _mono_class_get when loading
13568         fails.
13569         * assembly.c: In mono_assembly_load_reference, when an assembly
13570         can't be found, "No such file or directory" is misleading and
13571         unhelpful because a few paths were checked for the presence of
13572         the assembly.  When that happens (ENOENT), display a nicer
13573         message indicating the directories that were searched.  In all
13574         cases, the warning is made easier to read for non-hackers.
13575
13576 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
13577
13578         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
13579         project/solution.
13580         * appdomain.h|domain.c: Removed inline from functions.
13581         * appdomain.c: Reduced warnings when compiling on windows.
13582         * icall.c: Fixed output_debug declaration to gunichar2*.
13583         * mono-config.c: Reduced warnings when compiling on windows.
13584         * rand.c: Added missing "windows.h". Added missing return value.
13585         * rawbuffer.c: Added missing winsock2.h for windows.
13586         * sysmath.h: Added mono-compiler.h header to allow/ease 
13587         compilation with non-GCC compilers.
13588         * threads.c: Fixed declarations to compile with VS.NET C compiler.
13589         Removed cast warnings.
13590
13591         Adapted from the work of J Lothian (for VC6).
13592
13593 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
13594
13595         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
13596         from default_path.
13597
13598 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
13599
13600         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
13601         the 2.0 profile.
13602
13603 2005-03-27  Raja R Harinath  <harinath@gmail.com>
13604
13605         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
13606         has to be in $(exec_prefix).  $(prefix) is for arch-independent
13607         stuff, and it would probably use $(prefix)/share rather than
13608         $(prefix)/lib.
13609
13610 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13611
13612         * console-io.c: added 2 includes that might be missing.
13613
13614 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
13615
13616         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
13617         profile.
13618
13619         * reflection.c (create_custom_attr): Allocate the params array using
13620         alloca so it gets GC tracking.
13621
13622 2005-03-23  Chris Toshok  <toshok@ximian.com>
13623
13624         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
13625         out some spew.
13626
13627 2005-03-24  Raja R Harinath  <rharinath@novell.com>
13628
13629         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
13630         changes to pick up any changes in prefix, etc.
13631
13632 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
13633
13634         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
13635         
13636         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
13637         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
13638
13639 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
13640
13641         * class-internals.h object-internals.h class.c reflection.c: Extend the
13642         mono_lookup_dynamic_token () function to return the class of the
13643         token as well. 
13644
13645         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
13646         well. Fixes #73848.
13647
13648 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
13649
13650         * security-manager.c: Skip inheritance checks for intra-corlib
13651         class inheritance and method overrides. This skips a lot of checks
13652         and (anyway) permissions cannot work until corlib is loaded.
13653
13654 2005-03-23  Martin Baulig  <martin@ximian.com>
13655
13656         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
13657         MONO_TYPE_GENERICINST.  
13658
13659 2005-03-23  Martin Baulig  <martin@ximian.com>
13660
13661         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
13662
13663 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13664
13665         * class.c: added locking comments to some functions.
13666         Cache the interface offsets arrays (saves about 20 KB
13667         of runtime memory in a typical app).
13668         Reduce the time overhead in mono_class_setup_supertypes ().
13669
13670 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
13671
13672         * icall.c: speedup and fix leaks in GetMethodsByName and
13673         GetPropertiesByName.
13674
13675 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13676
13677         * reflection.c: some locking fixes.
13678
13679 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13680
13681         * metadata.c: added missing break in case statement.
13682
13683 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
13684
13685         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
13686         typedbyref return values. Fixes #73941.
13687
13688 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
13689
13690         * security-manager.c|h: Added demandunmanaged method and 
13691         suppressunmanagedcodesecurity class to MonoSecurityManager.
13692         Renamed aptc class to allowpartiallytrustedcallers.
13693
13694 2005-03-17  Martin Baulig  <martin@ximian.com>
13695
13696         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
13697
13698 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13699
13700         * file-io.c: disabled file async. IO using aio_*. It uses the
13701         threadpool now. Workaround for bug #73718.
13702
13703 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13704
13705         * assembly.h, mono-config.c: added code to deal with bundled configs
13706         for bundled assemblies.
13707
13708 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
13709
13710         * *.c, private.h: cleanup, removing old private.h header file.
13711
13712 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
13713
13714         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
13715         and throw_on_unmappable_char attributes.
13716
13717 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
13718
13719         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
13720         _ProcessName_internal.
13721
13722 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
13723
13724         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
13725         #73631.
13726
13727         * icall.c threads.c threads-types.h: Remove slothash icalls as they
13728         are no longer used.
13729
13730 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
13731
13732         * object.c (compute_class_bitmap): Add support for generics. Fixes
13733         #73527.
13734
13735 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
13736
13737         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
13738
13739 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13740
13741         * filewatcher.c: commented out the code for windows watcher, as we don't
13742         use it (we use the managed implementation instead).
13743
13744 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
13745
13746         * object-internals.h (MonoThread): Remove 'unused1' field.
13747
13748         * appdomain.c: Bump corlib version.
13749
13750         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
13751
13752         * reflection.c (mono_reflection_create_runtime_class): Remove the
13753         AssemblyBuilder.Save optimization since it causes too many problems.
13754
13755 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
13756
13757         * exception.c|h: Added mono_get_exception_reflection_type_load to
13758         create a ReflectionTypeLoadException object.
13759         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
13760         to return NULL is a InheritanceDemand fails during reflection. Updated
13761         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
13762         ReflectionTypeLoadException if an InheritanceDemand fails during 
13763         reflection. Added icall mapping for GetLinkDemandSecurity.
13764         * security-manager.c|h: Added ves_icall_System_Security_
13765         SecurityManager_GetLinkDemandSecurity internal call to return the
13766         class and methods permissions set for a LinkDemand. Removed unused
13767         fields in MonoSecurityManager.
13768
13769 2005-03-10  Martin Baulig  <martin@ximian.com>
13770
13771         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
13772         it's a generic instance.
13773
13774 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
13775
13776         * reflection.c (mono_get_object_from_blob): Applied patch from
13777         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
13778
13779         * class.c (mono_class_is_assignable_from): Another try at fixing 
13780         #73469 without breaking anything.
13781
13782 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
13783
13784         * class.c: (mono_class_is_assignable_from): Revert the last changes
13785         since they don't work with generics.
13786         
13787         * class.c (mono_class_is_assignable_from): Fix build bustage.
13788
13789         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
13790         the managed IsAssignableFrom method. Fixes #73469.
13791
13792         * reflection.c (mono_reflection_call_is_assignable_from): New helper
13793         function.
13794
13795 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
13796
13797         * object.c (mono_load_remote_field_new): Fix returning uninitialized
13798         memory when the remoting callback does not sets the out arguments.
13799         Fixes #73007.
13800
13801         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
13802         by mistake.
13803
13804         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
13805
13806         * object-internals.h (MonoStackFrame): Sync with managed object layout.
13807
13808         * appdomain.c: Bump corlib version.
13809
13810 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
13811
13812         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
13813         function.
13814
13815         * threads.c (mono_thread_attach): Detect threads which are not started
13816         by the GC pthread wrappers.
13817
13818 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
13819
13820         * icall.c: Added new icall for RNG.
13821         * rand.c|h: Added new icall to open the RNG. This allows to share a 
13822         single handle on Linux to access /dev/urandom and fix #73183.
13823
13824 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
13825
13826         * object.c: setting the new vtable in a transparent proxy object must
13827         not change the GC descriptor.
13828
13829 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13830
13831         * object.c: fixed compilation without GCJ support.
13832         * reflection.c: for runtime-created types ensure klass->has_references
13833         is correct (bug #73215).
13834
13835 2005-03-02  Martin Baulig  <martin@ximian.com>
13836
13837         * class.c (mono_class_is_assignable_from): Make this work if
13838         `oklass' is a generic instance; fixes #72831.
13839
13840 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
13841
13842         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
13843         with hasthis set.
13844         
13845         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
13846
13847         * marshal.c: Reorganize native->managed marshalling code to also use
13848         the emit_marshal_... functions.
13849
13850 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
13851
13852         * object.c: typed allocs have issues with bitmap sizes > 30,
13853         so check for max_set >= 30.
13854
13855 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
13856
13857         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
13858         managed code. Fixes #73012.
13859
13860         * metadata.h (MonoMarshalSpec): Add elem_mult field.
13861
13862         * metadata.c reflection.c: Load/Emit elem_mult as well.
13863         
13864         * metadata.h (MonoMarshalSpec): Add comment.
13865
13866         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
13867
13868         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
13869         num_elem to -1 if not given.
13870
13871         * object-internals.h (MonoReflectionMarshal): Add has_size field.
13872
13873         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
13874         given values.
13875
13876 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
13877
13878         * null-gc.c (mono_gc_free_fixed): Was not compilable.
13879
13880 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
13881
13882         * reflection.c (encode_marshal_blob): Encode param_num field as well.
13883
13884         * object-internals.h (MonoReflectionMarshal): Add param_num field.
13885
13886 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
13887
13888         * object.c: generalized the reference bitmap creation
13889         and added hooks for the new GC.
13890         * class-internals.c: removed the gc_bitmap field from MonoClass.
13891
13892 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13893
13894         * domain.c: help the compiler to produce better code
13895         in mono_jit_info_table_find ().
13896
13897 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
13898
13899         * object.c: make all allocations look typed.
13900
13901 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13902
13903         * socket-io.c: load Mono.Posix if it's not loaded already
13904         (fixes bug#73033).
13905
13906 2005-02-24  Martin Baulig  <martin@ximian.com>
13907
13908         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
13909         * reflection.c (dup_type): Likewise.
13910
13911 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
13912
13913         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
13914         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
13915
13916 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13917
13918         * domain.c, threads.c, object-internals.h: make the critical thread
13919         local vars use the fast access mode (even when we're compiled in
13920         a lib). Provide accessors to be used by the jit during codegen.
13921
13922 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13923
13924         * appdomain.c: Changed hook functios behavior to include
13925         support for the reflection only assemblies. Some icalls were changed
13926         to support the mentioned assemblies too. Signatures of static methods
13927         try_assembly_resolve and real_load now have an additional parameter:
13928         refonly.
13929
13930         * assembly.c: General changes to mono_assembly_ methods to support
13931         reflection only api. Functions mono_assembly_open, mono_assembly_load,
13932         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
13933         suffix, to support an additional gbool parameter to specify whether
13934         the assembli is reflection only or not. Created some new hook functions 
13935         to add support for reflection only assemblies. Signatures of static 
13936         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
13937         have now an additional parameter: refonly.
13938
13939         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
13940         indicating whether the assembly is reflection only or not.
13941
13942         * exception.c: Add mono_get_exception_invalid_operation.
13943
13944         * icall.c: Throw an InvalidOperationException when trying to invoke
13945         a property/method/event, or trying to set/get the value of a field.
13946         Also add an icall to retrieve the ref_only flag to the
13947         MonoReflectionAssembly.
13948
13949 2005-02-23  Chris Toshok  <toshok@ximian.com>
13950
13951         Part of fix for #72827.
13952         * mono-debug.c (mono_debug_add_method): add lexical block data to
13953         the info we write.  Kind of a hack at the moment - we copy the
13954         lexical block info from the MonoDebugMethodInfo to the
13955         MonoDebugMethodJitInfo here, before writing it.
13956         (mono_debug_read_method): read the lexical block info.
13957
13958         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
13959
13960         * debug-mono-symfile.h: add lexical block support.
13961
13962         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
13963         support.
13964
13965 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
13966
13967         * loader.c (mono_lookup_pinvoke_call): Fix warning.
13968
13969         * object.c (mono_runtime_free_method): Call mono_free_method () and
13970         put the TODOs there.
13971
13972         * loader.c (mono_free_method): Free up most memory allocated for 
13973         dynamic methods.
13974
13975 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
13976
13977         * reflection.c: properly flag a Type argument to a
13978         named custom attr value (bug #72248).
13979
13980 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13981
13982         * reflection.c: reduce code duplication in named custom
13983         attribute encoding.
13984
13985 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
13986
13987         * reflection.c: properly encode custom attrs of type object
13988         (bug #72649).
13989
13990 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
13991
13992         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
13993
13994 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
13995
13996         * socket-io.c: load System.dll if it's not loaded already
13997         (bug #72850 and #70477).
13998
13999 2005-02-21  Martin Baulig  <martin@ximian.com>
14000
14001         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
14002         generic instances.
14003
14004 2005-02-21  Martin Baulig  <martin@ximian.com>
14005
14006         * reflection.c (mono_image_build_metadata): We also need to
14007         "fixup" the MethodImpl table after we computed the final method
14008         indices.  Call fixup_methodimpl() to do that.
14009         (fixup_methodimpl): New private method.
14010
14011 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
14012
14013         * assembly.c: special case mscorlib.dll (bug#72536),
14014         patch from Carlos Alberto Cortez.
14015
14016 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
14017
14018         * threads-types.h threads.c: Fix build bustage.
14019
14020         * threads.c: Use a union for long<->double conversions.
14021
14022         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
14023         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
14024
14025         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
14026         containing the checkpoint call with NOT_TAKEN.
14027         
14028         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
14029         checkpoint before pushing the arguments, so they won't have to be
14030         spilled to stack.
14031
14032 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14033
14034         * domain.c, assembly.c, domain-internals.h: make some data
14035         const and relocation-free.
14036
14037 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
14038
14039         * object.c, appdomain.c, class-internals.h: introduce the
14040         MonoClassRuntimeInfo structure to hold the info needed to
14041         use a class at runtime. Made mono_class_vtable() lock-free
14042         for all the appdomains.
14043
14044 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
14045
14046         * metadata-internals.h, image.c: introduce a per-image mempool to
14047         be used for memory that has the same lifetime as the image.
14048
14049 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
14050
14051         * domain.c: In mono_init_internal(), instead of selecting the first
14052         runtime version supported by an executable, get a list of all
14053         supported versions and select the one for which an mscorlib exists
14054         (since even if the runtime supports a given version, it doesn't mean
14055         that the framework for that version is installed).
14056         Modified get_runtimes_from_exe to support this behavior.
14057         In supported_runtimes, added information about additional system
14058         assembly versions.
14059         
14060         * assembly.c: Added support for more than one system assembly version
14061         per runtime version. Updated the assembly list.
14062         In mono_assembly_remap_version, removed the initial version check,
14063         since we don't know to which version we need to compare until we
14064         get the version set on which the assembly is based.
14065         Moved the code for loading corlib into the new method
14066         mono_assembly_load_corlib(), so it can be used by the initialization
14067         code.
14068         
14069         * domain-internals.h: Updated data structures and added declaration
14070         for mono_assembly_load_corlib.
14071
14072 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14073
14074         * reflection.c (resolve_object): Fix the creation of the signature in 
14075         the SignatureHelper case.
14076
14077         * assembly.c (mono_assembly_remap_version): Fix binary search.
14078         
14079 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
14080  
14081         * class.c: Added inheritance check when a method is overloaded (from a
14082         virtual method or when implementing an interface) and when a class is
14083         inherited. Added functions to set a failure for a class and to 
14084         retreive the exception from a failure.
14085         * class-internals.h: Added fields to MonoClass to keep the exception
14086         information status for inheritance (or other exceptions) to be thrown
14087         later (i.e. not at load time).
14088         * object.c: Throw the inheritance SecurityException when a type is to 
14089         be created with either class or method inheritance violations.
14090         * reflection.c|h: Fix when getting declsec from a class. Removed 
14091         unrequired code for class. Improved sanity in parameter naming.
14092         * security-manager.c|h: Added functions to check for class and method
14093         inheritance.
14094
14095 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
14096
14097         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
14098         and has_finalize in dynamic types as well.
14099
14100 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
14101
14102         * culture-info-table.h : fixed currency format for en-GB (and so on).
14103
14104 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
14105
14106         * gc.c: ensure the GC handles never have 0 as a value.
14107
14108 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14109
14110         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
14111         a pointer to a struct to unmanaged code. Fixes #72625.
14112
14113 2005-02-16  Martin Baulig  <martin@ximian.com>
14114
14115         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
14116
14117 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
14118
14119         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
14120
14121 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14122
14123         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
14124
14125         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
14126         UnmanagedFunctionPointerAttribute, use it for determining calling convention
14127         etc. Fixes #71471.
14128
14129         * reflection.c (mono_custom_attrs_get_attr): New helper function.
14130
14131         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
14132
14133 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
14134
14135         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
14136         changes to make the current context a field in MonoThread.
14137
14138 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
14139
14140         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
14141         the last change.
14142         
14143         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
14144         extracted from mono_marshal_get_native_wrapper.
14145
14146         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
14147         to create wrappers around native functions.
14148
14149         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
14150         delegates for arbitrary function pointers. Fixes #71472.
14151
14152 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14153
14154         * threads.c: cleaned up the code a little.
14155
14156 2005-02-15  Martin Baulig  <martin@ximian.com>
14157
14158         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
14159         the data table.
14160
14161         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
14162         allocate larger chunks if needed.
14163
14164 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14165
14166         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
14167         in by mistake.
14168
14169 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
14170
14171         * domain.c: keep the domains in an array and ensure the domain ids
14172         are kept small, so they can be used as indexes to domain-specific data
14173         with a small memory overhead.
14174
14175 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * icall.c: Handle byref types in Type icalls. Fixes #72544.
14178
14179 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
14180
14181         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
14182
14183 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
14184
14185         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
14186
14187         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
14188         values.
14189
14190         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
14191         
14192 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
14193
14194         * domain-internals.h: add the hashtable here.
14195
14196         * class-internals.h: Remove `info' from MonoMethod
14197
14198         * domain.c: Add a new hashtable, jit_trampoline_hash
14199
14200 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14201
14202         * object.c: don't set the value of static fields
14203         (fixes bug#72494).
14204
14205 2005-02-11  Martin Baulig  <martin@ximian.com>
14206
14207         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
14208         (mono_debug_add_method): Silently ignore the method if it's too big.
14209         (mono_debug_add_type): Likewise.
14210
14211 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
14212
14213         * threads.c, appdomain.c: remove #ifdefs from the code.
14214
14215 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
14216
14217         * metadata-internals.h: Added flags to MonoAssembly to cache the most
14218         common security informations. This allows us to stay in unmanaged code
14219         when doing LinkDemand and it's special cases (except for the first 
14220         time for initialization). The flags a very much used with --security.
14221         * reflection.c|h: Added code to get declarative security attributes 
14222         for LinkDemand and InheritanceDemand. This required to refactor the
14223         existing code for Demand.
14224         * security-manager.c|h: Added new method fields for the special cases
14225         of LinkDemand.
14226
14227 2005-02-10  Martin Baulig  <martin@ximian.com>
14228
14229         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
14230         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
14231
14232 2005-02-10  Martin Baulig  <martin@ximian.com>
14233
14234         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
14235         debugging code; this is almost a complete rewrite.
14236
14237         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
14238
14239 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14240
14241         * domain.c, object.h: expose mono_string_equal () and 
14242         mono_string_hash ().
14243         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
14244         it's implemented in managed code.
14245
14246 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14247
14248         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
14249         lo leak objects between appdomains.
14250
14251 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14252
14253         * assembly.c: old compilers compilation fix from 
14254         robertj@gmx.net (Robert Jordan).
14255
14256 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
14257
14258         * class-internals.h: Little reminder for the future.
14259
14260         * debug-helpers.c: Fix up wrapper_type_names
14261
14262 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14263
14264         * image.c, metadata-internals.h: when loading an image from a file,
14265         mmap all of it and use the same codepaths as when using a
14266         in-memory image: the code is simpler and we use less memory
14267         (both writable and readonly).
14268
14269 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14270
14271         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
14272         API to alloc runtime data structures that need to be tracked by the
14273         GC and contain pointers.
14274         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
14275         make the code more readable and eventually use a different GC.
14276
14277 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
14278
14279         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
14280         for out arguments.
14281         
14282 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
14283
14284         * object.c: In release_type_locks(), don't release the cctor lock
14285         if it has already been released. This fixes a crash in the
14286         thread5 test.
14287
14288 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14289
14290         * gc.c, marshal.c, icall.c: register a delegate for finalization
14291         only when the native function pointer has been allocated for it.
14292
14293 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14294
14295         * object.c: cleaned up some code, allocate objects that are
14296         pointer free with the atomic malloc variant. Allocate memory
14297         for static data from the mempool if it's pointer-free.
14298         Allocate the bounds array at the end of the array data, when needed.
14299         * object-internals.h, object.h: move a private function in a private
14300         header.
14301         * class.c: handle missing case in tracking references in fields.
14302
14303 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14304
14305         * class.c, class-internals.h: keep track if a type has
14306         reference fields in either the instance or static fields.
14307
14308 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
14309
14310         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
14311         and renamed to MonoRuntimeInfo. Added fields to store the expected
14312         framework assembly version. Changed mono_get_framework_version and
14313         mono_get_runtime_version for a single mono_get_runtime_info method.
14314         
14315         * assembly.c: Added method to remap system assembly versions to the
14316         current executing runtime version. Removed old mapping code.
14317         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
14318         
14319         * icall.c, reflection.c: Track api changes.
14320
14321 2005-02-06  Miguel de Icaza  <miguel@novell.com>
14322
14323         * loader.c (method_from_memberref): Improve error reporting,
14324         produce the class name instead of the typeref/typedef index. 
14325
14326 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
14327
14328         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
14329
14330 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14331
14332         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
14333         stdcall and charset name mangling.  Reorganize the code and add
14334         some tracing stuff.
14335
14336 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14337
14338         * monodiet.c: More iters!
14339
14340         * marshal.c: Iter usage.
14341
14342         * icall.c: Iter usage.
14343
14344         * object.c: Use iters.
14345
14346         * debug-helpers.c: More iters
14347
14348 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14349
14350         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
14351         under win32.
14352
14353 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14354
14355         * mono-debug-debugger.c: use iters
14356
14357         * class.c, class-internals.h: mono_class_setup_events is static
14358         now
14359
14360         * All callers: use iters
14361
14362 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14363
14364         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
14365         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
14366
14367 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14368
14369         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
14370
14371         * marshal.h: Add prototypes for ldfld/stfld_remote.
14372
14373         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
14374         this is called during startup.
14375         
14376 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
14377
14378         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
14379         MonoThreadsSync struct private in monitor.c. Changed the way
14380         MonoThreadsSync is allocated so it's faster and there is no
14381         need to keep track of it with a finalizer and it uses less memory.
14382         This also finally allows us to allocate mono objects as ptrfree when
14383         there are no reference fields.
14384
14385 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
14386
14387         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
14388         disappearing link to the GC interface and use them to simplify
14389         the gchandles code.
14390
14391 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14392
14393         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
14394         stfld_remote which call mono_load/store_field_new. This allows methods
14395         calling ldfld/stfld wrappers to be AOTed.
14396
14397         * console-io.c: Include sys/filio.h under solaris.
14398         
14399         * console-io.c: Include curses.h if needed correctly.
14400
14401 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14402         
14403         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
14404         method->klass as well.
14405
14406         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
14407
14408         * class.c (mono_class_init): Switch on lazy initialization of 
14409         methods.
14410
14411         * class.c (mono_class_get_finalizer): Handle the case when the 
14412         finalizer is inherited.
14413
14414 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14415
14416         * console-io.c: <curses.h> is needed by term.h on solaris.
14417
14418 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
14419
14420         * icall.c, class-internals.h, monodiet.c, class.c: Remove
14421         mono_class_setup_properties where possible. Remove this ftn from
14422         the header file, and make it static.
14423
14424 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14425
14426         * loader.c: Add missing setup_... call.
14427
14428         * class.c: Add missing setup_... calls.
14429
14430         * class.c (mono_class_init): Switch on lazy initialization of 
14431         the generic vtable.
14432         
14433         * class.c (mono_class_init): Fix generics broken by the recent changes.
14434
14435         * monodiet.c (handle_type): Add missing setup_... calls.
14436
14437         * class.c: Back out garbage in previous patch.
14438         
14439         * class.c: Add missing setup_... calls.
14440
14441         * class.c (mono_class_get_method_from_name_flags): Avoid calling
14442         mono_class_setup_methods () if possible.
14443
14444         * class-internals.h (MonoClass): Add 'has_cctor' flag.
14445
14446         * class-internals.h (MonoCachedClassInfo): New structure.
14447
14448         * class.c: Initialize properties and events fields of MonoClass lazily.
14449
14450         * class.c: Add infrastructure for lazily initializing the methods and
14451         vtable fields of MonoClass. Not yet used.
14452
14453         * class.c (mono_class_get_finalizer): New helper function.
14454
14455         * class.c: Add infrastructure for loading some class related data from
14456         an AOT file.
14457
14458         * object.c: Add infrastructure for initializing the vtable from data
14459         in the AOT file.
14460
14461         * gc.c (run_finalize): Use mono_class_get_finalizer ().
14462
14463         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
14464         appropriate initialization function before accessing parts of the
14465         MonoClass structure.
14466
14467         * marshal.c: Fix warnings.
14468         
14469         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
14470
14471         * mono-debug-debugger.c (get_exception_message): Use 
14472         mono_class_get_method_from_name_flags ().
14473
14474 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
14475
14476         * reflection.c, appdomain.c: Replace a few manual searches that
14477         Zoltan missed. (Paolo approved this part of my initial patch).
14478
14479 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
14480
14481         * profiler.c: disable recording statistical events at report time.
14482
14483 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14484
14485         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
14486         to byteswap arrays of enum values, too (bug #72080).
14487
14488 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
14489
14490         * appdomain.c (set_domain_search_path): Allow this to be called if
14491         domain->setup is not yet set.
14492
14493         * loader.c (mono_method_get_index): New helper function.
14494
14495         * loader.c reflection.c: Use mono_method_get_index ().
14496
14497         * class.c (mono_class_get_method_from_name_flags): New helper method.
14498
14499         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
14500         this.
14501
14502         * class.c (mono_class_get_cctor): New helper method.
14503
14504         * string-icalls.c object.c class.c marshal.c reflection.c: Use
14505         mono_class_get_method () to look up methods.
14506
14507 2005-02-01  Miguel de Icaza  <miguel@novell.com>
14508
14509         * console-io.c: Fix the build, this should work on Windows.
14510
14511 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
14512
14513         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
14514         be set to null to keep things valid
14515
14516 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14517
14518         * icall.c: added Console 2.0 icalls.
14519         * Makefile.am: added console-io.[ch]
14520         * console-io.[ch]: internal calls for Console 2.0 API.
14521
14522 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14523
14524         * class.c: make sure we consider all the interfaces
14525         when calculating max_interface_id (bug found by
14526         Jeroen Frijters running ikvm).
14527
14528 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
14529
14530         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
14531         valuetype fields to null.
14532
14533         * object.c (set_value): Ditto. Fixes #71669.    
14534
14535 2005-01-31  Martin Baulig  <martin@ximian.com>
14536
14537         * metadata.c (mono_metadata_has_generic_params): New public
14538         function; checks whether something is a generic method.
14539
14540 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
14541
14542         * appdomain.c: fix infinite recursion when adding assemblies.
14543
14544 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
14545
14546         * object.c: Fix small typo to return all items for Environment.
14547         GetCommandLineArgs.
14548
14549 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14550
14551         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
14552         reflection.c: more domain and assembly-unload related fixes
14553         and memory leaks plugs.
14554
14555 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
14556
14557         * 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.
14558
14559 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
14560
14561         * loader.c (mono_method_signature): Make this method lazy
14562         (mono_get_method_from_token): Don't computate the signature here.
14563
14564         Doing this saves quite a bit of memory. I got 90 kb on starting up
14565         monodoc. It should also save some disk reads on startup.
14566
14567         * *: MonoMethod->signature might be NULL now. You *MUST* use
14568         mono_method_signature.
14569
14570 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
14571
14572         * object.c (mono_runtime_get_main_args): Return an array from the
14573         current domain here. Fixes #71938.
14574
14575 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
14576
14577         * monitor.c: formatting changes to comply with the
14578         mono coding style and remove #ifdefs from the code.
14579
14580 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14581
14582         * metadata.c, private.h: remove some unneeded data
14583         and use a more compact representation for table schemas.
14584
14585 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
14586
14587         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
14588         to get a better distribution in hash tables.
14589         * *.c: use mono_aligned_addr_hash() where appropriate.
14590         * assembly.c: make var static.
14591
14592 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
14593
14594         * domain-internals.h: Put MonoJitInfo on a diet.
14595
14596         * domain.c: Fix a warning.
14597
14598 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14599
14600         * gc.c: rework the gc handles code to reuse handles
14601         when freed.
14602
14603 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14604
14605         * domain.c: fixed long standing bug in mono_string_equal() which
14606         was brought to light with the ldstr changes.
14607
14608 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
14609
14610         * reflection.c: Remove warning by adding missing include for marshal.h
14611
14612 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14613
14614         * domain.c, object.c: change the ldstr_table to hold
14615         MonoString* as keys: makes the runtime isinterned lookup
14616         faster and simplifies memory management.
14617
14618 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
14619  
14620         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
14621         possible to add imperative security checks before calling the icall.
14622         * reflection.c: Return security attributes on the original MonoMethod
14623         (and not the wrapped one). This fix permissions on icalls.
14624
14625 2005-01-25  Dick Porter  <dick@ximian.com>
14626
14627         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
14628         the check for mktime() support actually test the mktime() return
14629         value.  "Fixes" bug 71682, though the output is still different to
14630         MS.
14631
14632 2005-01-25  Martin Baulig  <martin@ximian.com>
14633
14634         * class.c (mono_class_is_assignable_from): Make this work for
14635         generic instances.
14636
14637 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
14638
14639         * marshal.c (mono_string_utf8_to_builder)
14640         (mono_string_builder_to_utf16): We might not have ownership of the
14641         string. In thise case, we need to create a new buffer.
14642
14643         * object-internals.h (mono_stringbuilder_capacity): sb->str might
14644         be null, in which case, use the default capacity.
14645
14646 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14647
14648         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
14649         GC events to the profiler.
14650
14651 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14652
14653         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
14654         if you don't want the GC to run.
14655
14656 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
14657
14658         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
14659         start providing a GC API and keeping different implementations in
14660         their own file.
14661         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
14662
14663 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
14664
14665         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
14666         mmap rather than allocating a huge buffer.
14667         (mono_debug_close_mono_symbol_file): Free the buffer allocated
14668         above.
14669
14670 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
14671
14672         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
14673         and CheckExecutionRights.
14674         * reflection.c|h: Keep the index of the declarative security to be 
14675         used, instead of the pointer, when AOT compiler is used. Also add 
14676         class initialization when requesting demands.
14677         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
14678         CheckExecutionRights. Both properties are now FALSE by default, and
14679         unmodifiable, unless the --security option is used.
14680
14681 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14682
14683         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
14684         reflection.c: properly refcount images and assemblies, many leaks fixed.
14685
14686 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14687
14688         * threadpool.c: increase the timeout for threads in the thread pool to
14689         10s.  Fixes bug #67159.
14690
14691 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14692
14693         * class-internals.h: Sun's compiler insists on explicit
14694         signed on bit fields to handle then correctly.
14695
14696 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14697
14698         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
14699         Make the size of the array fit only the number of invalid path
14700         chars that we have.
14701
14702         * class.c (_mono_class_get): Improve the error reporting when a
14703         class referenced is not found, to assist debugging. 
14704
14705 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
14706
14707         * threads.c: fix off-by-one error.
14708         * domain.c: free data allocated in the domain.
14709
14710 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
14711
14712         * reflection.c (mono_method_body_get_object): Fill out exception info
14713         as well.
14714
14715         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
14716         structure.
14717         
14718 2005-01-19  Martin Baulig  <martin@ximian.com>
14719
14720         * loader.c (mono_get_method_constrained): Make this work again.
14721
14722 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
14723
14724         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
14725         guint16 to match the managed side.
14726
14727         * reflection.c (mono_reflection_body_get_object): Fill out local
14728         variables array.
14729
14730         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
14731         as well.
14732
14733         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
14734         'local_var_sig_token'.
14735
14736 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
14737
14738         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
14739         System.Drawing.
14740
14741         * reflection.c (mono_method_body_get_object): Handle abstract and
14742         runtime methods.
14743
14744 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
14745
14746         * marshal.c, loader.c, class-internals.h, reflection.c:
14747         store the emthod data for a wrapper in an array instead of a list.
14748
14749 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
14750
14751         * marshal.c: change the code to allocate memory more
14752         conservatively for method wrappers.
14753
14754 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
14755
14756         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
14757         fields from MonoClass to the marshal info structure where they belong.
14758
14759 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14760
14761         * class.c, object.c, class-internals.h, marshal.c: rearrange
14762         some fields and tweak some types to lower memory usage.
14763
14764 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
14765
14766         * threads.c (signal_thread_state_change): Handle the case when the
14767         target thread is the current thread.
14768
14769         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
14770
14771         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
14772         emit_ptr_to_object_conv. 
14773
14774         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
14775         marshalling. Fixes #71352.
14776
14777 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14778
14779         * metadata.h, blob.h: move table enum to blob.h so it can be included
14780         in any header.
14781         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
14782         cut the size of MonoImage/MonoDynamicImage.
14783
14784 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
14785
14786         * profiler.c (mono_profiler_install_simple): Fix default arguments.
14787
14788 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
14789
14790         * reflection.c, reflection.h, icall.c: add a function to check
14791         if an attribute type is defined for a metadata object.
14792
14793 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
14794
14795         * object-internals.h: Added some needed fields from StringBuilder class.
14796         * marshal.c: Set the maxCapacity when creating a StringBuilder.
14797
14798 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
14799
14800         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
14801         threads before shutting down the runtime.
14802
14803         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
14804
14805 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14806
14807         * object-internal.h, threads.c: implement stacksize and 
14808         parameterized thread start functionality (requires
14809         matching corlib). Marked broken code for later removal.
14810
14811 2005-01-12  Martin Baulig  <martin@ximian.com>
14812
14813         * class-internals.h (MonoGenericClass): Moved the `initialized'
14814         flag to MonoDynamicGenericClass, removed `init_pending'.
14815         (MonoGenericInst): Added `is_reference' flag.
14816
14817 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
14818
14819         * reflection.c (mono_image_create_pefile): Only set the pe_offset
14820         inside the MSDOS header. Fixes #71201.
14821
14822         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
14823         gc thread.
14824         (mono_domain_finalize): Ditto.
14825
14826 2005-01-12  Martin Baulig  <martin@ximian.com>
14827
14828         * class.c (mono_get_shared_generic_class): Use the cache for
14829         non-dynamic generic classes.
14830
14831         * class-internals.h (mono_class_create_generic_2): Removed
14832         function prototype, this function is now static inside class.c.
14833
14834         * class.c (mono_class_create_generic_2): Made this static, only
14835         call it from mono_class_init() and mono_class_setup_parent().
14836         (collect_implemented_interfaces_aux): Call mono_class_init() on
14837         the interfaces we collect.
14838         (mono_class_setup_vtable): Call mono_class_init (class->parent).
14839
14840 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
14843         it a real thread handle.
14844
14845         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
14846         MonoJitExceptionInfo, since each catch clause needs its own variable.
14847         
14848 2005-01-11  Dick Porter  <dick@ximian.com>
14849
14850         * image.c (mono_pe_file_open): New variant on mono_image_open()
14851         that does not set up the CLI metadata; used for FileVersionInfo so
14852         it can get the data for windows binaries too.
14853         
14854         * process.c (process_read_string_block): Don't read off the end of
14855         the StringTable block.
14856
14857         These both fix bug 70766.
14858
14859 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
14860
14861         * gc.c: set some fields to NULL at GC cleanup time.
14862         * threads.c: if we quit the main thread, call exit ().
14863
14864 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
14865
14866         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
14867
14868 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
14869
14870         * threads.h, threads.c, object.c: added accessor and settor for
14871         main_thread. Handle it specially when exiting from it: wait
14872         for other foreground threads to exit.
14873
14874 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
14875
14876         * process.c, verify.c: remove some bloat.
14877
14878 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
14879
14880         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
14881         the calling convention to cdecl under win32.
14882
14883 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
14884
14885         * object.c (mono_object_get_size): New function to get the size of
14886         an object instance.
14887
14888         * profiler.c (simple_allocation): Use above.
14889
14890 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
14891
14892         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
14893         ves_icall_System_AppDomain_getRootDomain (as it's not required to
14894         get an appdomain by it's id and we can't assume the root's id is 0).
14895         * domain-internals.h: Change the function prototype to match.
14896         * icall.c: Change the icall table for AppDomain.
14897
14898 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
14899
14900         * locales.c (string_invariant_compare_char): Only compute
14901         GUnicodeTypes in the case where we need them.  Test for ordinality
14902         first and return if so.
14903
14904         From the commit:
14905
14906                 /*
14907                  * FIXME: here we must use the information from c1type and c2type
14908                  * to find out the proper collation, even on the InvariantCulture, the
14909                  * sorting is not done by computing the unicode values, but their
14910                  * actual sort order.
14911                  */
14912
14913 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
14914
14915         * loader.c: for P/Invoke methods, allow the "Internal" shared
14916         library name to refer to the calling process symbol namespace.
14917
14918 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
14919
14920         * Makefile.am: Add the security manager to the build.
14921         * security-manager.c|h: New. Initialization of the security manager.
14922
14923 2005-01-07  Dick Porter  <dick@ximian.com>
14924
14925         * threads.c: 
14926         * monitor.c: Update thread state during Monitor and WaitHandle
14927         waits.  Fixes bug 71031.
14928
14929 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
14930
14931         * reflection.c (property_encode_signature): Correctly handle when the
14932         property has no methods.
14933
14934 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
14935
14936         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
14937         
14938         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
14939         fields from mb, not rmb. Fixes #71017.
14940
14941         * marshal.c (emit_ptr_to_str_conv): Add support for 
14942         ByValTStr -> string conversion. Fixes #71015.
14943
14944         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
14945
14946         * mempool.c (mono_mempool_contains_addr): New helper function.
14947
14948 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
14949
14950         * metadata.c (mono_metadata_compute_size): Fix size calculation of
14951         HasSematics encoded fields.
14952         
14953         * metadata.c (mono_type_to_unmanaged): Improve error message for 
14954         invalid string marshalling.
14955
14956         * metadata.c: Fix warnings.
14957         
14958 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14959
14960         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
14961         profiler support.
14962
14963 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
14964
14965         * domain.c object.c domain-internals.h: Revert part of r38077 since the
14966         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
14967         tests.
14968
14969 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
14970
14971         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
14972         so methods containing these can be AOTed.
14973
14974 2005-01-03  Martin Baulig  <martin@ximian.com>
14975
14976         * loader.c (find_method): Removed the hack for generic instances.
14977         (method_from_memberref): If our parent is a generic instance, pass
14978         its generic type definition to find_method() and then inflate the
14979         method.
14980         (mono_get_method_constrained): Pass the generic type definition to
14981         find_method() and inflate the method later.
14982
14983         * class-internals.h (MonoStats): Added `generic_class_count'.
14984
14985         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
14986         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
14987
14988         * reflection.c (mono_custom_attrs_from_params): Don't ignore
14989         generic type definitions.
14990
14991 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
14992
14993         * loader.c icall.c: Fix warnings.
14994
14995 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
14996
14997         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
14998         blittable types. Fixes #70864.
14999
15000 2004-12-29  Martin Baulig  <martin@ximian.com>
15001
15002         * icall.c
15003         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
15004
15005         * reflection.c (mono_method_get_object): Create a
15006         "System.Reflection.MonoGenericMethod" for inflated methods; don't
15007         call mono_get_inflated_method().
15008
15009         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
15010
15011 2004-12-27  Martin Baulig  <martin@ximian.com>
15012
15013         * class-internals.h (MonoMethod): Added `is_inflated' flag.
15014         (MonoMethodInflated): Added `inflated' field.
15015
15016         * class.c (mono_class_inflate_generic_method): Don't really
15017         inflate the method here; just set the `is_inflated' flag in the
15018         MonoMethod.
15019         (mono_class_get_inflated_method): Actually inflate the method here
15020         if it's not already inflated; we use the MonoMethodInflated's new
15021         `inflated' field as a cache.
15022
15023 2004-12-26  Martin Baulig  <martin@ximian.com>
15024
15025         * class.c
15026         (inflate_generic_class): Moved some code out of inflate_generic_type().
15027         (mono_class_inflate_generic_method): If we're already inflated,
15028         inflate the context and use the declaring method; ie. make sure
15029         the declaring method of an inflated method is always the generic
15030         method definition.
15031         (mono_class_create_from_typedef): Create
15032         `class->generic_container->context->gclass'.
15033
15034 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
15035
15036         * metadata-internals.h, marshal.c, reflection.c: More
15037         MonoGHashTable->GHashTable.
15038
15039         * domain-internals.h, class.c: Change MonoGHashTable's into
15040         GHashTables for some cases where no gc stuff is used
15041
15042         All users: update apis
15043
15044 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
15045
15046         * metadata.c (builtin_types): Make this `const'. Makes this get
15047         put into the shareable section.
15048         (mono_metadata_init): Casts to make gcc happy.
15049
15050 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
15051
15052         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
15053
15054 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
15055
15056         * icall.c: Added an internal call to retrieve the position and length
15057         of assembly-level declarative security attributes (RequestMinimum, 
15058         RequestOptional and RequestRefuse). This is used by the Assembly class
15059         to re-create the corresponding permission sets.
15060
15061 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
15062
15063         * marshal.c: fix the stelemref wrapper to be type correct
15064         (and faster).
15065
15066 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
15067
15068         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
15069         to do key & 0x7fffffff. Hashtable already does this. It just
15070         results in longer code.
15071
15072 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
15073
15074         * appdomain.c: Bump corlib version.
15075         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
15076         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
15077         * reflection.c|h: Add functions to get declarative security infos
15078         (blob position and length) for assemblies, classes and methods.
15079
15080 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
15081
15082         * reflection.c: sort the constant table (bug #70693).
15083
15084 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
15085
15086         * object-internals.h, threads.c, domain.c: add accessors for
15087         the MonoThread and MonoDomain tls keys.
15088
15089 2004-12-18  Martin Baulig  <martin@ximian.com>
15090
15091         * class.c (inflate_generic_type): If we're inflating a generic
15092         instance, set `ngclass->context->container = context->container';
15093         ie. the container we inflated into.
15094
15095         * metadata.c (mono_metadata_parse_generic_param): Reflect above
15096         inflate_generic_type() changes.
15097
15098 2004-12-17  Martin Baulig  <martin@ximian.com>
15099
15100         * class-internals.h
15101         (MonoGenericClass): Replaced `MonoType *generic_type' with
15102         `MonoClass *generic_class'.  Removed `dynamic_info'; if
15103         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
15104         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
15105
15106 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
15107
15108         * exception.c (mono_exception_from_token): New helper function.
15109
15110 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
15111
15112         * assembly.c (mono_assembly_load_with_partial_name): Call 
15113         mono_assembly_loaded before invoking the preload hooks. Fixes
15114         #70564.
15115
15116         * object-internals.h (MonoThread): Change culture_info and 
15117         ui_culture_info into an array.
15118
15119         * threads.c: Cache culture info objects from more than one appdomain.
15120
15121         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
15122         current UI culture.
15123
15124 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
15125
15126         * threads.h threads.c appdomain.c: Clear the culture_info field of
15127         all threads during unloading if they point to an object in the dying
15128         appdomain.
15129
15130 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
15131
15132         * culture-info.h (TextInfoEntry): New struct
15133         * object-internals.h: sync with managed
15134         * locales.c: fill the `text_info_data' field
15135         * culture-info-tables.h: update
15136
15137 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
15138
15139         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
15140         collector.
15141
15142 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
15143
15144         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
15145         (ves_icall_ModuleBuilder_getMethodToken): Ditto
15146
15147 2004-12-12  Martin Baulig  <martin@ximian.com>
15148
15149         * mono-debug-debugger.c (write_type): If we're an enum and the
15150         builtin types have already been initialized, call mono_class_init().
15151
15152 2004-12-11  Martin Baulig  <martin@ximian.com>
15153
15154         * metadata.c (mono_metadata_load_generic_params): Added
15155         `MonoGenericContainer *parent_container' argument; automatically
15156         compute `container->is_method'; pass the correct owner to
15157         get_constraints().      
15158
15159         * reflection.c (compare_genericparam): Sort the GenericParam table
15160         according to increasing owners. 
15161
15162 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
15163
15164         * profiler.c: allow disabling the default profiler.
15165
15166 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
15167
15168         * decimal.c, icall.c: allow disabling System.Decimal support.
15169
15170 2004-12-09  Marek Safar <marek.safar@seznam.cz>
15171
15172         * reflection.c: Add support for null attribute arguments.
15173
15174 2004-12-09  Martin Baulig  <martin@ximian.com>
15175
15176         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
15177         names to get rid of compiler warnings.
15178
15179 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15180
15181         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
15182         mono_marshal_load_type_info (). Fixes #69625.
15183         (mono_marshal_get_ptr_to_struct): Likewise.
15184
15185 2004-12-08  Martin Baulig  <martin@ximian.com>
15186
15187         * mono-debug.h: Bumped version number to 47.
15188
15189         * mono-debug-debugger.c
15190         (mono_debugger_event_handler, mono_debugger_event): Take two
15191         guint64 arguments insteed of a gpointer and a guint32.  
15192
15193 2004-12-08  Martin Baulig  <martin@ximian.com>
15194
15195         * debug-mono-symfile.h
15196         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
15197         `address' to `native_offset'.
15198
15199 2004-12-08  Martin Baulig  <martin@ximian.com>
15200
15201         * class.c (mono_class_create_from_typespec): Only inflate if we
15202         either have `context->gclass' or `context->gmethod'.
15203
15204 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
15205
15206         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
15207
15208         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
15209
15210         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
15211
15212         * reflection.c (mono_assembly_get_object): Remove the workaround put
15213         in for the release.
15214         
15215         * appdomain.c: Use the corlib_internal field from MonoAssembly.
15216
15217         * appdomain.c: Bump corlib version.
15218
15219         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
15220         be visible in other appdomains.
15221
15222 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
15223
15224         * threads.c: Interlocked inc and dec for longs were messed up,
15225         use a KISS based impl for this. Fixes 70234
15226
15227 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
15228
15229         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
15230
15231 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
15232
15233         * icall.c: fix to follow policy not to allow struct
15234         arguments in icalls.
15235
15236 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15237
15238         * process.c: make the patch that handles spaces in file paths work
15239         on mono/windows too.
15240
15241 2004-12-06  Martin Baulig  <martin@ximian.com>
15242
15243         * class.c (mono_class_create_generic): Call
15244         mono_class_setup_supertypes() if we're dynamic.
15245         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
15246
15247 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
15248
15249         * object-internals.h: Add new fields to MonoThread.
15250
15251         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15252
15253         * icall.c threads-types.h threads.c: Add new icalls.
15254
15255         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
15256
15257         * object-internals.h (MonoReflectionAssembly): Sync object layout with
15258         managed side.
15259
15260         * appdomain.c: Bump corlib version.
15261
15262         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
15263         internal assemblies. Fixes #69181.
15264
15265 2004-12-05  Martin Baulig  <martin@ximian.com>
15266
15267         * class.c (mono_class_inflate_generic_signature): Make this a
15268         no-op if `context' is NULL or we don't have any type parameters;
15269         also copy `sentinelpos'.        
15270
15271 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
15272
15273         * image.c: Add unbox_wrapper_cache.
15274
15275         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
15276
15277         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
15278         function generator.
15279         
15280         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
15281         Fixes #70173.
15282
15283         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
15284         
15285 2004-12-04  Martin Baulig  <martin@ximian.com>
15286
15287         * loader.c (mono_method_get_signature_full): New public function;
15288         like mono_method_get_signature(), but with an additional
15289         `MonoGenericContext *' argument.
15290
15291         * class.c (mono_class_inflate_generic_signature): Formerly known
15292         as inflate_generic_signature(); make this public.
15293
15294 2004-12-04  Martin Baulig  <martin@ximian.com>
15295
15296         * metadata.c
15297         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
15298         instead of a `MonoGenericContainer *'.  
15299         (mono_metadata_parse_array_full): Likewise.
15300         (mono_metadata_parse_signature_full): Likewise.
15301         (mono_metadata_parse_method_signature_full): Likewise.
15302         (mono_metadata_parse_generic_inst): Likewise.
15303         (mono_metadata_parse_generic_param): Likewise.
15304         (mono_metadata_parse_mh_full): Likewise.
15305         (mono_type_create_from_typespec_full): Likewise.
15306
15307 2004-12-03  Martin Baulig  <martin@ximian.com>
15308
15309         * class-internals.h (MonoGenericContainer): Replaced the
15310         `MonoGenericContext * pointer with a `MonoGenericContext'
15311         structure and made it the first element.
15312
15313 2004-12-03  Martin Baulig  <martin@ximian.com>
15314
15315         * class.c
15316         (inflate_generic_type): Set the `context->container' when creating
15317         a new MonoGenericContext.
15318         (mono_class_inflate_generic_method): Likewise.
15319         (mono_class_create_from_typespec): Just use `context->container'
15320         to get the container.
15321
15322         * loader.c (method_from_methodspec): Set `context->parent' from
15323         `context->container' - and if that's a method container, use its
15324         parent.  Also set the `context->container' when creating a new
15325         MonoGenericContext.
15326         (mono_get_method_from_token): Use just `context->container' to get
15327         the container.
15328
15329         * metadata.c (do_mono_metadata_parse_generic_class): Also set
15330         `gclass->context->container'.
15331
15332         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
15333         the `context->container' when creating a new MonoGenericContext.
15334
15335 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
15336
15337         * reflection.c (compare_genericparam): Sort params with identical
15338         owner by their number. Fixes gen-111 on sparc.
15339
15340 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15341
15342         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
15343         around the domain changes.
15344
15345         * appdomain.c (mono_domain_unload): Handle the case when the thread
15346         calling Unload is itself being aborted during unloading. Fixes #70022.
15347
15348         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
15349
15350         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
15351         checkpoint_func as an icall so it gets a wrapper.
15352         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
15353         in the cross-appdomain wrappers too.
15354
15355         * threads.c (mono_thread_has_appdomain_ref): Make this public.
15356
15357         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
15358
15359         * reflection.c: Fix some memory leaks.
15360         
15361 2004-12-02  Martin Baulig  <martin@ximian.com>
15362
15363         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
15364
15365         * metadata.c (generic_class_cache): New static hashtable.
15366         (mono_metadata_lookup_generic_class): New public method.
15367
15368 2004-12-02  Martin Baulig  <martin@ximian.com>
15369
15370         * class.c (mono_class_create_from_typedef): Call
15371         mono_class_setup_parent() and mono_class_create_mono_type() before
15372         parsing the interfaces.
15373
15374 2004-12-02  Martin Baulig  <martin@ximian.com>
15375
15376         * metadata.c (generic_inst_cache): New static hashtable.
15377         (mono_metadata_lookup_generic_inst): New public function.
15378         (mono_metadata_inflate_generic_inst): New public function.
15379         (mono_metadata_parse_generic_inst): New public function.
15380         (do_mono_metadata_parse_generic_class): Use the new
15381         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
15382         since this'll also use the cache.
15383
15384         * reflection.c (mono_reflection_bind_generic_method_parameters):
15385         Use mono_metadata_lookup_generic_inst() to use the new cache.
15386
15387         * class.c (inflate_mono_type): Use
15388         mono_metadata_inflate_generic_inst() to inflate a generic
15389         instance; this'll also use the new cache.
15390
15391         * loader.c (method_from_methodspec): Use
15392         mono_metadata_parse_generic_inst() and
15393         mono_metadata_inflate_generic_inst() rather than parsing it
15394         manually, so we can use the new cache.
15395
15396 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15397
15398         * threads.c (wait_for_tids): Do not incorrectly free threads when 
15399         the wait times out.
15400
15401 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
15402
15403         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
15404         iter->args based on whether parameters are passed in registers (i.e.
15405         MONO_ARCH_REGPARMS is defined)
15406
15407 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
15408
15409         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
15410         the exception message. Fixes #70070.
15411         (method_from_methodspec): Fix warnings.
15412
15413 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15414
15415         * process.c: (complete_path) return the path quoted
15416
15417 2004-12-01  Martin Baulig  <martin@ximian.com>
15418
15419         * class-internals.h (MonoGenericInst): New structure.
15420         (MonoGenericClass): Replaced `type_argc', `type_argv' and
15421         `is_open' with `MonoGenericInst *inst'.
15422         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
15423         `is_open' with `MonoGenericInst *inst'.
15424
15425 2004-11-30  Martin Baulig  <martin@ximian.com>
15426
15427         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
15428
15429         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
15430         to `generic_class_cache'.
15431
15432         * metadata.c
15433         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
15434         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
15435         (mono_generic_inst_is_valuetype): Renamed to
15436         mono_generic_class_is_valuetype().
15437
15438         * class-internals.h
15439         (MonoGenericInst): Renamed to MonoGenericClass.
15440         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
15441         (MonoClass): Renamed `generic_inst' to `generic_class'.
15442         (MonoGenericContext): Renamed `ginst' to `gclass'.
15443
15444         * object-internals.h
15445         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
15446
15447         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
15448         mono_reflection_generic_class_initialize().
15449
15450         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
15451         now known as "System.Reflection.MonoGenericClass".
15452         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
15453
15454 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
15455
15456         * class-internals.h: Added a flag field to MonoClass to cache the
15457         declarative security attributes actions associated with the class.
15458         * domain-internals.h: Added booleans to MonoJitInfo to cache the
15459         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
15460         applicable to the JITted method.
15461         * reflection.c|h: Added functions to extract (as flags) which security
15462         actions are available (declaratively) for a method, class or assembly.
15463         * metadata.c|h: Added functions to search the declarative security
15464         table in the metadata.
15465         
15466 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
15467
15468         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
15469         EXPORTEDTYPES are already in the class name cache, so there is no
15470         need to add extra code here to look at them. Just removes a bit of
15471         cruft.
15472
15473         (ves_icall_System_Environment_get_TickCount): No need for #if
15474         WINDOWS. We already have the code in io-layer.
15475
15476 2004-11-28  Martin Baulig  <martin@ximian.com>
15477
15478         * loader.c
15479         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
15480         Fixes gen-112.cs.
15481
15482 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
15483
15484         * assembly.c (do_mono_assembly_open): Instead of having a
15485         conditional WITH_BUNDLE, incorporate support for bundles here, by
15486         having a global `bundles' variable holding a pointer to the actual
15487         bundles. 
15488
15489         (mono_register_bundled_assemblies): New API call used by the
15490         bundle code. 
15491
15492         See mkbundle.1 for details.
15493         
15494 2004-11-27  Martin Baulig  <martin@ximian.com>
15495
15496         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
15497         the vtable for generic methods.
15498
15499 2004-11-26  Martin Baulig  <martin@ximian.com>
15500
15501         * metadata.c
15502         (mono_metadata_generic_method_hash): New public function.
15503         (mono_metadata_generic_method_equal): Likewise.
15504
15505         * class-internals.h
15506         (MonoGenericContainer): Added `GHashTable *method_hash'.
15507
15508         * reflection.c (ReflectionMethodBuilder): Added
15509         `MonoGenericContainer *generic_container'.
15510         (reflection_methodbuilder_to_mono_method): Don't create a new
15511         MonoGenericContainer each time we're called.
15512         (mono_reflection_bind_generic_method_parameters): Use
15513         `container->method_hash' to cache the results so we don't create a
15514         different method if we're called several times with the same
15515         arguments.
15516
15517         * loader.c (method_from_methodspec): Use the new
15518         `container->method_hash' here, too.
15519
15520 2004-11-26  Martin Baulig  <martin@ximian.com>
15521
15522         * class.c (inflate_generic_signature): Correctly compute
15523         `res->has_type_parameters'.
15524         (mono_class_vtable): Use the `has_type_parameters' flag to
15525         determine whether we're a generic method.
15526
15527         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
15528
15529 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
15530
15531         * object.c (mono_runtime_run_main): Fix a small memory leak.
15532
15533 2004-11-25  Martin Baulig  <martin@ximian.com>
15534
15535         * class.c (set_generic_param_owner): Fixed the loop.
15536
15537 2004-11-25  Martin Baulig  <martin@ximian.com>
15538
15539         * object.c (mono_class_vtable): Don't create any JIT wrappers for
15540         generic methods.
15541
15542 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
15543
15544         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
15545         names. Fixes #69787.
15546
15547 2004-11-24  Martin Baulig  <martin@ximian.com>
15548
15549         * class.c (mono_class_create_generic_2): If we don't have a
15550         `ginst->parent', inflate `gklass->parent' to get our parent.
15551
15552 2004-11-24  Martin Baulig  <martin@ximian.com>
15553
15554         * reflection.c (compare_genericparam): Correctly sort the
15555         GenericParam table; fixes #69779.
15556
15557 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
15558
15559         * reflection.c: When writing a PE file, don't create a huge
15560         buffer in memory. Just write the arrays we have to the file.
15561         This reduces memory usage.
15562
15563         * metadata-internals.h: MonoDynamicStream pefile is no longer used
15564         globally.
15565
15566 2004-11-17  Martin Baulig  <martin@ximian.com>
15567
15568         * class.c (mono_class_init): Don't setup `class->parent' for
15569         dynamic instances; moved this to mono_class_generic_2().
15570         (mono_class_create_generic): Also set `klass->inited' for dynamic
15571         generic instances.
15572         (mono_class_create_generic_2): Don't do anything for dynamic
15573         generic instances.  Set `klass->parent' here and also call
15574         mono_class_setup_parent() here. 
15575
15576         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
15577         `MonoType *parent' argument; set `ginst->parent' before calling
15578         mono_class_create_generic_2(), so we set the correct parent.
15579
15580 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
15581
15582         * reflection.c: allow getting attributes from ModuleBuilder
15583         (used by ikvm).
15584
15585 2004-11-17  Martin Baulig  <martin@ximian.com>
15586
15587         * class.c (mono_class_create_from_typedef): If a type parameter is
15588         inherited from an outer class, set its owner to that class.
15589
15590 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
15591
15592         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
15593           for (int*) written size. This fixes bug #69592.
15594
15595 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
15596
15597         * icall.c: Added IsAuthenticodePresnet internal call.
15598         * image.c|h: New function that check a MonoImage for an Authenticode
15599         signature in the certificate PE data directory.
15600         * security.c|h: New internal call to ask the runtime if an 
15601         Authenticode signature seems referenced in the PE header.
15602
15603 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
15604
15605         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
15606
15607         * reflection.c (mono_image_create_pefile): Free the assembly streams
15608         after writing out the assembly file.
15609
15610         * object.c (mono_runtime_run_main): Fix small memory leak.
15611
15612         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
15613         property access modifiers. Fixes #69389.
15614
15615 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
15616
15617         * domain.c, object.c, object-internals.h, domain-internals.h,
15618         object.h, marshal.c: keep dynamic code info per domain.
15619
15620 2004-11-15  Martin Baulig  <martin@ximian.com>
15621
15622         * class.c (mono_type_get_name_recurse): Put type arguments in
15623         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
15624         see bug #68387.
15625
15626 2004-11-15  Martin Baulig  <martin@ximian.com>
15627
15628         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
15629         (mono_class_setup_vtable): When computing `the_cname' for a
15630         generic instance, don't include the namespace since we'd otherwise
15631         add it twice.
15632
15633 2004-11-15  Martin Baulig  <martin@ximian.com>
15634
15635         * class.c (mono_class_create_generic): Changed return type to void.
15636         (mono_class_create_generic_2): New public function; setup
15637         `class->method', `class->field' and `class->interfaces' here
15638         instead of in mono_class_init().
15639
15640         * class.h (mono_class_create_generic): Moved to class-internals.h.
15641
15642 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
15643
15644         * reflection.c (mono_image_create_pefile): take a file HANDLE.
15645         rather than writing to memory, write to this file. Right now,
15646         we are just writting into a buffer, and copying that. However
15647         we can avoid the buffer later.
15648
15649         (mono_dynamic_stream_reset): new function
15650
15651         * icall.c, object-internals.h: update for the above.
15652
15653 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
15654
15655         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
15656         have been using gc'd memory. First it is slower, unlikely
15657         the comment in the source code said, secondly, it increases
15658         our footprint to do it in the gc.
15659
15660         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
15661         the method so that it does not have to copy to managed code.
15662
15663 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
15664
15665         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
15666
15667 2004-11-12  Martin Baulig  <martin@localhost>
15668
15669         * reflection.c (mono_image_create_token): Allow generic method
15670         definitions here, since they may appear in an `.override'; see
15671         gen-98/gen-99 for an example.
15672
15673 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
15674
15675         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
15676         #69365.
15677
15678         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
15679         descriptive.
15680
15681 2004-11-11  Martin Baulig  <martin@ximian.com>
15682
15683         * class.c (mono_class_setup_vtable): In an explicit interface
15684         implementation, the method name now includes the arity.
15685
15686 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
15687
15688         * object.c (mono_array_full_copy): Fix warning.
15689
15690 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
15691
15692         * appdomain.c: Removed look_for_method_by_name(). Use the new method
15693         mono_class_get_method_from_name() instead.
15694         
15695         * class-internals.h: Added two new types of wrappers. 
15696         Added MonoRemotingTarget enum. Added new trampoline function type, which
15697         takes an additional MonoRemotingTarget value as parameter, so it is
15698         possible to request a trampoline for a specific target.
15699         
15700         * class.c: Added new mono_class_get_method_from_name() method.
15701         
15702         * class.h: In MonoRemoteClass, we can have now to vtables, one for
15703         general remoting sinks and one specific for cross domain calls.
15704         
15705         * debug-helpers.c: Added new wrapper names.
15706         
15707         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
15708         of a remote class.
15709         
15710         * image.c: Porperly delete value objects form the remoting invoke hashtable.
15711         
15712         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
15713         with several other methods (mono_marshal_get_xappdomain_dispatch,
15714         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
15715         and others) can generate a fast remoting wrapper for cross domain calls.
15716         More information can be found in docs/remoting.
15717         Other changes: Removed mono_find_method_by_name, and used
15718         mono_class_get_method_from_name instead.
15719         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
15720         is stored in the remoting invoke hashtable.
15721         
15722         * marshal.h: published the new method for getting the xdomain wrapper,
15723         and also added a method for getting the adequate wrapper for a given
15724         method and target.
15725         
15726         * object-internals.h, object.c: Added a couple of methods for capying and
15727         cloning arrays.
15728         Modified mono_install_remoting_trampoline, which takes the new remoting
15729         trampoline that has a remoting target as parameter.
15730         mono_class_proxy_vtable now also takes a remoting target as parameter, and
15731         will return the most suitable vtable for the target.
15732         Added mono_remote_class_vtable, which returns the vtable of a remote class
15733         (which can be the normal remoting vtable or the xdomain vtable).
15734         
15735         * threads.c: the xdomain invoke and dispatch wrappers must also be
15736         protected against interruptions.
15737
15738 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15739
15740         * icall.c: use memmove in BlockCopyInternal when the source and
15741         destination arrays are the same.
15742
15743 2004-11-09  Martin Baulig  <martin@ximian.com>
15744
15745         * class-internals.h (MonoGenericContainer): Removed `method' and
15746         `signature', replaced them with `is_method' and `is_signature'
15747         flags.  Added `context'.
15748
15749         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
15750         instead of a `MonoGenericContainer *'.
15751
15752         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
15753         for dynamic type parameters.
15754         (mono_metadata_load_generic_params): Setup `container->context'.
15755
15756         * reflection.c (mono_reflection_setup_generic_class): Setup
15757         `tb->generic_container->context'.
15758         (do_mono_reflection_bind_generic_parameters): Use
15759         mono_class_inflate_generic_type() to correctly inflate types,
15760         rather than using our own hack just for MONO_TYPE_VAR.
15761
15762 2004-11-09  Martin Baulig  <martin@ximian.com>
15763
15764         * class.c (mono_class_inflate_generic_method): Small fix; don't
15765         crash here.
15766
15767         * icall.c
15768         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
15769         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
15770         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
15771         (ves_icall_Type_BindGenericParameters): Likewise.
15772         (ves_icall_Type_get_IsGenericInstance): Likewise.
15773         (ves_icall_Type_GetGenericParameterPosition): Likewise.
15774         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
15775         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
15776         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
15777
15778 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
15779
15780         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
15781         assembly versions and public key tokens. Fixes #69113.
15782
15783 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
15784
15785         * metadata.c: fix bug introduced with the type cache changes
15786         on 2004-11-06.
15787
15788 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
15789
15790         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
15791         the MonoClass pointer instead of the token in exception clauses.
15792         * reflection.c: updates for the above and make the code not depend
15793         on the structure of MonoExceptionClause.
15794
15795 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
15796
15797         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
15798         Add support for dynamic assemblies. Fixes #69114.
15799
15800         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
15801
15802 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
15803
15804         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
15805         since most only those methods use it. the code member of
15806         MonoMethodPInvoke was dead, so that can be removed too. Also,
15807         remove inline_count (again, not used), and move slot so that it
15808         can share bits with some other flags. This saves 8 bytes in the
15809         structure and gives us about 50 kb back for mcs helloworld.cs
15810
15811         * *.[ch]: Do naming changes for the above.
15812
15813         * loader.c (mono_method_get_header): Lazily init the header
15814         on first access.
15815         (mono_get_method_from_token): don't init the header here
15816         (mono_free_method): the header may never be allocated
15817
15818         Overall, this saves 150 kb of unmanaged allocations
15819         for mcs helloworld.cs. That accounts for 10% of the unmanaged
15820         memory at runtime.
15821         
15822         * loader.c, loader.h (mono_method_get_header): new accessor.
15823
15824         * *.[ch]: use the above method. Prepares us to lazily load
15825         the header.
15826
15827         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
15828         three warnings, which are actual bugs (see 69206).
15829
15830         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
15831         unused. Saves a cool 4 bytes / method.
15832
15833 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
15834
15835         * metadata.c (builtin_types): Add types for System.Object here.
15836         (mono_metadata_parse_type_full): Cache MonoType*'s that are
15837         for a class or valuetype from klass->this_arg or klass->byval_arg.
15838
15839         On mcs for a hello world, this gets us down from 21836 MonoType's
15840         to 14560.
15841
15842         (mono_metadata_free_type): Account for the above change.
15843
15844 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
15845
15846         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
15847         exception instead of asserting if name is null.
15848         (ves_icall_System_AppDomain_GetData): Ditto.
15849
15850 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
15851
15852         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
15853         EnumBuilder.
15854
15855         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
15856         Return NULL when the domain does not have entry_assembly set.
15857
15858         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
15859         Add a 'resource_modules' argument.
15860         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
15861
15862         * reflection.c (mono_reflection_create_runtime_class): Move setting
15863         of wastypebuilder here, so mono_get_type_object () returns a MonoType
15864         for enums too.
15865
15866         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
15867         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
15868         Throw an ArgumentNullException if 'ptr' is null.
15869
15870         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
15871         assemblies here. Fixes #69020.
15872
15873 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
15874
15875         * reflection.c (build_compressed_metadata): Fix the previous patch for
15876         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
15877         the stack.
15878
15879 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
15880
15881         * assembly.c (mono_assembly_names_equal): Allow a match if one of
15882         the cultures is false. Fixes #69090.
15883
15884         * reflection.c (build_compressed_metadata): Fix invalid memory read 
15885         detected by valgrind.
15886         
15887         * reflection.c (mono_reflection_get_type): Avoid triggering a 
15888         TypeResolve multiple times for the same type. Fixes #65577.
15889
15890 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
15891
15892         * marshal.c: Avoid using ldftn to call managed functions. It is
15893         much slower than just a call.
15894
15895         * reflection.c (mono_module_get_object): free the basename we
15896         allocate here from glib.
15897         
15898         * reflection.c (ensure_runtime_vtable): make sure to free
15899         overrides.  Also, we were allocating an array of MonoMethod not an
15900         array of MonoMethod*.
15901
15902         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
15903
15904         * image.c (mono_image_close): free image->guid here.
15905
15906 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
15907
15908         * reflection.c: Fix some spec conformance issues with the PE file
15909         structures so mcs compiled apps run on the Net 2.0 beta.
15910
15911 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
15912
15913         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
15914         Implement this. Fixes #67264.
15915
15916         * debug-helpers.h debug-helpers.c marshal.c: Move 
15917         mono_find_method_by_name to debug-helpers.c.
15918
15919 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
15920
15921         * object.c (mono_release_type_locks): type_initialization_hash is
15922         a GHashTable.
15923
15924         * reflection.c object.c object-internals.h: Fix warnings.
15925
15926         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
15927         without accessors. Fixes #61561.
15928
15929         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
15930         application base from the root domain if not set. Fixes #65641.
15931         (mono_runtime_init): Fix warning.
15932
15933 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15934
15935         * appdomain.c: call mono_thread_pool_init.
15936         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
15937         of worker threads based on the number of CPUs and the environment
15938         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
15939         for non-windows (windows) systems.
15940
15941 2004-10-27  Chris Toshok  <toshok@ximian.com>
15942
15943         * mono-debug-debugger.c (write_class): don't call mono_class_init
15944         here, as even with the check for (!klass->init_pending), we get
15945         into a situation where we're hitting cycles in class
15946         initialization.  Fixes #68816.
15947
15948 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
15949
15950         * image.c: Avoid overwriting values in the loaded_images_hash when an
15951         assembly is loaded multiple times. Fixes #61152.
15952
15953         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
15954         so multiple satellite assemblies for the same name can be loaded.
15955         Fixes #68259.
15956
15957         * mono_domain_assembly_preload: Actually return the loaded assembly, 
15958         not NULL.
15959
15960         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
15961         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
15962
15963         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
15964         pending finalizers are not invoked after the appdomain has been 
15965         unloaded. Fixes #67862.
15966
15967 2004-10-22  Martin Baulig  <martin@ximian.com>
15968
15969         * mono-debug-debugger.c
15970         (mono_debugger_runtime_invoke): Don't box valuetypes.
15971
15972 2004-10-22  Chris Toshok  <toshok@ximian.com>
15973
15974         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
15975         don't hide private methods.
15976
15977 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
15978
15979         * icall.c: Allows the runtime to "share" (when known) the public key
15980         token of an assembly. This avoid the need to recalculate the token 
15981         (from the public key) in managed code.
15982
15983 2004-10-21  Chris Toshok  <toshok@ximian.com>
15984
15985         * debug-helpers.c (append_class_name): argh, revert last patch.
15986         
15987 2004-10-21  Chris Toshok  <toshok@ximian.com>
15988
15989         * debug-helpers.c (append_class_name): use '+' as the delimiter,
15990         not '/', so that it matches what the debugger uses to look up
15991         methods.
15992
15993 2004-10-21  Martin Baulig  <martin@ximian.com>
15994
15995         * mono-debug-debugger.c (mono_debugger_throw_exception): New
15996         public method; this is called each time an exception is thrown and
15997         allows the debugger to use exception catch points.
15998
15999 2004-10-21  Martin Baulig  <martin@ximian.com>
16000
16001         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
16002         the stack pointer and the exception object in some struct and pass
16003         that to the debugger.
16004
16005 2004-10-21  Chris Toshok  <toshok@ximian.com>
16006
16007         * mono-debug-debugger.c (do_write_class): add instance/static
16008         event support.  We don't expose "raise" or "other" yet.
16009         (event_is_static): new method.
16010
16011 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
16012
16013         * mono-debug-debugger.c
16014         (mono_debugger_handle_exception): Remove
16015         bogus return value for fussy compilers.
16016
16017 2004-10-20  Martin Baulig  <martin@ximian.com>
16018
16019         * mono-debug-debugger.c
16020         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
16021         (mono_debugger_handled_exception): Likewise.
16022
16023 2004-10-20  Martin Baulig  <martin@ximian.com>
16024
16025         * mono-debug-debugger.h (MonoDebuggerEvent): Added
16026         MONO_DEBUGGER_EVENT_EXCEPTION.
16027
16028         * mono-debug-debugger.c (mono_debugger_handle_exception): New
16029         public function to send the debugger a notification for an
16030         exception and inform it about a catch/finally clause.
16031
16032 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
16033
16034         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
16035         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
16036         fix 2.95 build. 
16037
16038         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
16039
16040 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
16041
16042         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
16043         marshalled as [In,Out]. Fixes #58325.
16044
16045 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
16046
16047         * reflection.c (mono_method_body_get_object): Implement some fields.
16048
16049 2004-10-12  Martin Baulig  <martin@ximian.com>
16050
16051         * reflection.c (mono_reflection_bind_generic_parameters): Small
16052         fix, correctly retrieve our parent from a generic instance.
16053
16054 2004-10-12  Martin Baulig  <martin@ximian.com>
16055
16056         * metadata.c (mono_metadata_generic_param_equal): We always have
16057         an owner.
16058
16059         * class.c
16060         (mono_class_from_generic_parameter): We need to have an owner.
16061         (my_mono_class_from_generic_parameter): Likewise.
16062
16063         * reflection.c (mono_reflection_setup_generic_class): Renamed to
16064         mono_reflection_create_generic_class() and added a new
16065         mono_reflection_setup_generic_class().  
16066         (mono_reflection_initialize_generic_param): If we're a nested
16067         generic type and inherited from the containing class, set our
16068         owner to the outer class.
16069
16070 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
16071
16072         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
16073
16074         * reflection.c (mono_method_body_get_object): New function to create
16075         a MethodBody object.
16076
16077         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
16078
16079 2004-10-11  Martin Baulig  <martin@ximian.com>
16080
16081         * metadata.c (_mono_metadata_type_equal): Renamed to
16082         do_mono_metadata_type_equal() and made static.
16083
16084 2004-10-11  Martin Baulig  <martin@ximian.com>
16085
16086         * appdomain.c: Bump corlib version number to 28.
16087
16088 2004-10-10  Martin Baulig  <martin@ximian.com>
16089
16090         * class-internals.h
16091         (MonoGenericInst): Added `MonoGenericContainer *container'.
16092         (MonoGenericMethod): Likewise.
16093         (MonoGenericContext): Likewise.
16094         (MonoGenericParam): Added `MonoGenericContainer *owner'.
16095
16096         * metadata.c
16097         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
16098         (do_mono_metadata_parse_generic_inst): Likewise.
16099         (mono_metadata_parse_type_full): New public method.  This is the actual
16100         mono_metadata_parse_type() implementation - with an additional
16101         `MonoGenericContainer *' argument.
16102         (mono_metadata_parse_array_full): Likewise.
16103         (mono_metadata_parse_signature_full): Likewise.
16104         (mono_metadata_parse_method_signature_full): Likewise.
16105         (mono_metadata_parse_mh_full): Likewise.
16106         (mono_type_create_from_typespec): Likewise.
16107         (mono_metadata_interfaces_from_typedef_full): New public method;
16108         this is similar to the other _full() methods, but we take a
16109         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
16110         (mono_metadata_parse_generic_param): Take an additional
16111         `MonoGenericContainer *' argument and lookup the MonoGenericParam
16112         from that container.
16113         (mono_metadata_generic_param_equal): New static method to compare
16114         two type parameters.
16115         (_mono_metadata_type_equal): New static method; takes an
16116         additional `gboolean signature_only' argument - if true, we don't
16117         compare the owners of generic parameters.
16118         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
16119         with a TRUE argument - do a signature-only comparision.
16120
16121         * loader.c: Use the new _full() methods and pass the
16122         MonoGenericContainer to them.
16123
16124         * object-internals.h (MonoReflectionTypeBuilder): Added
16125         `MonoGenericContainer *generic_container' field.
16126         (MonoReflectionMethodBuilder): Likewise.
16127
16128 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
16129
16130         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
16131         case initial images of dynamic assemblies.
16132
16133         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
16134
16135         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
16136
16137         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
16138         length of event->other array.
16139         (typebuilder_setup_events): Ditto.
16140
16141         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
16142         'assembly_by_name' and add an 'assemblies' list.
16143
16144         * assembly.h assembly.c: Add a new search hook for determining whenever
16145         an assembly is already loaded. Use this instead of searching in the
16146         loaded_assemblies list.
16147
16148         * domain.c appdomain.c: Implement the new search hook so loaded 
16149         assemblies are now scoped by appdomain. Fixes #67727.
16150
16151 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
16152
16153         * threads.c (mono_thread_attach): Initialize synch_lock field so
16154         mono_thread_detach works again.
16155
16156         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
16157         'lib' too. Fixes #63130.
16158
16159 2004-10-06  Jackson Harper  <jackson@ximian.com>
16160
16161         * culture-info-tables.h: regenerated.
16162
16163 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
16164
16165         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
16166         implemented by other interfaces in the result. Fixes #65764.
16167         
16168         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16169         Handle unloadable modules without crashing.
16170
16171         * image.c (load_modules): Revert the previous patch since modules must
16172         have a fixed index inside the array.
16173         
16174         * image.c (load_modules): Don't include native modules in the modules
16175         array.
16176
16177 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
16178
16179         * reflection.h: Add param_defaults field.
16180
16181         * reflection.c: Add support for parameter defaults in dynamic methods.
16182         Fixes #64595.
16183
16184         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
16185         an empty string when a type has no namespace. Fixes #64230.
16186
16187 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
16188
16189         * tabledefs.h: Added "internal" security actions to support non-CAS
16190         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
16191         Note: they do not seems to be used anymore in 2.0 (new metadata format)
16192
16193 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
16194
16195         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
16196         constructor of abstract class. Fixes #61689.
16197
16198 2004-10-04  Martin Baulig  <martin@ximian.com>
16199
16200         * class-internals.h (MonoGenericContainer): New type.
16201         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
16202         `MonoGenericContainer *generic_container'.
16203         (MonoClass): Replaced `gen_params' and `num_gen_params' with
16204         `MonoGenericContainer *generic_container'.
16205
16206         * metadata.c (mono_metadata_load_generic_params): Return a
16207         `MonoGenericContainer *' instead of a `MonoGenericParam *';
16208         removed the `num' argument.
16209
16210 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
16211
16212         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
16213         for dynamic images.
16214
16215         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
16216         machine fields.
16217
16218         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
16219
16220         * reflection.c: Save pe_kind and machine values into the generated
16221         image file.
16222
16223         * appdomain.c: Bump corlib version number.
16224
16225         * object-internals.h: Reorganize layout of LocalBuilder.
16226
16227         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
16228         New helper function.
16229
16230         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
16231         created MonoType for dynamic types. Fixes #66180.
16232
16233 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
16234
16235         * threadpool.c: the ares hashtable needs a critical section around it.
16236         this prevents some nasty segfaults
16237
16238 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
16239
16240         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
16241         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
16242         bug 67324).
16243         
16244 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16245
16246         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
16247         
16248 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
16249
16250         * image.c: Always canonicalize image file names, to avoid loading
16251         the same assembly twice when referenced using a relative path.
16252
16253 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16254
16255         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
16256
16257         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
16258
16259         * marshal.c: Fix warnings.
16260
16261 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
16262
16263         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
16264         attempting to marshal the delegate_trampoline as the method_addr.
16265         This patch has a static hashtable of marshalled delegates so that 
16266         we can map delegate_trampoline addresses back to delegates.  This
16267         allows a delegate passed to managed code to be passed back into native
16268         code.  Fixes #67039
16269
16270 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16271
16272         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
16273
16274         * reflection.c (method_encode_code): Align method headers properly.
16275         Fixes #66025.
16276
16277 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16278
16279         * marshal.c: In the runtime invoke wrapper, reset the abort
16280         exception if it is cached. This avoids the automatic rethrowal of 
16281         the exception after the catch of the wrapper. Also check for pending
16282         interruptions before calling the managed method. This is done using
16283         the new method emit_thread_force_interrupt_checkpoint, since the
16284         normal checkpoint method is ignored when running the invoke wrapper.
16285         * object.c: If the abort exception is rethrown, set the abort_exc
16286         field of the thread, so it will be rethrown aftere every catch.
16287         * threadpool.c: Only run an interruption checkpoint if what has been
16288         requested is a stop of the thread (aborts will be ignored).
16289         * threads.c: By default, a thread will now never be interrumped while
16290         running the runtime invoke wrapper (this ensures that runtime_invoke
16291         will always return to the caller if an exception pointer is provided).
16292         There is a new special method mono_thread_force_interruption_checkpoint()
16293         to force an interruption checkpoint even if running a protected
16294         wrapper, which is used by the same runtime invoke wrapper to do a check
16295         at a safe point.
16296
16297 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16298
16299         * object.c, object-internals.h: Implemented mono_release_type_locks,
16300         which releases the cctor locks held by a thread.
16301         * threads.c, threads.h: In thread_cleanup, release cctor locks held
16302         by a thread. Added mono_thread_exit() method to be used to safely stop
16303         a thread.
16304
16305 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16306
16307         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16308         Move null check before dereference.  Avoid indexing beyond the end
16309         of the 'modules' array.
16310
16311 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16312
16313         * metadata-internals.h (MonoImage): Add module_count field.
16314         * image.c (load_modules): Set image->module_count.
16315         (mono_image_load_file_for_image): Use image->module_count.
16316         * reflection.c (mono_image_load_module): Append to image->modules array 
16317         of dynamic assembly.
16318         (mono_module_get_object): Fix loop to actually increment index.
16319         Use image->module_count.
16320         * assembly.c (mono_assembly_load_references): Use image->module_count.
16321         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
16322         Likewise.
16323
16324 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16325
16326         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
16327         Avoid assert on generic types.
16328
16329 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
16330
16331         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
16332
16333         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
16334
16335         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
16336         function to convert a MarshalSpec structure to its managed counterpart.
16337
16338         * reflection.c: Fix warnings.
16339         
16340         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
16341         field.
16342
16343         * icall.c (mono_create_icall_signature): Fix build.
16344
16345 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
16346
16347         * icall.c: Add MakePointType icall.
16348
16349         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
16350         warnings.
16351
16352 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16353
16354         * threadpool.c: reuse allocated slots in the queue.
16355
16356 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
16359
16360         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
16361
16362         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
16363         previous change.
16364
16365         * tabledefs.h: Add constants for pinvoke attributes BestFit and
16366         ThrowOnUnmappableChar.
16367
16368         * icall.c (ves_icall_Type_GetPacking): New icall.
16369
16370 2004-09-24  Martin Baulig  <martin@ximian.com>
16371
16372         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
16373
16374 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16375
16376         * appdomain.c:
16377         (mono_domain_set): allow setting a domain that is being unloaded.
16378         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
16379         being unloaded.
16380
16381 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16382
16383         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
16384         the GetCustomAttributes icall.
16385
16386 2004-09-23  Martin Baulig  <martin@ximian.com>
16387
16388         * object-internals.h (MonoReflectionGenericParam): Replaced
16389         'has_ctor_constraint', `has_reference_type' and `has_value_type'
16390         with `guint32 attrs'.
16391
16392 2004-09-23  Martin Baulig  <martin@ximian.com>
16393
16394         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
16395
16396 2004-09-23  Martin Baulig  <martin@ximian.com>
16397
16398         * object-internals.h (GenericParameterAttributes): New enum.
16399
16400 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16401
16402         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
16403         
16404         * class.c (init_events): Fill out event->other field.
16405
16406         * class.c: Fix warnings.
16407
16408         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
16409
16410 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
16411
16412         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
16413         walk which doesn't supply the IL offset.
16414
16415 2004-09-22  Martin Baulig  <martin@ximian.com>
16416
16417         * reflection.c (mono_reflection_setup_internal_class): If we're
16418         System.ValueType, System.Object or System.Enum, set
16419         `klass->instance_size' and create the vtable.
16420         (mono_reflection_create_internal_class): If we're an enum type,
16421         get the base class from our current corlib.
16422
16423 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
16424
16425         * reflection.h (MonoResolveTokenError): New type.
16426
16427         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
16428         icall.
16429
16430         * icall.c: Add an 'error' argument to the ResolveToken icalls.
16431
16432 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
16433
16434         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
16435         Support also calling constructors, but only for already allocated objects.
16436
16437 2004-09-17  Geoff Norton <gnorton@customerdna.com>
16438
16439         * reflection.c (type_get_qualified_name): If the klass is null
16440         return the typename to avoid a NullRefEx.
16441         (encode_cattr_value): Get the qualified name of the boxed type,
16442         not the underlying enumtype.  Fixes #62984.
16443
16444 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
16445
16446         * marshal.c: Fix problems with previous checkin.
16447
16448 2004-09-21    <vargaz@freemail.hu>
16449
16450         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
16451         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
16452
16453         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
16454
16455 2004-09-21  Geoff Norton <gnorton@customerdna.com>
16456
16457         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
16458         should only return a type for pointers, arrays, and passbyref types.
16459         Fixes bug #63841.
16460
16461 2004-09-21  Martin Baulig  <martin@ximian.com>
16462
16463         * domain.c (mono_debugger_check_runtime_version): New public
16464         function.
16465
16466         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
16467
16468 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
16469
16470         * reflection.c: Added missing sort to the declarative security 
16471         attributes table. MS implementation stops seeing the attributes if the
16472         token number regress in the table (as shown by ildasm and permview).
16473
16474 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
16475
16476         * object-internals.h (MonoReflectionModule): Add 'token' field.
16477         
16478         * reflection.c (mono_reflection_get_token): Add support for Module
16479         and Assembly.
16480         (mono_module_get_object): Set 'token' field.
16481         (mono_module_file_get_object): Set 'token' field.
16482
16483         * icall.c: Add new Assembly and Module icalls.
16484
16485         * appdomain.c: Bump corlib version.
16486
16487 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
16488
16489         * loader.h loader.c class.h class.c: Add helper functions for obtaining
16490         tokens of metadata objects.
16491
16492         * reflection.h reflection.c (mono_reflection_get_token): New function
16493         to obtain the token of a metadata object.
16494
16495         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
16496
16497 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
16498
16499         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
16500         
16501         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
16502
16503 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
16504
16505         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
16506         * object-internals.h: Added 3 MonoArray* members to MonoReflection
16507         AssemblyBuilder to access the permissions set in the class lib.
16508         * reflection.c: Added security attributes encoding step in 
16509         mono_image_build_metadata.
16510         * tabledefs.h: Added new security actions defined in 2.0:
16511         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
16512
16513 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16514
16515         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
16516         macro parameter.
16517
16518 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16519  
16520         * locales.c: nullify the ICU_collator member of CompareInfo when it is
16521           finalized. There where random SIGSEVs at program termination, when
16522           an object being finalized was trying to do a string comparison and
16523           the current culture was already finalized.
16524  
16525 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16526
16527         * threads.c: call thread_cleanup before finishing the thread if we get
16528         there.
16529
16530 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
16531
16532         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
16533         assemblies from the parent. Fixes #65665.
16534
16535 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
16536
16537         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
16538         modifiers.
16539
16540 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
16541
16542         * reflection.h: add prototype for mono_get_dbnull_object
16543         * reflection.c: add prototypes for get_default_param_value_blobs 
16544         and mono_get_object_from_blob for fussier compilers
16545
16546 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
16547  
16548         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
16549         false deadlock checks in class initialization.
16550  
16551 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
16552
16553         * image.c (mono_image_addref): Fix comment.
16554
16555         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
16556         possible.
16557
16558 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
16559
16560         * reflection.c (mono_param_get_objects): Modified to return
16561         ParameterInfo.DefaultValue object.
16562
16563         (get_default_param_value_blobs):
16564         (mono_get_object_from_blob):
16565         (mono_get_dbnull_object): New helper routines. 
16566
16567         * object.c (mono_get_constant_value_from_blob): New helper routine
16568         carved out from get_default_field_value ()
16569
16570         * object-internals.h (mono_get_constant_value_from_blob): Added
16571         function declaration.
16572
16573 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
16574
16575         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
16576         referenced assemblies. Fixes #62135.
16577
16578         * exception.h exception.c (mono_get_exception_file_not_found2): New
16579         helper function.
16580
16581 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
16582
16583         * class.h class.c: Add mono_type_get_underlying_type ().
16584
16585 2004-09-09  Geoff Norton <gnorton@customerndna.com>
16586
16587         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
16588         Fix GetTypes() to support dynamically created assemblies.
16589
16590 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
16591
16592         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
16593         
16594         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
16595         previous patch.
16596
16597         * reflection.h reflection.c loader.c: Allow dynamic construction of
16598         pinvoke methods. Fixes #65571.
16599         
16600         * reflection.c (mono_reflection_get_type): Revert previous change since
16601         it causes regressions.
16602
16603 2004-09-08  Martin Baulig  <martin@ximian.com>
16604
16605         * class.c (class_compute_field_layout): Don't call
16606         mono_class_layout_fields() for open generic instances.
16607
16608 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
16609         * threads.c appdomain.c: fix typo in GC macro
16610
16611 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16612
16613         * threads.c: don't call mono_thread_detach() in start_wrapper(),
16614         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
16615
16616 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
16617
16618         * image.c (mono_image_close): Applied patch from 
16619         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
16620         assembly is loaded multiple times from data.
16621         
16622         * image.c (mono_image_open): Fix warning.
16623
16624 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16625
16626         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
16627         once. Fixes #58334.
16628         
16629         * reflection.c (mono_reflection_create_runtime_class): Initialize
16630         klass->nested_classes. Fixes #61224.
16631
16632 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
16633
16634         * threads.c: sched_yield() on exit, to allow threads to quit.
16635
16636 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16637
16638         * object.c (mono_unhandled_exception): Remove leftover debug code.
16639
16640 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
16641
16642         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
16643
16644 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16645
16646         * marshal.c (emit_marshal_array): Really null terminate string arrays.
16647         
16648         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
16649
16650 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16651
16652         * marshal.c (emit_marshal_array): Null terminate string arrays.
16653         
16654         * marshal.c (raise_auto_layout_exception): Fix warning.
16655
16656         * reflection.c (mono_param_get_objects): Initialize the default value
16657         with DBNull.Value, not null. Fixes #62123.
16658
16659 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
16660
16661         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
16662         throw an exception with a cute explanation.
16663
16664 2004-09-06  Dick Porter  <dick@ximian.com>
16665
16666         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
16667         Close the new process's thread handle, as we don't use it.  The
16668         handle stays around forever otherwise.
16669
16670 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16671
16672         * object.c (arith_overflow): Fix warning.
16673
16674         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
16675         calling conventions in method refs. Fixes #65352.
16676
16677         * reflection.c: Fix warnings.
16678
16679 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
16680
16681         * icall.c: Add a new icall for Array.Clear
16682
16683 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
16684
16685         * object.c: When allocating an array, we have to throw
16686         an overflow exception if any of the lengths are < 0.
16687
16688 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16689
16690         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
16691         properly. Also move implementation of string array marshalling to 
16692         managed code. Fixes #42316.
16693
16694 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16695
16696         * assembly.c: provide more information when loading an assembly fails.
16697
16698 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16699
16700         * filewatcher.c: don't expect the development fam package to be
16701         installed.
16702
16703 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
16704
16705         * marshal.c: Make a copy of the signature cookie since it will be
16706         freed by the caller.
16707         
16708         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
16709
16710         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
16711
16712         * metadata.c (mono_metadata_free_marshal_spec): New function to free
16713         marshal specs.
16714
16715         * marshal.c: More refactoring.
16716         
16717         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
16718         smaller functions.
16719
16720 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
16721
16722         * object.c: In mono_message_invoke, fill the output parameter array after
16723           calling the managed method (it was done before the call). This fixes
16724           bug #59299.
16725
16726 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
16727
16728         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
16729         as well.
16730
16731 2004-09-02  Martin Baulig  <martin@ximian.com>
16732
16733         * class.c (mono_class_instance_size): Don't allow generic type
16734         definitions or open generic instances.
16735         (mono_class_array_element_size): If we're a value type, call
16736         mono_class_instance_size() on the original class.
16737
16738         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
16739         handle generic instances.
16740
16741         * mono-debug-debugger.c (write_type): Handle generic instances
16742         like classes.
16743
16744 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
16745
16746         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
16747         the allocation request fails. Fixes #65089.
16748
16749         * object.c (mono_runtime_free_method): Do not call mono_free_method.
16750         
16751         * object.c (mono_runtime_free_method): New function to free a dynamic
16752         method.
16753
16754         * marshal.c (mono_delegate_free_ftnptr): New function to free the
16755         delegate trampoline.
16756
16757         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
16758         with hasthis as dynamic,
16759
16760         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
16761
16762         * domain.c (mono_jit_info_table_remove): New function to remove an
16763         entry from the jit info table.
16764
16765         * class-internals.h (MonoMethod): Add 'dynamic' field.
16766
16767         * loader.c: Fix warnings.
16768
16769 2004-09-01  Martin Baulig  <martin@ximian.com>
16770
16771         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
16772         instead of mono_debugger_lock() because the latter one is a no-op
16773         unless running in the debugger.
16774
16775 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
16776
16777         * class.c (class_compute_field_layout): Classes with auto-layout or
16778         reference fields are not blittable.
16779         
16780 2004-09-01  Dick Porter  <dick@ximian.com>
16781
16782         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
16783         mono_image_get_filename() to get the assembly location.
16784
16785         * icall.c:
16786         * metadata.h: Fix compile warnings
16787
16788 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
16789
16790         * class.c (class_compute_field_layout): System.Object is blittable.
16791
16792         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
16793         as in/out. Fixes #59909.
16794
16795 2004-09-01  Martin Baulig  <martin@ximian.com>
16796
16797         * metadata.h (MONO_TYPE_ISREFERENCE): Call
16798         mono_metadata_generic_inst_is_valuetype() if we're a generic
16799         instance to check whether our underlying type is a reference type.
16800
16801 2004-09-01  Martin Baulig  <martin@ximian.com>
16802
16803         * metadata.c (mono_type_size): If we're a generic instance, call
16804         mono_class_value_size() for value types.
16805
16806 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
16807
16808         * marshal.c: Implement more custom marshalling functionality. Fixes
16809         #64915.
16810
16811 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
16812
16813         * mono-debug.c, debug-mono-symfile.c: add some locking love.
16814
16815 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
16816
16817         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
16818
16819         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
16820
16821         * icall.c: Fix some warnings.
16822
16823         * threads.c (abort_appdomain_thread): Fix unref errors.
16824         (mono_thread_current): Fix THREAD_DEBUG define.
16825
16826 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
16827
16828         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
16829
16830         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
16831
16832 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
16833
16834         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
16835         string arrays.
16836
16837 2004-08-28  Martin Baulig  <martin@ximian.com>
16838
16839         * metadata.c
16840         (mono_metadata_generic_inst_is_valuetype): New public function.
16841
16842         * metadata.h (MONO_TYPE_ISSTRUCT): Call
16843         mono_metadata_generic_inst_is_valuetype() if we're a generic
16844         instance to check whether our underlying type is a valuetype.
16845
16846 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
16847
16848         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
16849         #63768.
16850
16851 2004-08-25  Martin Baulig  <martin@ximian.com>
16852
16853         * loader.c (mono_get_method_from_token): Abstract methods can also
16854         be generic and thus have type parameters.
16855
16856         * metadata-internals.h
16857         (MonoDynamicImage): Added `GPtrArray *gen_params'.
16858
16859         * reflection.c (mono_image_get_generic_param_info): Don't create a
16860         metadata row, just add an entry to the `gen_params' array.
16861         (build_compressed_metadata): Sort the `gen_params' array and then
16862         actually create the metadata.
16863
16864 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16865
16866         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
16867
16868 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
16869
16870         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
16871
16872 2004-08-24  Martin Baulig  <martin@ximian.com>
16873
16874         * class.cs (mono_class_is_subclass_of): Like an interface, a
16875         generic instance also derives from System.Object.
16876
16877 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
16878
16879         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
16880         custom modifiers to be in any order. Fixes #61990.
16881
16882 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
16883
16884         * object.c: Register mono_object_new_fast icall.
16885         
16886         * object.c (mono_class_get_allocation_ftn): Return to calling
16887         mono_object_new_fast, since it seems faster to compute the object 
16888         size in unmanaged code than passing it as a parameter.
16889
16890         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
16891
16892         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
16893         this function with Boehm as the oom handler, so we don't have to check
16894         the result of GC_malloc.
16895
16896         * object.c: Remove checks for oom.
16897
16898         * object.h object.c (mono_class_get_allocation_ftn): New function to
16899         return the icall which can be used to allocate an instance of a given
16900         class. 
16901
16902         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
16903
16904         * class-internals.h: Add 'enabled' field.
16905
16906 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
16907
16908         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
16909
16910 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
16911         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
16912         value 0x0010.
16913
16914 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
16915
16916         * appdomain.c: use the Tls function for appdomain too,
16917         at Zoltan's request. Actually return in mono_context_get
16918
16919         * appdomain.c, profiler.c, threads.c: use __thread
16920
16921 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
16922
16923         * appdomain.c threads.c: Call GC_CreateThread on windows.
16924
16925         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
16926         multiple libraries since this don't work on windows.
16927
16928 2004-08-18  Martin Baulig  <martin@ximian.com>
16929
16930         * class-internals.h
16931         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
16932         MonoMethodHeader.
16933
16934         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
16935         MonoMethodNormal since we also need it for abstract and interface
16936         methods.
16937
16938         * reflection.c
16939         (build_compressed_metadata): Sort the GenericParam table.
16940         (mono_image_create_token): Added `gboolean create_methodspec'
16941         argument; this is false when generating a MethodImpl token.
16942         (reflection_methodbuilder_to_mono_method): Abstract and interface
16943         methods may also have generic parameters.
16944
16945 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
16946
16947         * appdomain.c: thread local alloc
16948
16949 2004-08-17  Martin Baulig  <martin@ximian.com>
16950
16951         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
16952
16953         * icall.c
16954         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
16955         argument.
16956
16957         * class.c (mono_type_get_full_name): New public function.
16958         (mono_type_get_name): Don't include the type arguments.
16959
16960 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
16961
16962         * Makefile.am: Build static versions of libmetadata and libmonoruntime
16963         for inclusion into the mono executable.
16964
16965 2004-08-16  Martin Baulig  <martin@ximian.com>
16966
16967         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
16968         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
16969
16970 2004-08-14  Martin Baulig  <martin@ximian.com>
16971
16972         * class.c (dup_type): Also copy the `byref' field.
16973
16974 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
16975
16976         * reflection.c (create_dynamic_mono_image): Revert the last change 
16977         since it breaks bootstrap.
16978
16979 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
16980
16981         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
16982
16983         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
16984         not free them with g_free.
16985
16986 2004-08-11  Martin Baulig  <martin@ximian.com>
16987
16988         * reflection.c (mono_reflection_setup_internal_class): Also call
16989         mono_class_setup_mono_type() if we already have a `tb->type.type'.
16990
16991 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
16992
16993         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
16994         called during default (first) AppDomain creation. Keep track of
16995         Evidence when loading assemblies.
16996
16997 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
16998
16999         * opcodes.c, opcodes.h: reduce runtime relocations.
17000
17001 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
17002
17003         * culture-info.h, locales.c: fixes and chages to sue the new
17004         optimized format of the locale data.
17005         * culture-info-tables.h: regenerated.
17006
17007 2004-08-06  Geoff Norton <gnorton@customerdna.com>
17008         
17009         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
17010
17011 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
17012
17013         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
17014         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
17015         * domain-internals.h: icall declaration.
17016         * icall.c: icall registration.
17017         * object-internals.h: New fields in MonoAssembly for CAS.
17018
17019 2004-08-05  Duncan Mak  <duncan@ximian.com>
17020
17021         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
17022         CEE_LDELEM_ANY.
17023
17024 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17025
17026         * reflection.c: fix to deal with object[] arrays in custom ctors
17027         (bug #62550).
17028
17029 2004-08-05  Martin Baulig  <martin@ximian.com>
17030
17031         * class.c (mono_class_array_element_size): Added support for
17032         generic instances and correctly handle "recursive" types.
17033
17034 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
17035
17036         * assembly.c: Fix warnings.
17037
17038 2004-08-04  Martin Baulig  <martin@ximian.com>
17039
17040         * class.c
17041         (mono_type_get_name_recurse): Added `gboolean include_arity'
17042         argument specifying whether or not we should include the generic
17043         arity in the type name.
17044         (_mono_type_get_name): New static function.
17045         (mono_class_setup_vtable): If we're a generic instance, don't
17046         include the generic arity in the names of explicit method
17047         implementations.        
17048
17049 2004-08-03  Martin Baulig  <martin@ximian.com>
17050
17051         * class.c (mono_type_get_name_recurse): Enclose the generic type
17052         arguments in `<', '>'.
17053
17054 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17055
17056         * gc.c: make GC warning messages use the trace API, they are just
17057         noise to most of the users.
17058
17059 2004-08-03  Martin Baulig  <martin@ximian.com>
17060
17061         * debug-mono-symfile.c (read_string): Correctly read the string.
17062
17063 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
17064
17065         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
17066         
17067         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
17068         icalls.
17069         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
17070
17071 2004-07-30  Martin Baulig  <martin@ximian.com>
17072
17073         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
17074         Reflect latest symbol writer changes.   
17075
17076 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17077
17078         * object.c: always create an object if null is passed
17079         to Invoke() where a valuetype is expected.
17080
17081 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
17082
17083         * marshal.c (mono_marshal_init): make managed
17084         signatures match native ones better for 64bits.
17085
17086 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17087
17088         * appdomain.c: hack to build correctly the private bin path on windows.
17089         Fixes bug #61991.
17090
17091 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
17092
17093         * assembly.c: Load mscorlib from the correct framework directory
17094           (mono/<version>/mscorlib.dll).
17095         * appdomain.h: Added prototypes for new functions.
17096         * internals.h: Added some prototypes.
17097         * domain.c: When initializing the runtime, get from the executable and
17098           the configuration files the runtime version that the app supports.
17099           Added support methods for reading app.exe.config. Added list of versions
17100           supported by the JIT. Added two new methods: mono_init_from_assembly,
17101           which initializes the runtime and determines the required version from
17102           the provided exe file, and mono_init_version, which initializes
17103           the runtime using the provided version.
17104         * icall.c: Get machine.config from version-specific directory.
17105         * reflection.c: When generating an image, embed the version number
17106           of the current runtime.
17107
17108 2004-07-28  Dick Porter  <dick@ximian.com>
17109
17110         * socket-io.c
17111         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
17112         returned sockaddr size before creating the remote address object.
17113         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
17114         61608.
17115
17116 2004-07-28  Dick Porter  <dick@ximian.com>
17117
17118         * locales.c (string_invariant_compare_char): Fix invariant char
17119         compares between upper and lower cases.  Fixes bug 61458.
17120
17121 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
17122         
17123         * marshal.c: actually cache stelem.ref wrappers.
17124         
17125 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
17126
17127         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
17128         sections and remove the mono_cli_rva_map () function.
17129
17130 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17131
17132         * debug-mono-symfile.c: fix one more endianess issue, from a patch
17133         by Geoff Norton (<gnorton@customerdna.com>).
17134
17135 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17136
17137         * class.c: fix class loads for pointer types (typeof(int) !=
17138         typeof(int*)).
17139
17140 2004-07-27  Martin Baulig  <martin@ximian.com>
17141
17142         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
17143         reading the debugging information from an external ".mdb" file.
17144
17145 2004-07-24  Martin Baulig  <martin@ximian.com>
17146
17147         * reflection.c (mono_image_get_type_info): Only write a class
17148         layout entry if we actually have a size or a packing size.
17149
17150 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17151
17152         * reflection.c (type_get_fully_qualified_name): 
17153         insert cast to get type checking of ?: with non-gcc compilers
17154
17155 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
17156
17157         * rand.c: use g_getenv for both lookups of
17158         MONO_EGD_SOCKET
17159
17160 2004-07-17  Martin Baulig  <martin@ximian.com>
17161
17162         * reflection.c (mono_reflection_bind_generic_method_parameters):
17163         Set `gmethod->reflection_info'.
17164
17165 2004-07-17  Martin Baulig  <martin@ximian.com>
17166
17167         * class.c (mono_class_create_from_typedef): Insert the newly
17168         created class into the hash table before computing the interfaces
17169         since we could be called recursively.
17170
17171 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
17172
17173         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
17174         function to implement stelem.ref in managed code
17175         * class-internals.h, debug-helpers.c: a new wrapper type
17176         for the above.
17177
17178 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
17179
17180         * gc.c: allow GC handles to work even when no GC is compiled in.
17181         Fix part of bug #61134 (GetAddrOfPinnedObject).
17182
17183 2004-07-13  Peter Williams  <peter@newton.cx>
17184  
17185         * process.c (complete_path): Make sure we don't attempt to execute
17186         directories.
17187  
17188 2004-07-12  Geoff Norton <gnorton@customerdna.com>
17189
17190         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
17191           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
17192           and will add/subtract the hour if needed
17193
17194 2004-07-12  Martin Baulig  <martin@ximian.com>
17195
17196         * reflection.c (mono_field_get_object): If we have
17197         `field->generic_info', take the attributes from
17198         `field->generic_info->generic_type'.    
17199
17200 2004-07-12  Martin Baulig  <martin@ximian.com>
17201
17202         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
17203         This function must be called before initializing the runtime.
17204         (mono_debug_init_1): New function; call this after initializing
17205         the runtime, but before loading the assembly.  It tells the
17206         debugger to load corlib and the builtin types.
17207
17208         * mono-debug-debugger.c: Did some larger changes in the debugging
17209         code; support recursive class declarations, make sure we actually
17210         add all classes.
17211
17212 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17213
17214         * debug-helpers.c: undo my previous patch and fixed the real issue in
17215         ../mini/exceptions-x86.c
17216
17217 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17218
17219         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
17220         when no HOME env. variable was set and a NullRef was thrown in a .cctor
17221         called from other .cctors.
17222
17223 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17224
17225         * loader.c: Removed the mono_loader_wine_init hack now that we are
17226         doing a managed version of Windows.Forms.
17227
17228 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
17229
17230         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
17231         threadpool.c, threads.c: remove static data from rootset.
17232
17233 2004-07-09  Dick Porter  <dick@ximian.com>
17234
17235         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
17236         Don't do any more processing if the matched length was 0.  It was
17237         increasing the size of the string before.  Fixes bug 61167.
17238
17239 2004-07-09  Dick Porter  <dick@ximian.com>
17240
17241         * socket-io.h:
17242         * socket-io.c
17243         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
17244         Add support for SO_PEERCRED if its available.
17245
17246 2004-07-09  Peter Bartok <pbartok@novell.com>
17247         * loader.c: winelib.exe.so error message is now only displayed if
17248         MONO_DEBUG is set. To help us avoid questions when people are trying
17249         out the new Managed.Windows.Forms.
17250
17251 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
17252
17253         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
17254         for isinst and castclass wrappers.
17255
17256         * class-internals.h icall.c: Move registration and lookup of JIT icalls
17257         to libmetadata from the JIT, so they could be used by the marshalling
17258         code and the interpreter.
17259
17260         * marshal.c: Register marshalling related JIT icalls here instead of
17261         in mini.c. Use CEE_MONO_ICALL instead of the family of 
17262         CEE_MONO_PROC<x> opcodes to call marshalling functions.
17263
17264         * metadata.h: Remove unneeded marshalling conversions.
17265
17266         * opcodes.c: Update for new opcodes.
17267         
17268 2004-07-08  Martin Baulig  <martin@ximian.com>
17269
17270         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
17271         (mono_debug_get_domain_data): Make this function static.
17272
17273 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17274
17275         * gc.c, object.h: add nice GC handle API for embedders.
17276
17277 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
17278
17279         * reflection.c: more changes for the new api
17280
17281         * object.c: When we reflect on a field w/ a constant value, it
17282         will not have a memory location, so we must access metadata. Also,
17283         allow easier reading of strings so that we can read them from
17284         the constant data.
17285
17286         * class.c (mono_class_layout_fields): no need for literal fields here.
17287
17288         * class-internals.h: api changes for const fields
17289
17290         * icall.c (ves_icall_get_enum_info): use new apis for const fields
17291
17292 2004-07-06  Martin Baulig  <martin@ximian.com>
17293
17294         * mono-debug.h: Increment version number to 44.
17295
17296         * mono-debug.c (mono_debug_add_wrapper): The second argument is
17297         now a gpointer, rewrote this whole method.
17298
17299         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
17300         function.  Add information about the wrapper in a new "misc table".
17301
17302         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
17303         for the new misc table.
17304
17305 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
17306
17307         * metadata-internals.h image.c: Add a cache for helper signatures.
17308
17309         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
17310
17311 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
17312
17313         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
17314         delegates from a delegate. Fixes #61033.
17315         
17316         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
17317         marshalling of stringbuilder arrays. Fixes #59900.
17318
17319 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
17320
17321         * icall.c: Add EnumBuilder:setup_enum_type icall.
17322
17323 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
17324
17325         * icall.c: Added a new icall for the property version of
17326         OffsetOfStringData.
17327
17328 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
17329
17330         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
17331         it has a constant size across platforms.
17332
17333         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
17334         stack trace.
17335
17336 2004-06-29  Martin Baulig  <martin@ximian.com>
17337
17338         * mono-debug.c (mono_debug_add_method): Protect the whole function
17339         in mono_debugger_lock(), not just parts of it.
17340
17341 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17342
17343         * reflection.c: make sure padding bytes in heaps are zeroed.
17344
17345 2004-06-24  David Waite  <mass@akuma.org>
17346
17347         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
17348         image.c, loader.c, locales.c, marshal.c, metadata.c,
17349         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
17350         string-icalls.c, threads.c: change to C90-style comments from C99 /
17351         C++ -style
17352
17353 2004-06-24  Dick Porter  <dick@ximian.com>
17354
17355         * threads.c
17356         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
17357         return createdNew.  Fixes bug 60412.
17358
17359         * threads-types.h: 
17360         * icall.c: Add createdNew parameter to CreateMutex icall
17361
17362 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17363
17364         * reflection.c, object-internals.h: save default value in params.
17365
17366 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17367
17368         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
17369         no need to build a new path combining that with the application base.
17370         Fixes bug #60442.
17371
17372 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
17373
17374         * reflection.c: fixed minor standard compliance issues.
17375
17376 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17377
17378         * reflection.c: fixed issue with encoding some custom attributes
17379         (arrays in properties and fields, bug #60411).
17380
17381 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17382
17383         * reflection.c: fix start address when copying the public key token.
17384
17385 2004-06-23  Martin Baulig  <martin@ximian.com>
17386
17387         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
17388         the `exc' object in a static object to put it into the GC's root set.
17389
17390 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
17391
17392         * reflection.c: make mono_reflection_setup_internal_class ()
17393         callable a second time to setup a new parent class.
17394
17395 2004-06-23  Dick Porter  <dick@ximian.com>
17396
17397         * threads.c: Check for WAIT_IO_COMPLETION return values.
17398
17399 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
17400
17401         * appdomain.c: Removed the g_free on the public key token. Now copy 
17402         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
17403         * assembly.c: Added public key token string value when loading 
17404         assemblies. Fix bug #60439.
17405         * icall.c: Added missing informations (like public key) in 
17406         GetReferencedAssemblies. Fix #60519.
17407         * image.h: Changed definition for public key token from const char*
17408         public_tok_value to guchar public_key_token [17];
17409         * reflection.c: Updated for changes to public key token.
17410
17411 2004-06-22  Lluis Sanchez Gual
17412
17413         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
17414         for the field in base classes.
17415
17416 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17417
17418         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
17419         mark headers as not supported, they are installed only for use by the
17420         debugger.
17421
17422 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
17423
17424         * *.c, *.h: avoid namespace pollution in public headers.
17425
17426 2004-06-21  Martin Baulig  <martin@ximian.com>
17427
17428         * exception.c (mono_get_exception_security): It's in
17429         "System.Security", not in "System".
17430
17431         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
17432         the exception classes.
17433
17434 2004-06-21  Martin Baulig  <martin@ximian.com>
17435
17436         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
17437         Protect the exception object from being finalized.
17438
17439 2004-06-21  Martin Baulig  <martin@ximian.com>
17440
17441         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
17442         public function.
17443
17444 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
17445
17446         * reflection.c: Load the assembly in mono_reflection_type_from_name,
17447         if it was not loaded before. Fix parts of #60439.
17448
17449 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
17450
17451         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
17452         code that was broken since Ben's change: wrappers are now
17453         dependent on the method signature only again.
17454
17455 2004-06-21  Martin Baulig  <martin@ximian.com>
17456
17457         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
17458         added interface support.
17459
17460 2004-06-21  Martin Baulig  <martin@ximian.com>
17461
17462         * class.c (mono_vtable_get_static_field_data): New public method.
17463
17464 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
17465
17466         * filewatcher.c : Windows build fix to be compliant with API changes.
17467
17468 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17469
17470         * class.h, class.c: more accessors.
17471         * metadata.h, metadata.c: prepare for hiding MonoType and
17472         MonoMethodSignature: people should use the accessors from now on
17473         outside of the tree.
17474
17475 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17476
17477         * *.c, *.h: more API cleanups.
17478
17479 2004-06-18  Jackson Harper  <jackson@ximian.com>
17480
17481         * assembly.c: Trace loading assemblies.
17482         * loader.c: Trace loading native libraries.
17483         * mono-config.c: Trace loading config files.
17484         
17485 2004-06-18  Dick Porter  <dick@ximian.com>
17486
17487         * locales.c: Tell ICU the lengths of strings, it can cope with
17488         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
17489
17490 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
17491
17492         * image.c: swapped name/filename;
17493
17494 2004-06-18  Martin Baulig  <martin@ximian.com>
17495
17496         * mono-debug-debugger.c (write_class): Write the parent class at
17497         the end of the header.
17498
17499 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17500
17501         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
17502
17503 2004-06-17  Raja R Harinath  <rharinath@novell.com>
17504
17505         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
17506         (bundle_obj): New conditional define.
17507         (BUILT_SOURCES): Remove.
17508         ($(bundle_srcs)): Make parallel-make safe.
17509         (libmonoruntime_la_LIBADD): Make unconditional.
17510         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
17511         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
17512
17513 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
17514
17515         * culture-info-tables.h: It was inconsistent with the latest
17516           supp info files.
17517
17518 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
17519
17520         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
17521         be loaded.
17522
17523         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
17524         with gcc 2.95.
17525
17526 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
17527
17528         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
17529         cleaned up public header threads.h.
17530
17531 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17532
17533         * Makefile.am, *.c, *.h: more API cleanups.
17534
17535 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
17536
17537         * Makefile.am: removed monosn from compilation.
17538         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
17539         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
17540         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
17541         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
17542         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
17543         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
17544
17545 2004-06-15  Jackson Harper  <jackson@ximian.com>
17546
17547         * assembly.c: Make locales lower case when searching the GAC for
17548         assemblies. gacutil will always make locales lowercase when
17549         installing so this effectively makes them case insensitive.
17550         
17551 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
17552
17553         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
17554         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
17555           parameter which allows to choose whether the wait can be interrupted or 
17556           not. Also added the method mono_monitor_enter(), which locks the monitor
17557           using an infinite wait and without allowing interruption.
17558           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
17559           interrupted.
17560         * object.h: Added new fields in MonoThread. suspend_event holds the event
17561           used to susped/resume the thread. synch_lock is the lock object to use for
17562           modifying the thread state.
17563         * threads.c: Use the new synch_lock object for locking, instead of "this",
17564           which can generate deadlocks.
17565           Moved thread state change in Thread.Sleep and Thread.Join from managed
17566           to unmanaged code. This avoids a deadlock when the thread was suspended
17567           just after acquiring the thread lock.
17568           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
17569           Implemented Thread.Suspend using an event instead of ThreadSuspend,
17570           which is not fully implemented in the io-layer.
17571         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
17572
17573 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
17574
17575         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
17576         threads-types.h: more API cleanups.
17577
17578 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17579
17580         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
17581         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
17582         threadpool.c, threads.c: first pass at the exported API cleanup.
17583
17584 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
17585
17586         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
17587
17588 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17589
17590         * icall.c: added internalGetHome.
17591
17592 2004-06-14  Dick Porter  <dick@ximian.com>
17593
17594         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
17595         possible to return successfully when '.' or '..' were the only
17596         entries in a directory, but were skipped.  The MonoIOStat was not
17597         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
17598         Fixes bug 59574.
17599
17600 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
17601
17602         * reflection.c: make binaries run on .Net 1.1 by default.
17603
17604 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
17605
17606         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
17607
17608 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
17609
17610         * marshal.c: keep track of struct size with explicit layout
17611         (bug #59979).
17612
17613 2004-06-12  Martin Baulig  <martin@ximian.com>
17614
17615         * mono-debug-debugger.c: Comment out a debugging g_message().
17616
17617 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17618
17619         * reflection.c, reflection.h: do not free custom attrs that are cached.
17620         * icall.c: use braces to make code clearer.
17621
17622 2004-06-11  Martin Baulig  <martin@ximian.com>
17623
17624         * class.h (MonoInflatedField): New type.
17625         (MonoClassField): Replaced `MonoType *generic_type' with
17626         `MonoInflatedField *generic_info'.
17627
17628         * icall.c
17629         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
17630
17631 2004-06-11  Martin Baulig  <martin@ximian.com>
17632
17633         * reflection.c (mono_image_create_method_token): Correctly encode
17634         varargs methods.
17635
17636 2004-06-11  Martin Baulig  <martin@ximian.com>
17637
17638         * metadata.c (mono_metadata_parse_method_signature): When parsing
17639         a MethodDef which has VarArgs, also set sentinelpos if we don't
17640         have any parameters.
17641
17642 2004-06-11  Martin Baulig  <martin@ximian.com>
17643
17644         * verify.c (mono_method_verify): In CEE_CALL, use
17645         mono_method_get_signature() to get the method's signature, unless
17646         we're a PInvoke method.
17647
17648 2004-06-10  Jackson Harper  <jackson@ximian.com>
17649
17650         * assembly.c: Use <path>/lib/mono/gac for the extra paths
17651         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
17652         logical name as the supplied path is just a prefix to the gac not
17653         the direct path to it.
17654         
17655 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
17656
17657         * reflection.c: make the token for a created method match
17658         the token of the MethodBuilder it was created from
17659         (IKVM requires this behaviour now).
17660
17661 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
17662
17663         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
17664         reflection.c, socket-io.c: leak fixes.
17665
17666 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
17667
17668         * icall.c: handle sentinel pos in vararg methods in position different
17669         from 0.
17670
17671 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17672
17673         * culture-info-tables.h: freshly generated.
17674
17675 2004-06-09  Martin Baulig  <martin@ximian.com>
17676
17677         * loader.c (mono_get_method_constrained): Call `mono_class_init
17678         (constrained_class)'.   
17679
17680 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
17681
17682         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
17683         any methods. Fixes #59629.
17684
17685 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17686
17687         * culture-info-tables.h: reflecting locale-builder updates.
17688
17689 2004-06-08  Dick Porter  <dick@ximian.com>
17690
17691         * object.h:
17692         * locales.c: Fixed compile warnings, including a real bug in
17693         CompareInfo_internal_compare.
17694         
17695 2004-06-08  Dick Porter  <dick@ximian.com>
17696
17697         * locales.c
17698         (ves_icall_System_Globalization_CompareInfo_internal_index):
17699         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
17700         Double-check the resuls of usearches, because ICU currently
17701         ignores most of the collator settings here.  Fixes bug 59720.
17702         
17703 2004-06-08  Dick Porter  <dick@ximian.com>
17704
17705         * locales.c
17706         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
17707         Fix memory leak and segfault-causing typo.  No idea how this one
17708         lasted so long without being noticed.
17709
17710 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
17711
17712         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
17713         any methods. Fixes #59629.
17714
17715 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17716
17717         * assembly.c:
17718         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
17719         own the critical section before). Removed dead code (that's done
17720         in the preload hook).
17721
17722         (mono_assembly_load_with_partial_name): call the preload hook.
17723
17724 2004-06-08  Martin Baulig  <martin@ximian.com>
17725
17726         * metadata.c (mono_metadata_signature_alloc): Default
17727         `sentinelpos' to -1.
17728
17729         * reflection.c (mono_image_get_array_token): Likewise.
17730
17731 2004-06-08  Martin Baulig  <martin@ximian.com>
17732
17733         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
17734
17735         * metadata.c (mono_metadata_parse_method_signature): When parsing
17736         a MethodDef which has VarArgs, set sentinelpos.
17737
17738         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
17739         `gint16' since we're using -1 for non-varargs methods.
17740
17741         * reflection.c
17742         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
17743         (method_encode_signature): Added varargs support.
17744         (method_builder_encode_signature): Likewise.
17745         (mono_image_get_varargs_method_token): New static method.
17746         (mono_image_create_method_token): New public method; this is
17747         called via an icall instead of mono_image_create_token() when
17748         calling a varargs method.       
17749
17750 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
17751
17752         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
17753
17754 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17755
17756         * culture-info-tables.h : Reflecting the latest locale-builder that
17757           fixed empty array representation ({} to {0}).
17758
17759 2004-06-07  Jackson Harper  <jackson@ximian.com>
17760
17761         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
17762         looking up extra gac paths. This allows MONO_GAC_PATH to act
17763         exactly like a prefix.
17764         
17765 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
17766
17767         * reflection.c (mono_reflection_type_from_name): Make a copy of the
17768         type name before modifying it. Fixes #59405.
17769
17770 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17771
17772         * culture-info.h: added fields for "all datetime patterns".
17773         * locales.c: (  ves_icall_System_Globalization_CultureInfo
17774           _construct_datetime_format ()): fill xxx_patterns fields.
17775         * object.h: added fields for "all datetime patterns" to
17776           MonoDateTimeFormatInfo.
17777         * culture-info-tables.h: reflecting locale-builder updates.
17778
17779 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
17780
17781         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
17782         the event has no add and remove methods. Fixes #59629.
17783
17784 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
17785
17786         * object.c: Fixed possible integer overflow when allocating large
17787         strings.
17788
17789 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
17790
17791         * culture-info-tables.h: reflecting locale-builder updates.
17792
17793 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
17794
17795         * culture-info-tables.h: reflecting locale-builder updates.
17796
17797 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
17798
17799         * culture-info-tables.h: reflecting locale-builder updates.
17800
17801 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
17802
17803         * threads.c: Made Thread.Sleep abortable.
17804
17805 2004-06-02  Martin Baulig  <martin@ximian.com>
17806
17807         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
17808
17809         * debug-mono-symfile.h: Bumped symbol file version number to 37.
17810
17811 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
17812
17813         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
17814
17815 2004-05-30  Jackson Harper  <jackson@ximian.com>
17816
17817         * reflection.c: Do not hardcode assembly versions or public key
17818         tokens anymore. All of this except the corlib section was dead
17819         code anyways.
17820         
17821 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
17822
17823         * object.c (mono_runtime_invoke_array): Automatically create boxed
17824         objects for byref valuetypes if needed. Fixes #59300.
17825         
17826         * object.c (mono_method_return_message_restore): Handle 
17827         MONO_TYPE_OBJECT as well.
17828
17829 2004-05-28  Jackson Harper  <jackson@ximian.com>
17830
17831         * reflection.c: The modified type encoding was causing build
17832         problems. Reverted for now.
17833         
17834 2004-05-28  Jackson Harper  <jackson@ximian.com>
17835
17836         * reflection.c/h: Take an assembly ref so that we dont create
17837         fully qualified names when encoding types in the same assembly as
17838         the custom attribute being emitted.
17839         * appdomain.c: Increment version number.
17840         
17841 2004-05-26  Duncan Mak  <duncan@ximian.com>
17842
17843         * icall.c
17844         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17845         Set the full version number (major, minor, build, revision).
17846
17847 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
17848
17849         * marshal.c (emit_struct_conv): increment src/dst after blit
17850         (mono_marshal_get_managed_wrapper,
17851         mono_marshal_get_native_wrapper): make sure we have marshalling
17852         info before marshalling params (info computation affects
17853         blittable)
17854
17855         * class.c (class_compute_field_layout): correctly deal with
17856         blittable
17857         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
17858         value types (as per what windows dows by default)
17859         (mono_class_setup_mono_type): System.ValueType is blittable
17860         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
17861         blittable
17862
17863         * marshal.c (mono_marshal_load_type_info): flag types  as
17864         non-blittable if the native layout doesn't match the managed
17865         layout
17866
17867 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17868
17869         * appdomain.c: don't add stuff in the private search path that is
17870         above the application base. If application base is not set, there's
17871         no private search path.
17872
17873 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
17874
17875         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
17876         byref struct arguments in native->managed marshalling.
17877
17878 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
17879
17880         * marshal.c (mono_marshal_get_runtime_invoke): correctly
17881         cache methods using signature (special case for methods
17882         that are value type or string class)
17883         
17884         * image.c (mono_image_close): clean up allocated GSList's
17885         in runtime_invoke_cache.
17886
17887 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17888
17889         * mono-config.c: set the correct path for mono_cfg_dir on windows when
17890         there's no MONO_CFG_DIR environment variable defined.
17891
17892 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17893
17894         * threads.c: windows version must be >= 0x0500 to include OpenThread.
17895
17896 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
17897
17898         * threadpool.c: Really wait for 500ms after the async call, even if the wait
17899           is interrumped.
17900         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
17901           before waiting for it, and call CloseHandle after the wait to unref it.
17902           This will make sure that handles are not disposed too early.
17903
17904 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17905
17906         * appdomain.c:
17907         * appdomain.h:
17908         * icall.c: removed
17909         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
17910         needed now.
17911
17912         * object.c: se the application_base only for the domain that runs
17913         Main. Fixes bug #59216,
17914
17915 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17916
17917         * appdomain.c:
17918         * object.c: only the domain in which Main is run have
17919         SetupInformation.ConfigurationFile set, so moved a few lines from
17920         appdomain.c to object.c.
17921
17922 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17923
17924         * appdomain.c: we tried to load [name].(dll|exe), but according
17925         to bug #57710, we must also try [culture]/[name].(dll|exe) and
17926         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
17927         There's a test case attached to bug #58922.
17928
17929 2004-05-27  Dick Porter  <dick@ximian.com>
17930
17931         * icall.c:
17932         * file-io.c: Implemented icalls for locking and unlocking regions
17933         in a file.
17934         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
17935         FALSE on error (fixes both compiler warning and real bug.)
17936
17937 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
17938
17939         * culture-info-tables.h: reflecting locale-builder updates.
17940
17941           (Added missing ChangeLog entry for 05/26)
17942
17943 2004-05-27  Jackson Harper  <jackson@ximian.com>
17944
17945         * locales.c: Fix some cut and paste errors.
17946         
17947 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17948
17949         * mono-config.c: set the correct path for config. directory on windows.
17950
17951 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17952
17953         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
17954           on win32.
17955
17956 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
17957
17958         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
17959         from pinvoke functions.
17960         
17961         * marshal.c (mono_ftnptr_to_delegate): Implement this.
17962
17963 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17964
17965         * culture-info-tables.h: reflecting locale-builder updates.
17966
17967 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
17968
17969         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
17970         #59086.
17971
17972 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
17973
17974         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
17975         * icall.c: Modified icalls for RNG.
17976         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
17977         Windows (CryptoAPI).
17978
17979 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
17980
17981         * locales.c: Fix build.
17982
17983 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17984
17985         * culture-info-tables.h: reflecting locale-builder updates.
17986
17987 2004-05-25  Jackson Harper  <jackson@ximian.com>
17988
17989         * locales.c: When creating the current culture use the $LANGs
17990         specific culture. So DateTimeFormat and NumberFormat entries are created.
17991         
17992 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
17993
17994         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
17995         a char array as parameter.
17996
17997 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
17998
17999         * image.c: In mono_image_open(), always use an absolute path name to
18000           look for already loaded images.
18001
18002 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
18003
18004         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
18005         missing in the windows build (like older cygwin include files).
18006
18007 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
18008
18009         * icall.c: Fixed check for possible integer overflow in Buffer_
18010         BlockCopy icall. Replaced comments style // by /* */.
18011
18012 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
18013
18014         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
18015         
18016         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
18017         check after MONO_VTADDR. Fixes pinvoke2.exe.
18018
18019         * marshal.h marshal.c metadata.h: Add beginnings of support for
18020         ftnptr -> delegate marshalling.
18021
18022 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
18023
18024         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
18025         * threads.c: Fix warnings.
18026
18027 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
18028
18029         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
18030         * icall.c: Registered icalls for Suspend and Resume.
18031         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
18032           Thread.Abort.
18033         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
18034         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
18035         * process.c: Use WaitForSingleObjectEx.
18036         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
18037           checkpoints.
18038         * threads.c, threads.h: Make use of new Ex wait methods. Improved
18039           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
18040           for Suspend and Resume. Added new mono_thread_stop, used for stoping
18041           background threads. Added basic support for Abort in Windows.
18042           Start new threads using a managed delegate invoke wrapper. This wrapper
18043           has an interruption checkpoint that is needed since an interruption
18044           can be requested before the thread leaves the unmanaged code that starts 
18045           the thread.
18046         * marshal.c: Added interruption checkpoint after every native call, and
18047           also before managed calls for wrappers called from unmanaged code to
18048           go into managed code.
18049         * object.h: Added new field in MonoThread to keep track of interruption
18050           requests.
18051
18052 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
18053
18054         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
18055         calls.
18056
18057 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18058
18059         * appdomain.c:
18060         * assembly.c:
18061         * gc.c:
18062         * locales.c:
18063         * mono-config.c:
18064         * rand.c: getenv -> g_getenv (windows!)
18065
18066         * process.c: complete_path is also used on non-windows platforms.
18067
18068 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18069
18070         * icall.c: new signature for Process_Start.
18071
18072         * process.[ch]: new signature for Process_Start. If we're on windows
18073         and UseShellExecute is false, we have to search for the program by
18074         ourselves if we don't get a full path.
18075
18076 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
18077
18078         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
18079         marshalling and call CleanUpNativeData if needed. Fixes #58646.
18080
18081 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18082
18083         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
18084         Fixes bug #58373.
18085
18086 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18087
18088         * process.c: use double quotes to quote program name and arguments on
18089         windows. Fixes bug #58575.
18090
18091 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18092
18093         * file-io.c: don't return "." and ".." when using windows Find*File.
18094
18095 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
18096
18097         * marshal.c: Don't pass wrappers to message init because method 
18098         addressed used to lookup metadata. part of remoting[2|3] fix.
18099
18100 2004-05-15  Jackson Harper  <jackson@ximian.com>
18101
18102         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
18103         path is essentially the same as MONO_PATH except that it points to
18104         GACs instead of lib directories.
18105         * loader.h: The user gac is gone so we dont need function to
18106         enable/disable it.
18107         * mono-config.c: user gac option is now gone.
18108         
18109 2004-05-15  Jackson Harper  <jackson@ximian.com>
18110
18111         * culture-info.h: Make defines more consistent, add calendar data
18112         to the culture info table.
18113         * culture-info-tables.h: Add basic calendar data. Basically
18114         everyone gets default gregorian until all the data is
18115         updated.
18116         * locales.c: Use the new consistent defines. Set calendar data for
18117         culture info objects.
18118         * object.h: add a field for calendar data to CultureInfo
18119         
18120 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
18121
18122         * image.c: image->runtime_invoke_cache is keyed on signatures now.
18123         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
18124         a signature.
18125         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
18126         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
18127         an extra param that is the pointer of the method to invoke. The IL for
18128         the invoke method is no longer specific to the method, but to the
18129         signature of the method. Thus, we can share the same code for multiple
18130         methods. This reduces the number of methods that have to be compiled.
18131
18132 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
18133
18134         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
18135
18136         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18137
18138         * icall.c: Optimize Buffer.BlockCopy.
18139
18140 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18141
18142         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
18143         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
18144         quote). Changed them to "MMMM yyyy".
18145
18146 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
18147
18148         * rand.c
18149         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
18150
18151 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
18152
18153         * reflection.h: Updated after changes to managed structures.
18154
18155         * appdomain.c: Bump corlib version.
18156
18157 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
18160         windows.
18161
18162 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18163
18164         * Makefile.am: link to ../os/libmonoos.la on windows.
18165
18166         * assembly.c:
18167                 -If MONO_DEBUG, warn about non-existing directories in
18168                 MONO_PATH.
18169                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
18170                 compile time variable.
18171                 -Removed init_default_path and call mono_set_rootdir from
18172                 libmonoos.a instead (windows only).
18173
18174         * assembly.h: declare mono_assembly_getrootdir().
18175
18176         * domain.c:
18177         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
18178
18179         * loader.c: s/getenv/g_getenv/
18180
18181 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
18182
18183         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
18184
18185         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
18186
18187         * metadata.h: Add new marshalling conversions.
18188
18189         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
18190         function.
18191
18192         * reflection.c (mono_reflection_get_type): Lookup the type in all
18193         modules of a multi-module assembly. Fixes #58291.
18194
18195 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
18196
18197         * threads.c: Before aborting a background, set the StopRequested
18198         state.  This avoids throwing the Abort exception.
18199         In mono_thread_manage, don't continue with the shutdown until all
18200         aborted threads have actually stopped.
18201
18202 2004-05-10  Jackson Harper  <jackson@ximian.com>
18203
18204         * locales.c: Remove the modifier from culture names.
18205         
18206 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18207
18208         * Makefile.am: monosn is not installed any more. It has been deprecated
18209         in favor of sn.
18210
18211 2004-05-07  Jackson Harper  <jackson@ximian.com>
18212
18213         * locales.c
18214         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
18215         Fix array construction, add bailout if the length is 0.
18216
18217 2004-05-07  Dick Porter  <dick@ximian.com>
18218
18219         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
18220         machine doesn't have a DNS entry.  Patch by Urs Muff
18221         (umuff@quark.com), fixes bug 57928.
18222
18223 2004-05-06  Jackson Harper  <jackson@ximian.com>
18224
18225         * reflection.c: Handle null PublicTokens properly. alloc mem for
18226         assembly names culture so we dont crash when freeing it.
18227         
18228 2004-05-06  Jackson Harper  <jackson@ximian.com>
18229
18230         * assembly.c: Check the usergac when loading with partial names.
18231         
18232 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18233
18234         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
18235         does nothing for now (not required for Linux/Windows) but the class
18236         library can call it (and a newer or modified runtime could need it).
18237         * icall.c: Registred icall.
18238
18239 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18240
18241         * loader.c: prints a message on module loading error we set MONO_DEBUG
18242         environment variable.
18243
18244 2004-05-05  Jackson Harper  <jackson@ximian.com>
18245
18246         * appdomain.c: Handle PublicKeyToken=null properly.
18247         
18248 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18249
18250         * environment.c|h: Added icall ves_icall_System_Environment_
18251         GetOSVersionString to get the current OS version as a string.
18252         * icall.c: Registred icall.
18253
18254 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
18255
18256         * object.c: in mono_object_get_virtual_method(), take into account that
18257         non-virtual methods don't have a slot in the vtable. Check needed when
18258         the object is a proxy.
18259
18260 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
18261
18262         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
18263         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
18264
18265         * object.c (mono_class_compute_gc_descriptor): Fix warning.
18266
18267         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
18268         passed when a valuetype is expected.
18269
18270         * object.c (mono_unhandled_exception): Only set the exit code if the
18271         exception happens in the main thread. Fixes thread5.exe.
18272
18273         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
18274         invalid names. Fixes #58047.
18275
18276 2004-05-03  Jackson Harper  <jackson@ximian.com>
18277
18278         * assembly.c: This line was committed accidently and is unneeded.
18279         
18280 2004-05-03  Jackson Harper  <jackson@ximian.com>
18281
18282         * icall.c: Add new icall for Assembly::LoadWithPartialName
18283         * assembly.c/.h: new function that probes the GAC to load partial
18284         assembly names by Paolo Molaro.
18285         
18286 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18287
18288         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
18289         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
18290         (type_get_fully_qualified_name): Added PublicKeyToken when building a
18291         full type name.
18292
18293 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18294
18295         * appdomain.c: fixed check for 'neutral' culture and removed warning.
18296         * reflection.c: fix bug when parsing a full type name and Version is not
18297         the last thing in the string.
18298
18299 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
18300
18301         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
18302         crashes when it is freed.
18303
18304 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18305
18306         * assembly.c: print the compat warning to stderr.
18307
18308 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
18309
18310         * assembly.c (mono_assembly_load_references): Add a compatibility
18311         hack to run old applications that might be still referencing the
18312         3300-based assemblies, only do this for System.xxx.
18313
18314 2004-05-01  Jackson Harper  <jackson@ximian.com>
18315
18316         * appdomain.c: If the culture is neutral we set it to "".
18317         
18318 2004-04-29  Jackson Harper  <jackson@ximian.com>
18319
18320         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
18321
18322 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
18323  
18324         * string-icalls.c: added low overhead function for copying chars
18325         * icall.c: added needed icall for the above function
18326  
18327 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18328
18329         * icall.c: fix return value of get_global_assembly_cache.  Implemented
18330         Environment.GetLogicalDrives.
18331
18332 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
18333
18334         * rand.c: try and talk to egd or prngd
18335         for random bytes if opening devices fail.
18336
18337 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
18338
18339         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
18340         alignment for the type using the native alignment of its members 
18341         instead of using klass->min_align.
18342
18343         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
18344
18345 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18346
18347         * file-io.c:
18348         * socket-io.c: added check for sys/aio.h.
18349
18350 2004-04-28  Dick Porter  <dick@ximian.com>
18351
18352         * threads.c: Don't abort a thread thats already aborting, when
18353         terminating everything.
18354
18355 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18356
18357         * icall.c: added 2 new async calls for Socket.
18358
18359         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
18360         IO on *nix systems.
18361
18362         * threadpool.c: removed unused variable.
18363
18364 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
18365
18366         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
18367
18368 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
18369
18370         * locales.c: put back string_invariant_tolower () and
18371         string_invariant_toupper ().
18372
18373 2004-04-26 David Waite <mass@akuma.org>
18374
18375         * file-io.h:
18376         * socket-io.h:
18377         * threads.h:
18378         * unicode.h: remove comma from end of enumeration declarations
18379
18380 2004-04-26 David Waite <mass@akuma.org>
18381
18382         * debug-mono-symfile.h:
18383         * decimal.c:
18384         * mono_debug.h:
18385         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
18386
18387
18388 2004-04-26  Jackson Harper  <jackson@ximian.com>
18389
18390         * appdomain.c: Increment version number.
18391         
18392 2004-04-26  Jackson Harper  <jackson@ximian.com>
18393
18394         * appdomain.c: Set assembly references public token value when
18395         PublicKeyToken is specified, not the hash_value. Free public token
18396         values when free assembly name data. Previously the public key
18397         token was hex decoded, however we are using hex encoded public key
18398         tokens, so this is not neccasary.
18399         * assembly.c: Lookup assemblies in the gac if their public token
18400         value is set. Add function to allow enabling user gac
18401         lookups. Specify whether or not the assembly was loaded from the
18402         GAC. Compare full assembly names when checking the cache for
18403         assemblies (Temporarily disabled see comment in code). Remove
18404         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
18405         specifies trace-loader they get extra info to stdout on the
18406         loading of assemblies.
18407         * image.h: Add a field for an assembly references public token
18408         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
18409         whether an assembly has been loaded from the GAC.
18410         * image.c: Remove a corlib -> mscorlib name mapping.
18411         * loader.h: Add function to enable/disable the user gac.
18412         * mono-config.c: Check if the usergac is enabled in the config
18413         file.
18414         * icall.c: New icall to determine whether or not an assembly has
18415         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
18416         * tabldefs.h: Add constant for assemblyref flag that specifies a
18417         full public key is used instead of a public token.
18418         * reflection.c: Remove mscorlib -> corlib mappings. Set
18419         PublicTokenValue instead of hash value. This value is a hex
18420         string so it does not need to be expanded.
18421
18422 2004-04-26  Martin Baulig  <martin@ximian.com>
18423
18424         * mono-debug-debugger.c (mono_debugger_initialize): Set
18425         `mono_debugger_initialized' before calling mono_debug_lock().
18426
18427 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
18428
18429         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
18430           InternalToUpper/InternalToLower.
18431         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
18432           removed invariant culture shortcut.  This is now done in managed code.
18433         * locales.c: (string_invariant_toupper/tolower) removed.
18434
18435 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18436
18437         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
18438         Added Poll internal call.
18439
18440         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
18441         call for Poll. Select was too heavy for polling a single socket.
18442
18443         * threadpool.[ch]: added mono_threadpool_cleanup.
18444         * threads.c: use it. Don't use Thread_Abort on windows.
18445
18446 2004-04-23  Martin Baulig  <martin@ximian.com>
18447
18448         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
18449
18450 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
18451
18452         * icall.c: Registred new icalls for key pair protection and added an
18453         icall for Environment.GetFolderPath on Windows.
18454         * security.c|h: Added new icalls for key pair protection.
18455
18456 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18457
18458         * socket-io.c: don't display the non-supported family warning for known
18459         families. Now this is not displayed on windows when checking support
18460         for IPv4/IPv6.
18461
18462 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18463
18464         * class.c: don't display the layout warning for static fields.
18465
18466 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
18467
18468         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
18469         * locales.c, locales.h: Added new icalls for culture-specific
18470         Char.ToLower and Char.ToUpper.
18471
18472 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18473
18474         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
18475         by David Waite.
18476
18477 2004-04-20  Martin Baulig  <martin@ximian.com>
18478
18479         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
18480         of the type name before passing it to mono_reflection_type_from_name().
18481
18482 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
18483
18484         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
18485         encodings here. Fixes #56965.
18486
18487 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
18488
18489         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18490         fix test on strstr result not that I can see anything that
18491         relies on the result.
18492
18493 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
18494
18495         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
18496         Fixes #57081.
18497
18498         * marshal.c (mono_marshal_get_string_encoding): New helper function.
18499
18500         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
18501         function to determine which marshalling to use for strings. Fixes
18502         #56965.
18503
18504         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
18505
18506         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
18507
18508 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
18509
18510         * icall.c: #include mono-config.h
18511
18512 2004-04-15  Jackson Harper  <jackson@ximian.com>
18513
18514         * culture-info-tables.h: Fix date formats for en-US culture.
18515         
18516 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
18517
18518         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
18519         ThreadPool.SetMinThreads.
18520         * threadpool.c: Implemented ThreadPool.GetMinThreads and
18521         ThreadPool.SetMinThreads.
18522
18523 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18524
18525         * mono-config.c: also load the .config file in the directory
18526         where the assembly was found.
18527
18528 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
18529
18530         * assembly.c: load per-assembly config files.
18531         * icall.c: decrapified code to get the config dir and moved to
18532         mono-config.c.
18533         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
18534         per-assembly config files. When doing a dll map lookup give precedence
18535         to the per-assembly data.
18536
18537 2004-04-14  Martin Baulig  <martin@ximian.com>
18538
18539         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
18540         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
18541         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
18542
18543         * mono-debugger-debugger.c: While the debugger is locked, remember
18544         whether the symbol tables have changes and send one single
18545         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
18546
18547 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
18548
18549         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
18550
18551         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
18552         function.
18553
18554         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
18555         account when marshalling string arrays. Fixes #56965.
18556
18557 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
18558
18559         * icall.c: Add new icalls mapping for security.
18560         * security.c|h: Add internal calls for WindowsIdentity,
18561         WindowsImpersonationContext and WindowsPrincipal.
18562
18563 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
18564
18565         * class.c: Added comment to ensure the System.MonoDummy class
18566         is removed when no longer necessary
18567
18568 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
18569
18570         * appdomain.c: Pass arguments to the bootstraping exceptions to
18571         minimize JITed methods at boot
18572
18573         * metadata.c (mono_exception_from_name_two_strings): Allow for the
18574         second string to be null.
18575
18576         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18577         Change the protocol to minimize the JIT methods at startup.  Now
18578         it Returns the internal codepage, if the value of "int_code_page"
18579         is 1 at entry, and we can not compute a suitable code page
18580         number, returns the code page as a string.
18581
18582 2004-04-13  Jackson Harper  <jackson@ximian.com>
18583
18584         * culture-info-tables.h: Fix number of decimal digits for all
18585         english locales.
18586
18587 2004-04-13  Jackson Harper  <jackson@ximian.com>
18588
18589         * icall.c: Clairfy out of sync error message. It is not always
18590         your corlib that is out of sync.
18591
18592 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
18593
18594         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
18595         properties when only the set accessor is overriden. Fixes #55874.
18596
18597 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
18598
18599         * assembly.c (mono_assembly_load_references): Make this thread safe.
18600         Fixes #56327.
18601
18602 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
18603
18604         * monosn.c: Add missing initialization calls.
18605
18606 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
18607
18608         * locales.c:
18609         ves_icall_System_Globalization_CultureInfo_construct_number_format
18610         Fix g_assert so it compiles on fussier compilers re int/ptr
18611         mismatch
18612
18613 2004-04-08  Dick Porter  <dick@ximian.com>
18614
18615         * socket-io.h:
18616         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
18617         53992.  Also rearrange the code so that the internal calls return
18618         an error value and exceptions are thrown from managed code.
18619
18620         * icall.c: Add type info to the socket icalls.
18621
18622 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18623
18624         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
18625         owes me a beer.
18626
18627 2004-04-07  Martin Baulig  <martin@ximian.com>
18628
18629         * class.c (mono_class_from_generic_parameter): Don't default
18630         `klass->parent' to `mono_defaults.object_type'.
18631
18632 2004-04-07  Martin Baulig  <martin@ximian.com>
18633
18634         * reflection.c (mono_reflection_initialize_generic_parameter): Set
18635         `param->pklass->reflection_info'.       
18636
18637 2004-04-07  Jackson Harper  <jackson@ximian.com>
18638
18639         * culture-info-tables.h: Fix date separator symbol.
18640         
18641 2004-04-07  Martin Baulig  <martin@ximian.com>
18642
18643         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
18644         from System.Type to System.MonoType.
18645
18646 2004-04-07  Martin Baulig  <martin@ximian.com>
18647
18648         * reflection.h
18649         (MonoReflectionGenericParam): Added `has_reference_type' and
18650         `has_value_type' fields.
18651
18652         * reflection.c (mono_image_get_generic_param_info): Encode the
18653         correct flags if we have the `class' or `struct' constraint.
18654
18655 2004-04-07  Martin Baulig  <martin@ximian.com>
18656
18657         * reflection.h
18658         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
18659
18660 2004-04-07  Jackson Harper  <jackson@ximian.com>
18661
18662         * appdomain.c: Revert extra patches, just wanted to bump the
18663         version number.
18664         
18665 2004-04-07  Jackson Harper  <jackson@ximian.com>
18666
18667         * Makefile.am: Add culture-info private headers.
18668         * icall.c: Add new icalls for contructing locales.
18669         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
18670         * locales.h: Declare new culture info construction methods.
18671         * object.h: Add new fields used to avoid the CultureMap to
18672         MonoCultureInfo.
18673         * culture-info.h: Definition of structs used in the culture info
18674         tables.
18675         * culture-info-tables.h: Autogenerated tables that contain culture
18676         info data. This file was generated with the locale-builder tool.
18677         * appdomain.c: Incement corlib version number.
18678         
18679 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
18680
18681         * appdomain.c: (mono_runtime_init) move mono_thread_init
18682         to before mono_object_new calls so critical sections
18683         are initialized before use.
18684
18685 2004-04-07  Martin Baulig  <martin@ximian.com>
18686
18687         * icall.c
18688         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
18689         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
18690         (ves_icall_MonoGenericParam_initialize): Removed.
18691         (monogenericparam_icalls): Removed.
18692         (generictypeparambuilder_icalls): Added new table for
18693         System.Reflection.Emit.GenericTypeParameterBuilder.
18694
18695         * reflection.c
18696         (mono_reflection_define_generic_parameter): Removed.
18697         (mono_reflection_initialize_generic_parameter): This is now called
18698         from GenericTypeParameterBuilder's .ctor.
18699
18700 2004-04-06  Martin Baulig  <martin@ximian.com>
18701
18702         * class.c (mono_class_init): Don't inflate nested classes in a
18703         generic instance.
18704         (mono_type_get_name_recurse): Include the generic arguments for
18705         generic instances and generic type declarations.
18706         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
18707         (_mono_class_get_instantiation_name): Removed.
18708         (mono_class_create_generic): Always use `gklass->name' as our name.
18709
18710         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
18711
18712         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
18713         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
18714         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
18715         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
18716         closed generic methods here.
18717
18718         * reflection.c
18719         (mono_reflection_generic_inst_get_nested_types): Removed.
18720         (inflate_mono_method): Copy the generic parameters from the
18721         MonoMethodHeader into out MonoGenericMethod.
18722
18723 2004-04-06  Martin Baulig  <martin@ximian.com>
18724
18725         * row-indexes.h
18726         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
18727
18728         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
18729
18730         * reflection.c (build_compressed_metadata): If we have any entries
18731         in the GenericParam, MethodSpec or GenericParamConstraint tables,
18732         set the header version to 1.1.
18733
18734 2004-04-06  Martin Baulig  <martin@ximian.com>
18735
18736         * class.c (mono_class_init): If we're a generic instance,
18737         initialize our nested classes, too.
18738         (_mono_class_get_instantiation_name): Deal with the new `!%d'
18739         suffix. 
18740
18741 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18742
18743         * process.c: quote the argument passed to the shell on windows.
18744
18745 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
18746
18747         * threads.c (mono_alloc_special_static_data): Allow this to be
18748         called during startup.
18749
18750 2004-04-02  Martin Baulig  <martin@ximian.com>
18751
18752         * icall.c
18753         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
18754
18755 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
18756
18757         * icall.c: Fix build.
18758
18759 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
18760
18761         * Makefile.am: Added security.c|h.
18762         * icall.c: Added icall for get_UserName;
18763         * security.c: New file for security related icalls. Added function
18764         get_UserName for System.Environment (fix #56144).
18765         * security.h: New. Header file for security.c
18766
18767 2004-04-02  Dick Porter  <dick@ximian.com>
18768
18769         * icall.c: Deleted the icalls that were obsoleted some time ago
18770         by the ICU string code, and which were mixed into the icall
18771         rearranging.  Fixes bug 55969.
18772
18773         * string-icalls.h: 
18774         * string-icalls.c: Deleted the code that those icalls reference.
18775
18776 2004-04-01  Martin Baulig  <martin@ximian.com>
18777
18778         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
18779
18780         * class.c (mono_class_from_generic_parameter): Don't set 
18781         TYPE_ATTRIBUTE_INTERFACE.
18782         (my_mono_class_from_generic_parameter): Likewise.
18783
18784 2004-04-01  Martin Baulig  <martin@ximian.com>
18785
18786         * loader.c (find_method): Added an optional `MonoClass *ic'
18787         argument to search in a specific interface.
18788         (mono_get_method_constrained): New public function.
18789
18790 2004-04-01  Martin Baulig  <martin@ximian.com>
18791
18792         * reflection.c (mono_image_get_generic_field_token): Use the
18793         `handleref' cache here.
18794
18795 2004-04-01  Martin Baulig  <martin@ximian.com>
18796
18797         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
18798
18799         * reflection.c (create_generic_typespec): Use the `typespec' hash
18800         here, not the `typeref' one.    
18801
18802 2004-04-01  Martin Baulig  <martin@ximian.com>
18803
18804         * class.c (mono_class_inflate_generic_type): Moved the
18805         functionality into a new static inflate_generic_type() which
18806         returns NULL if it didn't do anything.  Only increment the
18807         `mono_stats.inflated_type_count' if we actually inflated
18808         something.
18809         (mono_class_get_full): Check the classes type to see whether we
18810         need to inflate it; also inflate MONO_TYPE_(M)VAR.
18811
18812 2004-04-01  Jackson Harper  <jackson@ximian.com>
18813
18814         * reflection.c: Set culture for assembly references.
18815         
18816 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
18817
18818         * reflection.[ch], icall.[ch], Fix support for pinning variables.
18819
18820 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18821
18822         * assembly.c:
18823         (do_mono_assembly_open): the critical section also covers
18824         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
18825
18826 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18827
18828         * threads.c:
18829         (mono_manage_threads): abort the background threads when finishing.
18830         Fixes bug #47232.
18831
18832 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18833
18834         * gc.c: only close the done_event handle if there was no timeout.
18835         C-ified comments.
18836
18837 2004-03-30  Martin Baulig  <martin@ximian.com>
18838
18839         * icall.c (icall_entries): It's called "System.Activator", not
18840         "System.Activation".    
18841
18842 2004-03-30  Martin Baulig  <martin@ximian.com>
18843
18844         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
18845         (mono_class_create_from_typespec): Likewise.
18846
18847 2004-03-30  Martin Baulig  <martin@ximian.com>
18848
18849         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
18850         `has_ctor_constraint' and `initialized'.
18851
18852 2004-03-30  Martin Baulig  <martin@ximian.com>
18853
18854         * reflection.c (encode_new_constraint): New static function to add
18855         the constructor constraint attribute to a type parameter.
18856         (encode_constraints): Call encode_new_constraint() if necessary.
18857
18858         * reflection.h
18859         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
18860
18861         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
18862         
18863 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
18864
18865         * reflection.c, icall.c: add support for pinning variables. 
18866
18867 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
18868
18869         * marshal.c (mono_marshal_get_managed_wrapper):
18870         init bool local with zero rather than null.
18871
18872 2004-03-29  Martin Baulig  <martin@ximian.com>
18873
18874         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
18875         the "official" behavior here.
18876         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
18877
18878 2004-03-29  Martin Baulig  <martin@ximian.com>
18879
18880         * icall.c: Reflect latest API changes.
18881
18882 2004-03-29  Martin Baulig  <martin@ximian.com>
18883
18884         * loader.c (mono_get_method_from_token): Also call
18885         mono_metadata_load_generic_params () for abstract and interface
18886         methods; replace the type arguments in the method signature with
18887         the ones which are loaded from the metadata.
18888
18889 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
18890
18891         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
18892         of the lock is not the current thread. MS.NET don't do it, in spite of
18893         what the documentation says. See bug #56157.
18894
18895 2004-03-28  Martin Baulig  <martin@ximian.com>
18896
18897         * class.c (mono_class_init): Don't call init_properties() and
18898         init_events() for generic instances; set `prop->parent' when
18899         inflating properties.
18900
18901         * reflection.c (mono_generic_inst_get_object): Call
18902         `mono_class_init (ginst->klass)'.
18903         (mono_type_get_object): Only create a MonoGenericInst if your
18904         generic type is a TypeBuilder.
18905         (do_mono_reflection_bind_generic_parameters): Only set
18906         `ginst->is_dynamic' if our generic type is a TypeBuilder.
18907
18908 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
18909
18910         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
18911         Fixes #56091.
18912
18913 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18914
18915         * icall.c: added Kill_internal icall.
18916         * process.[ch]: added Kill_internal icall.
18917
18918 2004-03-25  Martin Baulig  <martin@ximian.com>
18919
18920         * class.h (MonoStats): Added `generic_instance_count',
18921         `inflated_method_count', `inflated_type_count' and
18922         `generics_metadata_size'.       
18923
18924 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18925
18926         * reflection.c: no warnings now.
18927
18928 2004-03-25  Martin Baulig  <martin@ximian.com>
18929
18930         * class.c (mono_class_get_full): New public function; does a
18931         mono_class_get(), but also takes a `MonoGenericContext *'.
18932
18933         * loader.c (mono_field_from_memberref): Renamed to
18934         `field_from_memberref', made static and added `MonoGenericContext *'
18935         argument.
18936         (mono_field_from_token): Added `MonoGenericInst *' argument.
18937         (method_from_memberef): Likewise.
18938         (mono_get_method_from_token): Likewise.
18939         (mono_get_method_full): New public function; does a
18940         mono_get_method(), but also takes a `MonoGenericContext *'.
18941
18942         * verify.c (mono_method_verify): Get the method's generic context
18943         and pass it to mono_field_from_token(), mono_get_method_full() and
18944         mono_class_get_full().
18945
18946 2004-03-25  Martin Baulig  <martin@ximian.com>
18947
18948         * class.c (mono_class_inflate_generic_type): Take a
18949         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
18950         `MonoGenericMethod *'.
18951
18952 2004-03-25  Martin Baulig  <martin@ximian.com>
18953
18954         * loader.h (MonoMethodInflated): Store the MonoGenericContext
18955         instead of the MonoGenericMethod here.
18956
18957 2004-03-25  Martin Baulig  <martin@ximian.com>
18958
18959         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
18960         each time we create a new MonoGenericInst, we also create a new
18961         context which points back to us.
18962
18963         * class.c (inflate_method): Use `ginst->context' instead of
18964         creating a new context.
18965
18966         * loader.c (method_from_memberref): Use
18967         `klass->generic_inst->context' instead of creating a new context.
18968
18969 2004-03-25  Martin Baulig  <martin@ximian.com>
18970
18971         * class.h (MonoGenericContext): New struct.
18972         (MonoGenericMethod): Removed `generic_inst'.
18973
18974         * class.c (mono_class_inflate_generic_method): Take a
18975         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
18976
18977 2004-03-25  Martin Baulig  <martin@ximian.com>
18978
18979         * loader.h (MonoMethodInflated): New typedef.
18980
18981         * metadata.h (MonoMethodSignature): Removed `gen_method', make
18982         `generic_param_count' consume just 30 bits, added `is_inflated'
18983         and `has_type_parameters' flags (one bit each).
18984
18985         * class.c (mono_class_inflate_generic_method): Create a
18986         MonoMethodInflated instead of a MonoMethodNormal and set
18987         `is_inflated' in the method signature.
18988
18989         * class.h (MonoGenericMethod): Removed `generic_method'.
18990
18991 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
18992
18993         * image.c: Make sure the name of a MonoImage is always an absolute path.
18994           This fixes bug #54415.
18995
18996 2004-03-24  Martin Baulig  <martin@ximian.com>
18997
18998         * class.c (mono_class_setup_vtable): If we're a generic instance,
18999         use our generic type's vtable size.
19000
19001 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
19002
19003         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
19004         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
19005         problems.
19006
19007 2004-03-23  Martin Baulig  <martin@ximian.com>
19008
19009         * class.h (MonoDynamicGenericInst): Added `int count_events' and
19010         `MonoEvent *events'.
19011
19012         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
19013         (typebuilder_icalls): Added "get_event_info"; calls
19014         mono_reflection_event_builder_get_event_info(). 
19015
19016         * reflection.c (mono_reflection_generic_inst_initialize): Added
19017         `MonoArray *events'.
19018         (mono_reflection_event_builder_get_event_info): New function.
19019
19020 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
19021
19022         * object.h: add mono_type_initialization_init
19023
19024         * object.c (mono_runtime_class_init): 
19025         implement class constructor synchronization rules
19026         to cope with threading issues.  
19027         add mono_type_initialization_init
19028
19029         * appdomain.c (mono_runtime_init): call 
19030         mono_type_initialization_init
19031
19032         * class.h: removing initializing field from MonoVTable
19033
19034 2004-03-23  Martin Baulig  <martin@ximian.com>
19035
19036         * class.c (my_mono_class_from_generic_parameter): Use
19037         `param->name' if it's not NULL. 
19038
19039 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
19040
19041         * class.c: do not insert non-virtual methods in the vtable.
19042         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
19043         that means the method is non-virtual. This never would have
19044         happened before.
19045
19046 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
19047
19048         * profiler.c: Added lock for accessing coverage_hash.
19049
19050 2004-03-22  Martin Baulig  <martin@ximian.com>
19051
19052         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
19053         `method->method->signature->generic_param_count != 0' to make it
19054         work for interface methods.
19055
19056 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19057
19058         * process.c: quote the string passed to the shell using g_shell_quote.
19059
19060 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19061
19062         * threads.c:
19063         (mono_threads_manage): don't remove the finalizer thread and self
19064         from the threads hash table so that mono_thread_manage can be called
19065         more than once.
19066
19067 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19068
19069         * process.c: quote the arguments when UseShellExecute is true. Fixes
19070         bug #55790.
19071
19072 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19073
19074         * threads.c: set mono_thread_detach as a cleanup routine for every
19075         thread. This way it's always executed upon thread termination, either
19076         aborted or finished normally. No more xsp hangs!
19077
19078 2004-03-17  Martin Baulig  <martin@ximian.com>
19079
19080         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
19081         `int count_nested' and a `MonoType **nested'.
19082
19083         * reflection.c (mono_reflection_bind_generic_parameters): Moved
19084         most of the functionality into a new static
19085         do_mono_reflection_bind_generic_parameters() and don't take a
19086         `MonoType *nested_in' argument any more.  Don't compute nested
19087         types here.
19088         (mono_reflection_generic_inst_get_nested_types): New public method
19089         to get nested types.
19090
19091         * class.c (mono_class_create_generic): Set `klass->nested_in' if
19092         we're a nested class.
19093
19094         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
19095         mono_reflection_generic_inst_get_nested_types() to compute the
19096         nested types.
19097
19098 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19099
19100         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
19101         descriptive error message under windows.
19102         
19103 2004-03-17  Martin Baulig  <martin@ximian.com>
19104
19105         * class.c (dup_type): Added `const MonoType *original' argument;
19106         copy the attrs from the original type.
19107
19108 2004-03-17  Martin Baulig  <martin@ximian.com>
19109
19110         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
19111         `m->generic_inst_cache' here.
19112
19113 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
19114
19115         * exception.h exception.c: Add stack_overflow_exception.
19116
19117 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19118
19119         * threadpool.c:
19120         (overlapped_callback): call SetEvent *after* invoking the callback.
19121         No need to call CloseHandle.
19122
19123 2004-03-16  Martin Baulig  <martin@ximian.com>
19124
19125         * reflection.c (mono_image_get_fieldref_token): Take a
19126         `MonoReflectionField *' instead of a `MonoClassField *' and a
19127         `MonoClass *'; store the `MonoReflectionField *' in the hash.
19128
19129 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19130
19131         * appdomain.c: don't add the culture to the filename we're looking for
19132         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
19133
19134 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19135
19136         * locales.c: don't ignore symbols when doing case insensitive compares.
19137         Thanks Dick! Fixes bug #54046.
19138
19139         * threads.c: surround 'threads' usage with enter/leave in
19140         mono_thread_manage.
19141
19142 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
19143
19144         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
19145         implicitly marshalled as [Out]. Fixes #55450.
19146
19147         (mono_marshal_get_runtime_invoke): Zero out the result if there is
19148         an exception.
19149
19150 2004-03-16  Martin Baulig  <martin@ximian.com>
19151
19152         * class.c (mono_class_from_generic_parameter): Use the actual
19153         parameter name. 
19154
19155 2004-03-16  Martin Baulig  <martin@ximian.com>
19156
19157         * reflection.c (type_get_signature_size): New static function.
19158         Compues the size of the type in a method signature.
19159         (method_get_signature_size): New static function; calls
19160         type_get_signature_size() to compute the actual size of the
19161         method's signature.
19162         (method_encode_signature): Use method_get_signature_size() to get
19163         the signature's size rather than using `nparams * 10'.
19164
19165 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19166
19167         * file-io.h: define here WapiOverlapped on windows. I don't want the
19168         regular OVERLAPPED one.
19169
19170         * file-io.c:
19171         * threadpool.c: somehow, BindIoCompletionCallback is not found.
19172         Disabling AIO on windows.
19173
19174 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19175
19176         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
19177         bug #55385.
19178
19179 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19180
19181         * appdomain.c: upgraded corlib version.
19182
19183         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
19184         and BeginWrite. Allow opening files for asynchrnous operations.
19185
19186         * file-io.h: new struct that maps FileStreamAsyncResult.
19187         * icall.c: added new icalls.
19188         * process.[ch]: support setting child process environment variables
19189         and use the SHELL or COMSPEC when UseShellExecute is true.
19190
19191         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
19192         callback for async. IO is here and also BindHandle.
19193
19194         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
19195         from here.
19196
19197 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
19198
19199         * reflection.c (create_custom_attr): Allow len == 0.
19200
19201         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
19202         computation on big-endian machines.
19203
19204 2004-03-13  Martin Baulig  <martin@ximian.com>
19205
19206         * class.h (MonoGenericInst): Added `int count_ifaces'.
19207
19208         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
19209         `ginst->count_ifaces' instead `klass->interface_count' since we
19210         may get called before the vtable is created.
19211
19212         * loader.c (mono_method_get_param_names): If we're a generic
19213         instance, return and don't initialize the class.
19214
19215         * reflection.c (mono_reflection_setup_generic_class): Don't call
19216         ensure_runtime_vtable().
19217         (mono_reflection_bind_generic_parameters): Set
19218         `ginst->count_ifaces'.
19219
19220 2004-03-11  Jackson Harper <jackson@ximian.com>
19221
19222         * icall.c:
19223         * unicode.c:
19224         * unicode.h: Remove unused System.Char icalls.
19225         
19226 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
19227
19228         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
19229         code when we P/Invoke the first library in Windows.Forms, instead
19230         of when we first open the assembly.
19231
19232         * assembly.c: Drop the lookup from here.
19233
19234 2004-03-10  Martin Baulig  <martin@ximian.com>
19235
19236         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
19237         class for properties, fields and events.  Finally fixes #54945.
19238
19239 2004-03-10  Martin Baulig  <martin@ximian.com>
19240
19241         * metadata.c (mono_metadata_class_equal): New static function;
19242         checks whether two generic instances or two generic parameters are
19243         equal.
19244         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
19245         compare classes.        
19246
19247 2004-03-10  Martin Baulig  <martin@ximian.com>
19248
19249         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
19250
19251         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
19252         argument and write it into the `reflection_info' field.
19253
19254         * icall.c
19255         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
19256         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
19257
19258 2004-03-09  Jackson Harper  <jackson@ximian.com>
19259
19260         * char-conversions.h: use 8 bits for numeric data its all we need
19261         * icall.c: numeric data is only 8 bits now.
19262
19263 2004-03-09  Martin Baulig  <martin@ximian.com>
19264
19265         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
19266
19267         * class.c (init_properties, init_events): Initialize the new
19268         `parent' field.
19269
19270         * reflection.c (typebuilder_setup_properties): Likewise.
19271         (typebuilder_setup_events): Likewise.
19272
19273         * reflection.h (MonoEventInfo): Replaced `parent with
19274         `declaring_type' and `reflected_type'.
19275
19276         * icall.c (ves_icall_get_property_info): Distinguish between
19277         declaring and reflected type.
19278         (ves_icall_get_event_info): Likewise.
19279
19280 2004-03-09  Martin Baulig  <martin@ximian.com>
19281
19282         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
19283         (ves_icall_Type_GetField): Correctly set field->klass.
19284
19285 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
19286
19287         * loader.h: Fix warning.
19288
19289 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
19290
19291         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
19292         library routine if present.  Notice that it will still continue
19293         executing even if its missing, for those working on the Gtk#
19294         edition of Windows.Forms.
19295
19296         * assembly.c (do_mono_assembly_open): If loading the
19297         System.Windows.Forms call mono_loader_wini_init.
19298
19299 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
19300
19301         * class.h: Added MonoRemoteClass struct.
19302         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
19303         function for MonoStrings.
19304         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
19305         Added internal call for getting the proxy type.
19306         * marshal.c: Get the type of transparent proxies from its remote_class.
19307         Added methods that generate the IL for type checks and casts:
19308         mono_marshal_get_isinst, mono_marshal_get_castclass, 
19309         mono_marshal_get_proxy_cancast.
19310         * marshal.h: Declaration of the previous new methods.
19311         * object.c: Added new moethods for creating and updating MonoRemoteClass
19312         instances: mono_remote_class, mono_upgrade_remote_class, 
19313         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
19314         * verify.c: FIx transparent_proxy_fields layout.
19315         * appdomain.c: Bump corlib version.
19316
19317 2004-03-04  Jackson Harper  <jackson@ximian.com>
19318
19319         * icall.c: Add icall to access char conversion tables.
19320         * char-conversions.h: Character conversion tables.
19321         * Makefile.am: Add char-conversions.h private header file.
19322         
19323 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
19324
19325         * appdomain.c (unload_thread_main): Increase unloading timeout to
19326         10 sec as a temporary workaround for Nant problems.
19327
19328 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
19329
19330         * gc.c: Add checks for GC_enable and GC_disable.
19331
19332         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
19333         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
19334         (bug #54988).
19335         
19336 2004-02-27  Martin Baulig  <martin@ximian.com>
19337
19338         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19339         `MonoReflectionType *' instead of a `MonoType *'.
19340
19341 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
19342
19343         * gc.c (run_finalize): Avoid finalizing the object representing the
19344         finalizer thread.
19345         (finalizer_thread): Fix warning.
19346
19347 2004-02-25  Martin Baulig  <martin@ximian.com>
19348
19349         * class.c (_mono_class_get_instantiation_name): Added `int offset'
19350         argument for nested types.
19351         (mono_class_create_generic): Added support for nested generictypes.
19352
19353         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
19354         `GList *nested'.
19355
19356         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
19357
19358         * reflection.c (method_encode_signature): Increase the minimum
19359         value of `size' from 10 to 11.
19360         (mono_reflection_bind_generic_parameters): Take `int type_argc'
19361         and `MonoType **types' arguments instead of the `MonoArray
19362         *types'; added `MonoType *nested_in'.  Recursively instantiate
19363         nested classes. 
19364
19365 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
19366
19367         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
19368         stack_overflow_ex members which are used by exception handling.
19369
19370         * appdomain.c (mono_runtime_init): Initialize the new members.
19371
19372         * gc.c (mono_gc_enable): New helper function.
19373         * gc.c (mono_gc_disable): New helper function.
19374
19375 2004-02-23  Martin Baulig  <martin@ximian.com>
19376
19377         * icall.c: I must have been really stupid - make it actually work
19378         this time ;-)
19379
19380 2004-02-23  Martin Baulig  <martin@ximian.com>
19381
19382         * loader.c (method_from_memberref): Only inflate the method if
19383         it's in another klass.
19384
19385 2004-02-23  Martin Baulig  <martin@ximian.com>
19386
19387         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
19388         (mono_class_init): If we're a generic instance and an interface,
19389         compute `class->interface_id'; also create `class->interfaces'
19390         here and inflate them.
19391
19392         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
19393         `ginst->is_open'.
19394         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
19395
19396         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
19397
19398 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
19399
19400         * reflection.c (method_encode_code): Improved the error message
19401         generated by the exception.
19402
19403 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19404
19405         * icall.c: Martin did not do what he said in the ChangeLog for
19406         2004-02-18, but put back the changes for properties and events.
19407         Commenting those changes out again and adding comment to bug #54518.
19408         
19409         * process.c: removed warning.
19410
19411 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
19412
19413         * marshal.c (emit_struct_conv): Print an error message instead of
19414         asserting when a type does not have the StructLayout attribute.
19415
19416 2004-02-20  Martin Baulig  <martin@ximian.com>
19417
19418         * reflection.c (mono_type_get_object): Also use the cache for
19419         generic instances.
19420         (mono_reflection_bind_generic_parameters): Always compute
19421         `ginst->ifaces'.        
19422
19423 2004-02-20  Martin Baulig  <martin@ximian.com>
19424
19425         * class.h (MonoGenericMethod): Removed `klass'.
19426
19427         * class.c (mono_class_inflate_generic_method): Added `MonoClass
19428         *klass' argument.
19429
19430 2004-02-20  Martin Baulig  <martin@ximian.com>
19431
19432         * reflection.c (method_encode_methodspec): Actually use the
19433         uninflated signature for the memberref.
19434
19435 2004-02-20  Martin Baulig  <martin@ximian.com>
19436
19437         * class.h (MonoGenericMethod): Removed `declaring'.
19438
19439         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
19440         is NULL, compute it here.
19441
19442 2004-02-20  Martin Baulig  <martin@ximian.com>
19443
19444         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
19445
19446         * metadata.c (mono_metadata_generic_inst_hash): New method.
19447         (mono_metadata_generic_inst_equal): New method.
19448
19449         * reflection.c (mono_reflection_bind_generic_parameters): Use the
19450         `klass->image->generic_inst_cache' cache to avoid creating
19451         duplicate MonoGenericInst's.
19452
19453         * class.c (mono_class_inflate_generic_type): Use the cache.
19454
19455 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19456
19457         * object.c: fixed gc descriptor calculation for embedded valuetypes.
19458
19459 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19460
19461         * icall.c: added Socket.WSAIoctl icall.
19462
19463         * socket-io.[ch]: implemented
19464         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
19465
19466 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
19467
19468         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
19469
19470 2004-02-18  Urs C Muff  <umuff@quark.com>
19471
19472         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
19473         this work on PPC and other big-endian architectures.
19474
19475         * debug-mono-symfile.h: Prepended the names of all the `guint32'
19476         fields with an underscore to make sure they're only accessed by
19477         the read32() macro.
19478
19479 2004-02-18  Martin Baulig  <martin@ximian.com>
19480
19481         * icall.c: Put the klass->refclass changes back for methods and
19482         fields, but not for properties and events.  We're currently not
19483         distinguishing between DeclaringType and ReflectedType for
19484         properties and events, that's what caused the regressions.
19485
19486 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19487
19488         * object.c:
19489         (mono_async_result_new): the handle can be NULL.
19490
19491         * threadpool.c: Use an event instead of a semaphore, don't initialize
19492         it until needed. This saves quite a few semaphores from being created
19493         when using the threadpool.
19494
19495 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
19496
19497         * object.c (mono_string_is_interned_lookup): Fix interning of long
19498         strings. Fixes #54473.
19499
19500         * domain.c (ldstr_equal): Optimize if the two strings are equal.
19501
19502         * icall.c: Revert the klass->refclass changes since they introduce
19503         regressions (bug #54518).
19504
19505 2004-02-18  Martin Baulig  <martin@ximian.com>
19506
19507         * class.c (mono_class_init): If we're a generic instance and don't
19508         come from a TypeBuilder, inflate our members here.
19509         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
19510         (mono_class_create_generic): New public method.
19511         (mono_class_initialize_generic): Removed.
19512         (get_instantiation_name): Renamed to
19513         _mono_class_get_instantiation_name() and made it public.
19514
19515 2004-02-18  Martin Baulig  <martin@ximian.com>
19516
19517         * class.c (mono_class_inflate_generic_type): Clear the new
19518         instance's `nginst->klass' when inflating a generic instance.
19519         (mono_class_is_subclass_of): Added (basic) support for generic
19520         instances.
19521
19522 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
19523
19524         * appdomain.h, domain.c: use a MonoCodeManager instead of a
19525         MonoMempool to hold compiled native code.
19526
19527 2004-02-17  Martin Baulig  <martin@ximian.com>
19528
19529         * class.h (MonoDynamicGenericInst): Added `count_properties' and
19530         `properties'.
19531
19532         * reflection.c (mono_reflection_generic_inst_initialize): Added
19533         `MonoArray *properties' argument.
19534
19535         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
19536
19537 2004-02-17  Martin Baulig  <martin@ximian.com>
19538
19539         * icall.c (ves_icall_Type_GetFields): Renamed to
19540         ves_icall_Type_GetFields_internal() and added a
19541         `MonoReflectionType *rtype' argument; pass it to
19542         mono_field_get_object() to set the field's "reflected" type.
19543         (ves_icall_Type_GetConstructors): Likewise.
19544         (ves_icall_Type_GetEvents): Likewise.
19545         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
19546         argument; pass it to mono_method_get_object() to set the method's
19547         "reflected" type.       
19548
19549 2004-02-17  Martin Baulig  <martin@ximian.com>
19550
19551         * class.h (MonoDynamicGenericInst): New type.
19552         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
19553
19554         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
19555         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
19556         (ves_icall_MonoGenericInst_GetFields): New interncall.
19557
19558         * class.c (mono_class_from_generic): Don't call
19559         mono_class_initialize_generic() if this is a dynamic instance;
19560         ie. it's being created from a TypeBuilder.
19561         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
19562         `class->byval_arg.type'.
19563
19564         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
19565         to `inflate_method' and made static.
19566         (mono_reflection_inflate_field): Removed.
19567         (mono_reflection_generic_inst_initialize): New public method.
19568
19569         * reflection.h (MonoReflectionGenericInst): Removed `methods',
19570         `ctors' and `fields'; added `initialized'.
19571
19572 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
19573
19574         * debug-helpers.c (mono_method_full_name): Fix output for empty
19575         namespaces.
19576
19577 2004-02-12  Martin Baulig  <martin@ximian.com>
19578
19579         * class.h (MonoClassField): Added `MonoType *generic_type'.
19580
19581         * reflection.c (mono_image_get_fieldref_token): Added support for
19582         instantiated generic types.
19583         (field_encode_inflated_field): Removed.
19584         (mono_image_get_inflated_field_token): Removed.
19585         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
19586
19587         * reflection.h (MonoReflectionInflatedField): Removed.
19588
19589 2004-02-12  Martin Baulig  <martin@ximian.com>
19590
19591         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
19592         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
19593
19594         * reflection.c (mono_image_get_methodspec_token): Take a
19595         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
19596         (mono_image_create_token): Check whether we have a
19597         `method->signature->gen_method' and call
19598         mono_image_get_methodspec_token() if appropriate.
19599         (inflated_method_get_object): Removed.
19600         (mono_reflection_bind_generic_method_parameters): Return a
19601         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
19602         (mono_reflection_inflate_method_or_ctor): Likewise.
19603
19604         * reflection.h (MonoReflectionInflatedMethod): Removed.
19605
19606 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
19607
19608         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
19609         for custom valuetype marshalling.
19610
19611         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
19612
19613 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19614
19615         * icall.c: fixed WSAGetLastError_internal name.
19616
19617 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
19618
19619         * threads.c (mono_thread_attach): Allow this to be called multiple
19620         times for a thread.
19621         
19622         * threads.c (build_wait_tids): Do not wait for ourselves.
19623
19624         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
19625         appdomain list is empty.
19626
19627         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
19628         memory returned by mono_string_builder_to_utf16, since it points into
19629         managed memory. Thanks to Bernie Solomon for noticing this.
19630
19631         * icall.c: Add AppDomainSetup icalls.
19632
19633         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
19634
19635         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
19636         types.
19637
19638         * reflection.c (reflection_methodbuilder_to_mono_method): Save
19639         custom attributes to the method_aux struct. Also fix array indexes etc.
19640
19641         * loader.c (mono_method_get_param_names): Make dynamic case work again.
19642         
19643 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
19644
19645         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
19646         (both static and runtime) and reduce startup time.
19647
19648 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
19649
19650         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
19651         AsAny marshalling conversion instead of crashing.
19652
19653         * marshal.c: Fix warnings.
19654
19655 2004-02-09  Martin Baulig  <martin@ximian.com>
19656
19657         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
19658
19659         * reflection.h (MonoReflectionInflatedMethod): Removed the
19660         `declaring' field, it's now in the unmanaged MonoGenericMethod.
19661
19662         * reflection.c (method_encode_methodspec): Removed the `method'
19663         argument; we get it from `gmethod->declaring'.
19664         (inflated_method_get_object): Removed the `declaring' argument.
19665
19666 2004-02-09  Martin Baulig  <martin@ximian.com>
19667
19668         * class.h (MonoGenericMethod): New type.
19669         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
19670         `generic_method'.
19671
19672         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
19673         a `MonoGenericMethod *gen_method' one.
19674
19675         * class.c (mono_class_inflate_generic_type): Take an additional
19676         `MonoGenericMethod * argument.  This is only non-NULL if we're
19677         inflating types for a generic method.   
19678         (mono_class_inflate_generic_signature): Renamed to
19679         inflate_generic_signature() and made static; take a
19680         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
19681         (inflate_generic_header): Take a `MonoGenericMethod *' argument
19682         instead of a `MonoGenericInst *' one.
19683         (mono_class_inflate_generic_method): Likewise.
19684
19685         * reflection.c (encode_generic_method_sig): Take a
19686         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
19687         (method_encode_methodspec): Likewise.
19688         (inflated_method_get_object): Likewise. 
19689
19690         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
19691         field with a `MonoGenericMethod *gmethod' one.  
19692
19693 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
19694
19695         * class.h (mono_class_has_parent): add parens to expansion
19696         so you can ! this.
19697
19698 2004-02-08  Martin Baulig  <martin@ximian.com>
19699
19700         * image.h (MonoImage): Removed `generics_cache'.
19701
19702         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
19703         instead of a `MonoType *' argument; removed the `inflate_methods'
19704         argument.  Don't inflate methods here.
19705
19706         * loader.c (find_method): If it's a generic instance, call
19707         mono_class_init() on the `sclass->generic_inst->generic_type'.
19708
19709         * metadata.c (mono_type_size): Make this work on uninitialized
19710         generic instances; call it on the `ginst->generic_type's class.
19711
19712         * reflection.c (mono_reflection_bind_generic_parameters): Call
19713         mono_class_from_generic() to create the `ginst->klass'.
19714
19715 2004-02-08  Martin Baulig  <martin@ximian.com>
19716
19717         * class.h (MonoClass): Changed type of `generic_inst' from
19718         `MonoType *' to `MonoGenericInst *'.
19719
19720 2004-02-08  Martin Baulig  <martin@ximian.com>
19721
19722         * icall.c (ves_icall_Type_BindGenericParameters): Just call
19723         mono_type_get_object(), this is now creating a `MonoGenericInst'
19724         for MONO_TYPE_GENERICINST.
19725         (ves_icall_MonoGenericInst_GetParentType): Likewise.
19726         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
19727
19728         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
19729         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
19730         (inflated_method_get_object): Added `MonoClass *refclass' argument.
19731         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
19732         and reflected type.
19733
19734         * reflection.h (MonoReflectionInflatedMethod): Removed
19735         `declaring_type' and `reflected_type'.
19736
19737 2004-02-08  Martin Baulig  <martin@ximian.com>
19738
19739         * class.h (MonoGenericInst): Added `MonoType *parent' and
19740         `MonoType **ifaces'.
19741
19742         * reflection.h (MonoReflectionGenericInst): Removed `klass',
19743         `parent' and `interfaces'.
19744
19745         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19746         `MonoType *' argument and return a `MonoType *'.
19747
19748         * icall.c
19749         (ves_icall_MonoGenericInst_GetParentType): New interncall.
19750         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
19751
19752 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
19753
19754         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
19755         valuetype marshalling.
19756
19757 2004-02-06  Martin Baulig  <martin@ximian.com>
19758
19759         * class.c
19760         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
19761         (my_mono_class_from_generic_parameter): Likewise.
19762
19763 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
19764
19765         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
19766         contents of the symbol files lazily.
19767
19768         * object.h (MonoThread): Add 'name' and 'name_len' fields.
19769
19770         * threads.h threads.c icall.c: New icalls for getting and setting the
19771         threads name.
19772
19773 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
19774
19775         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
19776         Raise an exception when the domain is not found.
19777
19778 2004-02-03  Martin Baulig  <martin@ximian.com>
19779
19780         * reflection.c (mono_image_get_methodspec_token): Use the
19781         uninflated signature; fixes gen-33.
19782
19783 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
19784
19785         * gc.c threads.c: Make the finalizer thread a normal managed thread so
19786         the finalizer code can use thread functionality.
19787
19788         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
19789         the finalizer thread.
19790
19791         * threads.c: Make some functions more robust.
19792
19793         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
19794
19795         * metadata.h: Add new marshalling conventions.
19796
19797         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
19798         stringbuilder marshalling. Fixes #53700.
19799
19800         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
19801
19802         * reflection.c (mono_image_get_type_info): Save declarative security
19803         info.
19804
19805         * reflection.c (mono_image_get_field_info): Handle uninitialized 
19806         unmanaged fields as well.
19807
19808         * appdomain.c: Bump corlib version.
19809
19810 2004-02-01  Martin Baulig  <martin@ximian.com>
19811
19812         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
19813         method type arguments.  
19814
19815 2004-01-30  Duncan Mak  <duncan@ximian.com>
19816
19817         * marshal.h: Add prototype for
19818         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
19819         and
19820         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
19821         fix the build.
19822
19823 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
19824
19825         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
19826         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
19827
19828 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
19829
19830         * marshal.c (mono_marshal_get_native_wrapper): Add support for
19831         custom marshalling of valuetypes.
19832
19833         * marshal.c: Fix some warnings.
19834
19835 2004-01-29  Martin Baulig  <martin@ximian.com>
19836
19837         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
19838         for generic method parameters.
19839
19840         * reflection.c (method_encode_methodspec): Write the uninflated
19841         signature into the methodspec table.
19842         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
19843         is always the uninflated method.
19844         (reflection_methodbuilder_to_mono_method): Copy the generic
19845         parameters from the MethodBuilder into `header->gen_params'.
19846
19847 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
19848
19849         * class.c (mono_class_from_generic_parameter): Fix warning.
19850
19851 2004-01-27  Martin Baulig  <martin@ximian.com>
19852
19853         * class.c (mono_class_from_generic_parameter): Don't create
19854         `klass->methods' here.  
19855
19856 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
19857
19858         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
19859         extension since it does not work with libraries named lib<FOO>.dll.so.
19860
19861 2004-01-25  Martin Baulig  <martin@ximian.com>
19862
19863         * class.c (mono_class_inflate_generic_type): Added support for
19864         MONO_TYPE_GENERICINST.
19865
19866         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
19867         inflate methods on open constructed types.      
19868
19869 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19870
19871         * object.c: fire ProcessExit event in the root AppDomain after running
19872         Main. Fixes bug #53299.
19873
19874 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
19875
19876         * socket-io.c: include the new socket-wrappers.h header.
19877         Use the wrappers instead of the unix socket functions to make the code
19878         more clear.
19879
19880 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
19881
19882         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
19883
19884         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
19885         Fixes #22532.
19886
19887 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
19888
19889         * reflection.c (mono_image_create_pefile): Handle the case when the
19890         entry point is not a MethodBuilder.
19891
19892         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
19893         field to ReflectionMethod since it is not allways a builder.
19894
19895         * reflection.c (type_get_fully_qualified_name): New helper function to
19896         return the fully qualified name of a type.
19897
19898         * reflection.c (encode_marshal_blob): Always emit the fully qualified
19899         type name for custom marshallers.
19900
19901         * reflection.c (mono_marshal_spec_from_builder): Ditto.
19902
19903         * class.c (mono_class_setup_vtable): If a parent class already 
19904         implements an interface, use the implementing methods from that class.
19905         Fixes #53148.
19906
19907 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19908
19909         * threadpool.c: just return instead of ExitThread to allow for thread
19910         clean up earlier.
19911
19912 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
19913
19914         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
19915         when closing resource modules.
19916
19917         * reflection.c (mono_image_create_pefile): Handle the case when the
19918         entry point is not a MethodBuilder.
19919
19920         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
19921         field to ReflectionMethod since it is not allways a builder.
19922
19923 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
19924
19925         * marshal.c (mono_marshal_get_managed_wrapper): 
19926         mono_marshal_alloc takes native int so CONV_I
19927         the arg for 64bits.
19928
19929 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
19930
19931         * reflection.c (fixup_cattrs): New function to fixup the methoddef
19932         tokens in the cattr table. Fixes #53108.
19933
19934 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19935
19936         * loader.c: don't trim ".dll" before looking up in the config file.
19937         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
19938
19939 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
19940
19941         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
19942         Return the module which contains the resource as well.
19943         (ves_icall_System_Reflection_Module_Close): New icall.
19944
19945         * appdomain.c: Bump corlib version number.
19946
19947         * image.c (mono_image_addref): New public function.
19948
19949         * assembly.c: Call mono_image_addref.
19950
19951         * reflection.c (mono_module_get_object): Increase reference count of 
19952         the image.
19953
19954         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
19955         Fixes #22532.
19956
19957         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
19958         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
19959         proper exceptions on DllImport problems.
19960
19961 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
19962
19963         * class.c, metadata.c: eliminate CSIZE macro.
19964
19965 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
19966
19967         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
19968         * object.h: Added async_callback field in MonoAsyncResult.
19969         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
19970         * verify.c: Added async_callback in MonoAsyncResult layout.
19971
19972 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
19973
19974         * reflection.c (mono_reflection_get_custom_attrs): Add support
19975         for Modules.
19976
19977 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
19978
19979         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
19980         marshalling.
19981         (mono_marshal_method_from_wrapper): Add null pointer check.
19982
19983 2004-01-16  Martin Baulig  <martin@ximian.com>
19984
19985         * debug-mono-symfile.h: Set version number to 36 and reflect
19986         latest symbol writer changes.
19987
19988 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
19989
19990         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
19991         multi-dimensional arrays.
19992         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
19993         (mono_class_from_mono_type): Use bounded_array_class_get.
19994         
19995         * class.c (mono_bounded_array_class_get): New function which takes
19996         a 'bounded' bool argument to distinguish vectors from one dimensional
19997         arrays.
19998
19999         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
20000         bounded_array_class_get if the array has bounds.
20001
20002         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20003         Search modules loaded using AssemblyBuilder:AddModule as well.
20004
20005 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20006
20007         * appdomain.c: increased corlib version.
20008         * filewatcher.c: removed g_print.
20009         * icall.c:
20010         (get_property_info): only allocate what is actually requested.
20011         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
20012
20013 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20014
20015         * Makefile.am: added filewatcher.[ch]
20016         * filewatcher.[ch]: FileSystemWatcher runtime support.
20017         * icall.c: added new FSW icalls.
20018
20019 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
20020
20021         * string-icalls.c: fix stringbuilder regression as suggested by
20022         Iain McCoy <iain@mccoy.id.au>.
20023
20024 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
20025
20026         * process.c (process_read_stringtable_block): Recognize '007f' as
20027         a language neutral stringtable block.
20028
20029 2004-01-12  Patrik Torstensson
20030
20031         * object.h (MonoStringBuilder) : Changed layout to support our
20032         new stringbuilder class.
20033         * marshal.c: Change marshalling to support the new layout of 
20034         string builder.
20035         * appdomain.c: increased version number because new layout of
20036         string builder.
20037
20038 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
20039
20040         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
20041         assembly name as an string instead of an AssemblyName, since it is
20042         easier to extract info from it.
20043
20044         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
20045         the culture subdirectories too. Fixes #52231.
20046
20047 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20048
20049         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
20050         It takes 2 new parameters with an optional name for the method to look
20051         for and case ignoring info.
20052
20053         * threadpool.c: removed unused variable.
20054
20055 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20056
20057         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
20058         It takes 2 new parameters with an optional name for the property to look
20059         for and case ignoring info.
20060         Fixes bug #52753.
20061
20062 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
20063
20064         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
20065         Fix #52451.
20066
20067 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20068
20069         * appdomain.c:
20070         * assembly.c: escape the uri before passing it to g_filename_from_uri.
20071         Fixes bug #52630.
20072
20073 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
20074
20075         * reflection.c: Add support for more than one unmanaged resource.
20076
20077         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
20078         in field->def_value, as done in all other cases.
20079
20080         * reflection.c (mono_reflection_get_custom_attrs): Add support for
20081         TypeBuilders.
20082
20083         * reflection.c (mono_reflection_create_runtime_class): Remove 
20084         errorneous assignment to klass->element_class, since it is already
20085         done in mono_reflection_setup_internal_class.
20086
20087 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20088
20089         * gc.c: added missing LeaveCriticalSection.
20090         * icall.c: indented a couple of lines.
20091         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
20092         if we call EndInvoke inside a callback. Fixes bug #52601.
20093
20094 2004-01-07  Martin Baulig  <martin@ximian.com>
20095
20096         * mono-debug-debugger.h
20097         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
20098
20099 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
20100
20101         * appdomain.c: Use messages in NotImplementedException.
20102
20103         * exception.c (mono_get_exception_not_implemented): Now this takes
20104         a message argument.
20105
20106         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
20107         exception instead of g_asserting an aborting when something is not
20108         implemented.
20109
20110         Add some inline docs.
20111
20112 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
20113
20114         * reflection.h: Update after changes to object layout.
20115
20116         * reflection.c: Implement saving of unmanaged aka win32 resources.
20117
20118         * appdomain.c: Bump version number.
20119
20120         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
20121         Handle missing domains gracefully.
20122
20123 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
20124
20125         * file-io.c : On Windows, there are much more invalid_path_chars.
20126
20127 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
20128
20129         * class.h, object.c: prepare for GetType () speedup.
20130
20131 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
20132
20133         * profiler.c: workaround for --profile null reference exception on
20134           cygwin. Patch by Patrik Torstensson.
20135
20136 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
20137
20138         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
20139         make work for unaligned access.
20140
20141 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
20142
20143         * class.c: small cleanup (class->fields [i] -> field).
20144         * image.c: check address of metadata is valid.
20145
20146 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
20147
20148         * assembly.h assembly.c (mono_assembly_loaded): New public function to
20149         search the list of loaded assemblies.
20150
20151         * reflection.c (mono_reflection_type_from_name): Use 
20152         mono_assembly_loaded instead of mono_image_loaded.
20153
20154         * reflection.c: Fix warnings.
20155
20156 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
20157
20158         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
20159         is dynamic. This is needed since an assembly can contain both dynamic and
20160         non-dynamic images.
20161
20162         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
20163         assembly->dynamic.
20164
20165         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
20166
20167         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
20168         to store modules loaded using AddModule.
20169
20170         * reflection.c (mono_image_fill_file_table): Generalize this so it works
20171         on Modules.
20172
20173         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
20174
20175         * reflection.c (mono_image_fill_export_table_from_module): New function to
20176         fill out the EXPORTEDTYPES table from a module.
20177
20178         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
20179         into a separate function. Also handle loaded non-dynamic modules.
20180
20181         * reflection.c (mono_image_basic_init): Fix memory allocation.
20182
20183         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20184
20185         * assembly.c (mono_assembly_load_references): Make this public.
20186
20187 2003-12-19  Martin Baulig  <martin@ximian.com>
20188
20189         * class.c (mono_class_initialize_generic): Made this static, take
20190         a `MonoGenericInst *' instead of a `MonoClass *'.
20191         (mono_class_from_generic): Call mono_class_initialize_generic()
20192         unless we're already initialized or being called from
20193         do_mono_metadata_parse_generic_inst().
20194
20195         * class.h (MonoGenericInst): Added `initialized' and
20196         `init_pending' flags.
20197
20198         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
20199         `mono_class_init (gklass)' or mono_class_initialize_generic()
20200         here; set `generic_inst->init_pending' while parsing the
20201         `type_argv'.
20202
20203 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
20204
20205         * locales.c: include string.h for memxxx prototypes
20206
20207 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
20208
20209         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
20210         constructor when accessing literal fields.
20211
20212 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
20213
20214         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
20215
20216         * reflection.c (assembly_add_resource_manifest): New function to fill
20217         the MANIFESTRESOURCE table.
20218
20219         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
20220
20221         * reflection.h: Update to changes in class layout.
20222
20223         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
20224         Reenable call to mono_runtime_is_shutting_down ().
20225
20226         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
20227         determine if the runtime is shutting down.
20228
20229 2003-12-16  Jackson Harper <jackson@ximian.com>
20230
20231         * icall.c: comment out call to mono_runtime_is_shutting_down to
20232         fix build.
20233         
20234 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
20235
20236         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
20237         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
20238
20239 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
20240
20241         * reflection.c: move definition of swap_with_size
20242         to before its first call
20243
20244 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
20245
20246         * appdomain.c (mono_runtime_is_shutting_down): New public function.
20247
20248         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
20249         icall.
20250
20251         * object.c: Fix warnings.
20252
20253         * icall.c (ves_icall_Type_Get...): Only consider inherited static
20254         members if FlattenHierarchy is set.
20255
20256         * reflection.c (mono_image_add_decl_security): New function to emit
20257         declarative security.
20258
20259         * reflection.h reflection.c: Add support for declarative security.
20260
20261         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20262         
20263 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
20264
20265         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20266         
20267         * appdomain.c verify.c: Moved corlib version checking into its own
20268         function in appdomain.c since it needs to create vtables etc.
20269
20270 2003-12-13  Patrik Torstensson <p@rxc.se>
20271
20272         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
20273         instead of unwrapped server.
20274
20275 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
20276
20277         * verify.c (check_corlib): Fix field index.
20278
20279 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
20280
20281         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
20282         GetGacPath icall.
20283
20284 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
20285
20286         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
20287         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
20288         cope with sizeof(size_t) != sizeof(guint32).
20289
20290 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20291
20292         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
20293         in case of failure.
20294
20295 2003-12-10  Mark Crichton <crichton@gimp.org>
20296
20297         * icall.c: removed the GetNonZeroBytes.  We now handle this case
20298         in managed code.
20299
20300         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
20301
20302 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
20303
20304         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
20305         marked as deleted.
20306
20307 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
20308
20309         * verify.c (check_corlib): Handle the case when the version field is 
20310         initialized by a static constructor.
20311
20312 2003-12-08  Patrik Torstensson  <p@rxc.se>
20313
20314     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
20315
20316 2003-12-08  Martin Baulig  <martin@ximian.com>
20317
20318         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
20319         a MonoReflectionGenericParameter, also take the parameter index
20320         and name as arguments.
20321         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
20322         (ves_icall_MonoGenericParam_initialize): New interncall.
20323         (ves_icall_Type_make_byref_type): New interncall.
20324
20325         * reflection.h (MonoReflectionGenericParam): Derive from
20326         MonoReflectionType, not just from MonoObject.  Added `refobj' and
20327         `index' fields.
20328
20329         * reflection.c (mono_reflection_define_generic_parameter): Create
20330         and return a new MonoReflectionGenericParam; don't initialize the
20331         constraints here.
20332         (mono_reflection_initialize_generic_parameter): New public method;
20333         initializes the constraints and creates the `param->pklass'.
20334
20335 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
20336
20337         * reflection.h reflection.c: Use the new fields 'num_types', 
20338         'num_fields' and 'num_methods' to track the number of types etc.
20339
20340         * verify.c (check_corlib): Check corlib version number.
20341
20342 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
20343
20344         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
20345         function works on all methods.
20346
20347 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
20348
20349         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
20350         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
20351         the custom_type_info flag of the transparent proxy.
20352         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
20353         objects that supports IRemotingTypeInfo.
20354         * object.h: Added custom_type_info field in transparent proxy.
20355
20356 2003-12-06  Martin Baulig  <martin@ximian.com>
20357
20358         * class.c (mono_class_create_from_generic): Removed.
20359         (mono_class_from_generic): Check `ginst->klass' before doing
20360         anything else.  This is important to fully support "recursive"
20361         generic types.
20362
20363         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
20364         empty `generic_inst->klass' before doing anything else.
20365
20366 2003-12-06  Dick Porter  <dick@ximian.com>
20367
20368         * verify.c: 
20369         * object.h:
20370         * icall.c:
20371         * locales.c: Use C structs to access class fields.  Don't do a
20372         conversion between MonoString and UChar because both are
20373         platform-endian UTF-16.  Compare now takes startindex and count
20374         parameters.  Add a char overload for IndexOf.  Speed up the
20375         invariant string IndexOf.
20376
20377 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
20378
20379         * Makefile.am (monosn_LDADD): Fix parallel build.
20380
20381 2003-12-04  Martin Baulig  <martin@ximian.com>
20382
20383         * icall.c
20384         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20385         (ves_icall_Type_make_array_type): New interncall.       
20386
20387 2003-12-04  Martin Baulig  <martin@ximian.com>
20388
20389         * locales.c: also change it in the !HAVE_ICU case.
20390
20391 2003-12-04  Dick Porter  <dick@ximian.com>
20392
20393         * icall.c:
20394         * locales.c: construct_compareinfo is now in CompareInfo, not
20395         CultureInfo.
20396
20397 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
20398
20399         * image.c (mono_image_load_file_for_image): Cache loaded images in the
20400         image->files array.
20401
20402         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
20403         table as well.
20404
20405         * assembly.c (mono_assembly_load_references): Only load references
20406         once.
20407
20408         * class.c (mono_class_from_name): Avoid linear search of the 
20409         EXPORTEDTYPE table.
20410
20411         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
20412
20413 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
20414
20415         * image.h (MonoImage): Add 'field_cache' field.
20416
20417         * loader.c (mono_field_from_token): Cache field lookups.
20418         
20419         * reflection.c (mono_module_get_object): Fix name property.
20420
20421         * icall.c (ves_icall_get_enum_info): Update after changes to 
20422         mono_metadata_get_constant_index ().
20423
20424         * icall.c: Get rid of get_type_info icall, use a separate icall for
20425         each type property to avoid needless memory allocations. Fixes #51514.
20426
20427         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
20428         to avoid needless binary searches.
20429
20430         * class.c (class_compute_field_layout): Move the initialization of
20431         field->def_value to mono_class_vtable ().
20432
20433         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
20434         non-corlib types.
20435
20436         * object.c (mono_object_allocate): Make it inline.
20437
20438         * object.c (mono_object_allocate_spec): Make it inline.
20439         
20440 2003-12-02  Dick Porter  <dick@ximian.com>
20441
20442         * locales.c (create_NumberFormat): NumberFormatInfo construction.
20443         Patch by Mohammad DAMT (mdamt@cdl2000.com).
20444
20445 2003-12-01  Dick Porter  <dick@ximian.com>
20446
20447         * threads.c: Fix signature and call in CreateMutex and
20448         CreateEvent.
20449
20450 2003-12-01  Dick Porter  <dick@ximian.com>
20451
20452         * icall.c: 
20453         * locales.c: Implement string compares and searching
20454
20455         * object.h: Add extra Thread field
20456
20457 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
20458
20459         * reflection.c (fixup_method): Add support for MonoCMethod.
20460
20461 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
20462
20463         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
20464
20465         * reflection.c (assembly_name_to_aname): Allow extra characters in
20466         assembly names. Fixes #51468.
20467
20468 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
20469
20470         * exception.c (mono_exception_from_name_domain): New helper function.
20471
20472         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
20473         exception object in the correct domain.
20474
20475         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
20476         formatting + make a copy a the input data.
20477
20478         * loader.c (mono_get_method_from_token): Methods which contain
20479         native code do not have entries in the ImplMap.
20480
20481         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
20482         Thanks to Gonzalo for spotting this.
20483         
20484         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
20485         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
20486
20487         * assembly.h (mono_assembly_load_from): Split the second part of 
20488         assembly loading into a new public function.
20489
20490         * exception.h (mono_get_exception_bad_image_format): New function.
20491
20492 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
20493
20494         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20495         Enumerate all modules inside a dynamic assembly. Fixes #51293.
20496         
20497         * icall.c: Add new icall for creating dynamic methods.
20498
20499         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
20500
20501         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
20502
20503         * reflection.c (mono_reflection_create_dynamic_method): New icall to
20504         create a dynamic method.
20505
20506         * reflection.c (resolve_object): New helper function.
20507
20508         * reflection.c: Generalize ReflectionMethodBuilder and the functions
20509         which manipulate it so they can also work on dynamic methods.
20510
20511         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
20512         creating the MonoReflectionMethodAux structure if it is not needed.
20513         
20514         * reflection.h verify.c: Update after changes to object layout.
20515
20516         * reflection.c (method_builder_encode_signature): Fix compilation on
20517         gcc 2.95.x.
20518
20519 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
20520
20521         * appdomain.h: Added support for context static fields. Added static_data
20522           field to MonoAppContext and renamed thread_static_fields to a more
20523           generic special_static_fields in MonoAppDomain, since it can now contain
20524           context static fields.
20525         * domain.c: Updated hashtable name.
20526         * object.c: Replaced field_is_thread_static() for a more generic
20527           field_is_special_static() which also checks for context static attribute.
20528           In mono_class_vtable(), added support for static context fields.
20529         * threads.c: Changed methods that manage thread static fields to more
20530           generic methods so they can be reused both for thread and context static
20531           data.
20532         * threads.h: Declared some new methods.
20533
20534 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
20535
20536         * reflection.h: Update after changes to the managed types.
20537
20538         * reflection.c (encode_custom_modifiers): New helper function.
20539
20540         * reflection.c (method_encode_signature): Emit custom modifiers.
20541
20542         * reflection.c (field_encode_signature): Emit custom modifiers.
20543
20544 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
20545
20546         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
20547
20548         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
20549         implementation.
20550
20551         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
20552         icall.
20553
20554         * object.c (mono_field_get_value_object): New function.
20555
20556         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
20557         specific.
20558
20559 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
20560
20561         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
20562         return a preallocated out-of-memory exception instance.
20563
20564         * object.c (out_of_memory): Use the new function.
20565
20566         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
20567         flag is before the custom modifiers. Fixes #49802.
20568
20569 2003-11-16  Martin Baulig  <martin@ximian.com>
20570
20571         * class.c (mono_class_is_open_constructed_type): Implemented the
20572         MONO_TYPE_GENERICINST case.
20573
20574 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
20575
20576         * assembly.c (mono_assembly_fill_assembly_name): New function to
20577         fill out the MonoAssemblyName structure.
20578         (mono_assembly_open): Use the new function.
20579
20580         * icall.c (fill_reflection_assembly_name): New helper function.
20581
20582         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
20583         new function.
20584
20585         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
20586
20587 2003-11-15  Martin Baulig  <martin@ximian.com>
20588
20589         * class.c (mono_class_is_open_constructed_type): New public
20590         function; checks whether a type is an open constructed type,
20591         ie. whether it still contains type parameters.
20592         (mono_class_inflate_generic_type): If we're a type parameter and
20593         the inflated type is also a MONO_TYPE_(M)VAR, return the original
20594         type.
20595
20596         * class.h (MonoGenericInst): Added `guint32 is_open'.
20597
20598         * loader.c (method_from_methodspec): Check whether we're an open
20599         or closed constructed type and set `ginst->is_open'.
20600
20601         * reflection.c (mono_reflection_bind_generic_parameters): Check
20602         whether we're an open or closed constructed type and set
20603         `ginst->is_open'.
20604         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
20605         from open constructed types.
20606
20607 2003-11-15  Martin Baulig  <martin@ximian.com>
20608
20609         * reflection.c (mono_reflection_bind_generic_parameters): If we're
20610         a generic instance (instead of a generic type declaration) with
20611         unbound generic parameters, bind them to our actual types.
20612
20613 2003-11-14  Martin Baulig  <martin@ximian.com>
20614
20615         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
20616
20617         * reflection.c (mono_reflection_bind_generic_parameters): If we're
20618         an interface type, populate `res->interfaces' with instantiated
20619         versions of all the interfaces we inherit.
20620
20621 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
20622
20623         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
20624         when MONO_PATH is set but doesn't contain the install dir.
20625
20626 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20627
20628         * icall.c:
20629         (ves_icall_Type_GetInterfaces): don't return an interface twice when
20630         it's also implemented in base classes. Fixes bug #50927.
20631
20632 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
20633
20634         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
20635         if this method is called from a finalizer. Fixes #50913.
20636
20637 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
20638
20639         * threads.c: Implement VolatileRead/VolatileWrite
20640
20641         * icall.c: Add new icalls for VolatileRead/VolatileWrite
20642
20643 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20644
20645         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
20646         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
20647         2.95.3.
20648
20649         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
20650         from Peter Ross (pro@missioncriticalit.com).
20651         
20652 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
20653
20654         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
20655
20656 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20657
20658         * assembly.c (mono_assembly_load_references): Disable check because it
20659         triggers on older corlibs which lots of people have.
20660
20661 2003-11-12  Jackson Harper  <jackson@ximian.com>
20662
20663         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
20664         load corlib.dll if mscorlib.dll is not found.
20665         * assembly.h: Remove corlib name define.
20666         * class.c:
20667         * domain.c:
20668         * image.c: Change corlib name to mscorlib.
20669         
20670 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20671
20672         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
20673
20674 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
20675
20676         * appdomain.h: Added loader_optimization here to sync with the C#
20677         code, and add disallow_binding_redirects field.
20678
20679 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
20680
20681         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
20682
20683         * reflection.c (mono_image_build_metadata): Fix crash on modules
20684         with no types.
20685
20686         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
20687
20688         * icall.c (ves_icall_get_method_info): Return callingConvention as
20689         well.
20690
20691         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
20692         namespaces from the EXPORTEDTYPE table as well.
20693
20694         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
20695         from all modules inside the assembly.
20696         
20697 2003-11-11  Martin Baulig  <martin@ximian.com>
20698
20699         * reflection.c (mono_reflection_bind_generic_parameters): Make
20700         this work for interfaces.
20701
20702 2003-11-11  Martin Baulig  <martin@ximian.com>
20703
20704         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
20705
20706 2003-11-11  Martin Baulig  <martin@ximian.com>
20707
20708         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
20709         "MonoInflatedMethod" and "MonoInflatedCtor".
20710
20711 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
20712
20713         * reflection.c (resolution_scope_from_image): Use the assembly table
20714         from the manifest module, since other modules don't have it.
20715
20716         * debug-helpers.c (mono_type_full_name): New helper function.
20717
20718         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
20719
20720         * image.c (mono_image_load_file_for_image): New public function which
20721         is a replacement for the load_file_for_image in class.c.
20722
20723         * assembly.c (mono_assembly_load_module): A wrapper for the function
20724         above which does assembly association and reference loading too.
20725
20726         * class.c (mono_class_from_name): Call mono_assembly_load_module.
20727
20728 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20729
20730         * appdomain.c: not all of the attributes for the full assembly name
20731         are required and the order doesn't matter. Fixes bug #50787.
20732
20733 2003-11-10  Dick Porter  <dick@ximian.com>
20734
20735         * locales.c: Use platform-endian UTF16
20736
20737 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
20738
20739         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
20740         
20741 2003-11-10  Martin Baulig  <martin@ximian.com>
20742
20743         * metadata.c
20744         (mono_metadata_load_generic_params): Make this actually work.
20745
20746         * reflection.c (mono_reflection_bind_generic_parameters): If our
20747         parent is a generic instance, pass all the `types' to it, no
20748         matter whether it has the same number of type parameters or not.
20749
20750 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
20751
20752         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
20753
20754         * assembly.c (mono_assembly_load_references): Move the image<->assembly
20755         assignment code to this function so it gets called recursively for all
20756         modules.
20757
20758         * image.c (load_modules): Remove the assembly assignment since it is
20759         now done by mono_assembly_load_references.
20760         
20761         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20762         Add 'module' argument.
20763         (mono_module_get_types): New helper function.
20764         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
20765
20766 2003-11-08  Martin Baulig  <martin@ximian.com>
20767
20768         * class.c (mono_class_inflate_generic_method): Interface method
20769         don't have a header.
20770
20771         * reflection.c (mono_image_get_methodspec_token): Take an
20772         additional `MonoGenericInst *' argument instead of reading it from
20773         the header; this is necessary to support interfaces.
20774         (mono_image_create_token): Pass the `MonoGenericInst *' from the
20775         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
20776         (inflated_method_get_object): Take an additional `MonoGenericInst *'
20777         argument.
20778
20779         * reflection.h (MonoReflectionInflatedMethod): Added
20780         `MonoGenericInst *ginst'.
20781
20782 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
20783
20784         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
20785
20786 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
20787
20788         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
20789
20790 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
20791
20792         * reflection.c 
20793         (reflection_methodbuilder_from_method_builder):
20794         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
20795         initialize a ReflectionMethodBuilder structure.
20796         (mono_image_get_methodbuilder_token):
20797         (mono_image_get_ctorbuilder_token): New functions to emit memberref
20798         tokens which point to types in another module inside the same assembly.
20799
20800         * reflection.c: Use the new helper functions.
20801         
20802         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
20803
20804         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
20805         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
20806
20807         * reflection.c (resolution_scope_from_image): Emit a moduleref if
20808         neccesary.
20809
20810         * reflection.c (mono_image_build_metadata): Emit metadata only for the
20811         current module. Emit the manifest only for the main module.
20812
20813         * reflection.c (mono_image_create_token): Add assertion when a 
20814         memberref needs to be created.
20815
20816         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
20817
20818         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
20819         larger buffer for the custom attribute blob. Fixes #50637.
20820         
20821 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20822
20823         * threadpool.c: notify listener on async processing handles after
20824         invoking the async callback. Thanks to Zoltan.
20825
20826 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20827
20828         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
20829         avoid code duplication.
20830
20831         * reflection.h (MonoDynamicImage): New type which is currently unused,
20832         but will be used through the ref.emit code in place of 
20833         MonoDynamicAssembly.
20834
20835         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
20836         object layout.
20837
20838         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
20839         a MonoDynamicImage instead of just a MonoImage.
20840         
20841         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
20842         icalls to ModuleBuilder but keep their semantics, so they will work
20843         with moduleb->assemblyb. This will change later.
20844         
20845 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20846
20847         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
20848         object layout.
20849
20850         * reflection.c (mono_image_build_metadata): Avoid creation of a default
20851         main module, since it is now done by the managed code.
20852
20853 2003-11-03  Martin Baulig  <martin@ximian.com>
20854
20855         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
20856         `ginst->klass' here.
20857         (method_encode_methodspec): Don't use the `ginst->generic_method's
20858         klass if it's a generic instance, use `ginst->klass' in this case.
20859
20860 2003-11-03  Martin Baulig  <martin@ximian.com>
20861
20862         * reflection.c (mono_image_get_generic_method_param_info):
20863         Removed, use mono_image_get_generic_param_info() instead.
20864         (mono_image_get_type_info): Write the GenericParam table before
20865         the Method table.  This is neccessary because in the GenericParam
20866         table, type parameters of the class (ie. '!0' etc.) must come
20867         before the ones from its generic methods (ie. '!!0' etc).
20868
20869 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20870
20871         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
20872
20873 2003-11-02  Martin Baulig  <martin@ximian.com>
20874
20875         * reflection.c (create_generic_typespec): Take a
20876         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
20877         the generic parameters from it.
20878
20879 2003-11-02  Martin Baulig  <martin@ximian.com>
20880
20881         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
20882         instead of a `MonoClassField *' since we just need the type.
20883         (create_generic_typespec): New static function.  Creates a
20884         TypeSpec token for a generic type declaration.
20885         (mono_image_get_generic_field_token): New static function.
20886         (mono_image_create_token): If we're a FieldBuilder in a generic
20887         type declaration, call mono_image_get_generic_field_token() to get
20888         the token.
20889
20890 2003-11-02  Martin Baulig  <martin@ximian.com>
20891
20892         * reflection.h
20893         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
20894         `MonoReflectionGenericInst *declaring_type' and
20895         `MonoReflectionGenericInst *reflected_type' fields.
20896
20897         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
20898         `MonoReflectionGenericInst *declaring_type' and a
20899         `MonoReflectionGenericInst *reflected_type' argument instead of a
20900         single `MonoReflectionGenericInst *type' one.  Set
20901         `res->declaring_type' and `res->reflected_type' from them.
20902         (mono_reflection_inflate_field): Likewise.      
20903
20904 2003-11-02  Martin Baulig  <martin@ximian.com>
20905
20906         * class.c (mono_class_setup_vtable): Don't store generic methods
20907         in the vtable.  
20908
20909 2003-11-02  Martin Baulig  <martin@ximian.com>
20910
20911         * reflection.h (MonoReflectionGenericInst): Added
20912         `MonoReflectionType *declaring_type'.
20913
20914         * reflection.c (mono_reflection_bind_generic_parameters): Use
20915         `if (tb->parent)' instead of `klass->parent'.
20916
20917 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
20918
20919         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
20920         with an empty ASSEMBLY table.
20921
20922         * reflection.c (mono_image_build_metadata): Avoid using the same loop
20923         variable in the inner and outer loops.
20924
20925 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
20926
20927         * metadata.h (mono_metadata_make_token): Put parentheses around macro
20928         argument.
20929
20930         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
20931         
20932         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
20933         icalls. Instead, do everything in managed code. This is needed since
20934         it is hard to restore the original domain etc. in unmanaged code in the
20935         presence of undeniable exceptions.
20936
20937         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
20938         New icalls to push and pop appdomain refs.
20939
20940 2003-10-31  Martin Baulig  <martin@ximian.com>
20941
20942         * class.c (inflate_generic_type): Renamed to
20943         mono_class_inflate_generic_type() and made it public.
20944
20945         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
20946         New interncall.
20947
20948         * loader.c (mono_field_from_memberref): Also set the retklass for
20949         typespecs.
20950
20951         * fielder.c (mono_image_get_inflated_field_token): New static
20952         method; creates a metadata token for an inflated field.
20953         (mono_image_create_token, fixup_method): Added support for
20954         "MonoInflatedField".
20955         (fieldbuilder_to_mono_class_field): New static function.
20956         (mono_reflection_inflate_field): New public function.
20957
20958         * reflection.h
20959         (MonoReflectionGenericInst): Added `MonoArray *fields'.
20960         (MonoReflectionInflatedField): New typedef.     
20961
20962 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
20963
20964         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
20965         for Solaris and other platforms without s6_addr16
20966
20967 2003-10-30  Martin Baulig  <martin@ximian.com>
20968
20969         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
20970         argument instead of two.
20971         (mono_class_inflate_generic_signature): Likewise.
20972         (inflate_generic_header): Likewise.
20973         (mono_class_inflate_generic_method): Likewise.  In addition, if
20974         `ginst->klass' is set, it becomes the new `method->klass'.
20975
20976         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
20977         field.
20978
20979         * reflection.c (encode_generic_method_sig): Write a 0xa as the
20980         first byte. [FIXME]
20981         (method_encode_methodspec): If we have generic parameters, create
20982         a MethodSpec instead of a MethodRef.
20983         (fixup_method): Added support for "MonoInflatedMethod" and
20984         "MonoInflatedCtor".
20985         (mono_image_create_token): Added support for "MonoInflatedMethod"
20986         and "MonoInflatedCtor".
20987         (inflated_method_get_object): New static function; returns a
20988         managed "System.Reflection.MonoInflatedMethod" object.
20989         (mono_reflection_bind_generic_method_parameters): Return a
20990         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
20991         (mono_reflection_inflate_method_or_ctor): Likewise.
20992         (mono_image_get_generic_method_param_info): Initialize unused
20993         fields to zero.
20994         (mono_image_get_generic_param_info): Likewise.
20995
20996         * reflection.h (MonoReflectionInflatedMethod): New public
20997         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
20998         "S.R.MonoInflatedCtor" classes.
20999
21000         * loader.c (method_from_memberref): If we're a TypeSpec and it
21001         resolves to a generic instance, inflate the method.
21002
21003 2003-10-28  Dick Porter  <dick@ximian.com>
21004
21005         * object.c (mono_runtime_run_main): Convert command-line arguments
21006         into utf8, falling back to the user's locale encoding to do so.
21007
21008 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
21009
21010         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
21011         at this time.
21012
21013         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
21014
21015         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
21016         up icalls at method definition time. Partially fixes #33569.
21017
21018 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
21019
21020         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
21021         marshalling of arrays. Fixes #50116.
21022
21023         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
21024
21025         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
21026         points to a vtable in the dying appdomain.
21027
21028         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
21029         listeners into unmanaged code inside the lock.
21030
21031         * object.c (mono_class_vtable): Turn off typed allocation in non-root
21032         domains and add some comments.
21033
21034 2003-10-25  Martin Baulig  <martin@ximian.com>
21035
21036         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
21037
21038         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
21039
21040         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
21041         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
21042         currently parsing.  Create the generic class and store it in
21043         `generic_inst->klass' before parsing the type arguments.  This is
21044         required to support "recursive" definitions; see mcs/tests/gen-23.cs
21045         for an example.
21046         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
21047         to support recursive typespec entries.
21048
21049         * class.c (mono_class_setup_parent): If our parent is a generic
21050         instance, we may get called before it has its name set.
21051         (mono_class_from_generic): Splitted into
21052         mono_class_create_from_generic() and mono_class_initialize_generic().
21053
21054 2003-10-25  Martin Baulig  <martin@ximian.com>
21055
21056         * icall.c (ves_icall_Type_BindGenericParameters): Return a
21057         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
21058         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
21059         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
21060
21061         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
21062         (create_typespec): Likewise.
21063         (mono_reflection_bind_generic_parameters): Return a
21064         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
21065         (mono_reflection_inflate_method_or_ctor): New public function.
21066
21067         * reflection.h (MonoReflectionGenericInst): New typedef.        
21068
21069 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
21070
21071         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
21072         inside the domain lock. Fixes #49993.
21073         
21074         * object.c (mono_class_vtable): When typed allocation is used, 
21075         allocate vtables in the GC heap instead of in the mempool, since the
21076         vtables contain GC descriptors which are used by the collector even
21077         after the domain owning the mempool is unloaded.
21078
21079         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
21080
21081         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
21082         reflect what it does. Also invalidate mempools instead of freeing
21083         them if a define is set.
21084
21085         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
21086         of the appdomain.
21087         
21088         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
21089         hold the finalizable objects in this domain.
21090
21091         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
21092         appdomain.
21093
21094         * appdomain.c (mono_domain_set): New function to set the current
21095         appdomain, but only if it is not being unloaded.
21096
21097         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
21098         appdomain which is being unloaded.
21099         
21100         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
21101         unloading of the root appdomain.
21102
21103         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
21104         icall to execute a method in another appdomain. Intended as a 
21105         replacement for InternalSetDomain, which can confuse the code 
21106         generation in the JIT.
21107
21108         * appdomain.c (mono_domain_is_unloading): New function to determine
21109         whenever an appdomain is unloading.
21110
21111         * appdomain.c (mono_domain_unload): New function to correctly unload
21112         an appdomain.
21113
21114         * assembly.c (mono_assembly_load_references): Check that an assembly
21115         does not references itself.
21116
21117         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
21118         domain manually, it asks the finalizer thread to do it, then waits for
21119         the result. Also added a timeout.
21120
21121         * icall.c: Register the new icalls.
21122
21123         * threads.h threads.c: Export the mono_gc_stop_world and 
21124         mono_gc_start_world functions.
21125         
21126         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
21127         function to fill out the mempool with 0x2a.
21128
21129 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
21130
21131         * reflection.h (MonoReflectionMethodAux): New structure to store
21132         information which is rarely used, thus is not in the MonoMethod
21133         structure.
21134
21135         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
21136         store the aux info.
21137
21138         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
21139         and marshalling info into the aux structure.
21140
21141         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
21142         from the aux structure.
21143
21144         * loader.c (mono_method_get_param_names): Retrieve the param names from
21145         the aux structure.
21146         
21147 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
21148
21149         * exception.h exception.c: Add AppDomainUnloadedException && fix 
21150         warning.
21151
21152 2003-10-21  Dick Porter  <dick@ximian.com>
21153
21154         * socket-io.c
21155         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
21156         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
21157
21158 2003-10-21  Martin Baulig  <martin@ximian.com>
21159
21160         * reflection.c (mono_reflection_bind_generic_parameters):
21161         `klass->parent' is NULL for interfaces.
21162
21163 2003-10-21  Martin Baulig  <martin@ximian.com>
21164
21165         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21166
21167 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
21168
21169         * exception.c (mono_exception_from_name_msg): New helper function for
21170         creating exceptions and initializing their message field.
21171
21172         * exception.c: Simplify functions using the new helper.
21173
21174         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
21175         New function.
21176
21177         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
21178         mono_raise_exception, since otherwise gcc doesn't generate the function
21179         epilog for raise_exception, confusing the stack unwinding in the JIT.
21180         Fixes #45043.
21181
21182         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
21183         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
21184         Fixes #49499.
21185
21186 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21187
21188         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
21189         utf8.
21190
21191 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
21192
21193         * icall.c: Removed GetUninitializedObject method because
21194           AllocateUninitializedClassInstance does the same.
21195
21196 2003-10-18  Martin Baulig  <martin@ximian.com>
21197
21198         * class.c (inflate_generic_signature): Renamed to
21199         mono_class_inflate_generic_signature() and made it public.
21200         (my_mono_class_from_generic_parameter): New static function; if we
21201         don't already have the generic parameter's MonoClass, create a
21202         very simple one which is just used internally in the runtime and
21203         not passed back to managed code.
21204
21205         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
21206
21207         * metadata.h (MonoMethodSignature): Moved the
21208         `MonoGenericParam *gen_params' to the MonoMethodHeader.
21209         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
21210
21211         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
21212         ves_icall_MonoMethod_GetGenericArguments(); this is now an
21213         interncall on the MonoMethod class, not on MethodInfo.
21214         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
21215         calling mono_reflection_bind_generic_method_parameters() directly.
21216
21217         * loader.c (mono_method_get_signature): If this is a MethodSpec;
21218         return the already computed `method->signature'.
21219         (method_from_methodspec): New static function to load a method
21220         from a MethodSpec entry.
21221         (mono_get_method_from_token): Call the new method_from_methodspec()
21222         for MethodSpec tokens.  
21223         (mono_get_method_from_token): If we're a generic method, load the
21224         type parameters.
21225
21226         * reflection.c (mono_image_get_memberref_token): Allow
21227         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
21228         table.
21229         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
21230         (mono_image_create_token): First check whether it's a generic
21231         method (so we'd need to create a MethodSpec), then do the other
21232         two alternatives.
21233         (mono_reflection_bind_generic_method_parameters): Return a
21234         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
21235         called directly from the interncall.
21236
21237 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
21238
21239         * reflection.c (load_public_key): Move loading of the public key
21240         into managed code.
21241
21242         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
21243
21244         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
21245         fields.
21246
21247         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
21248         culture, hash_alg and public_key. Fixes #49555.
21249
21250 2003-10-17  Martin Baulig  <martin@ximian.com>
21251
21252         * class.h (MonoGenericInst): Moved this declaration here and added
21253         `MonoMethod *generic_method'.
21254
21255         * icall.c
21256         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
21257         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
21258
21259         * metadata.c (mono_metadata_type_equal): Two types of
21260         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
21261         index; ie. don't compare the address of the `MonoGenericParam'
21262         structure.
21263         (mono_metadata_load_generic_params): Removed the `MonoMethod
21264         *method' argument.
21265
21266         * metadata.h (MonoGenericInst): Moved declaration to class.h.
21267         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
21268
21269         * reflection.c (method_encode_signature): Encode the number of
21270         generic parameters.
21271         (encode_generic_method_sig): New static function.
21272         (method_encode_methodspec): New static function; creates an entry
21273         in the MethodSpec table for a generic method.
21274         (mono_image_get_methodspec_token): New static function.
21275         (mono_image_create_token): Call mono_image_get_methodspec_token()
21276         for generic methods.
21277         (mono_reflection_bind_generic_method_parameters): New public
21278         function.  Instantiates a generic method.
21279
21280 2003-10-16  Martin Baulig  <martin@ximian.com>
21281
21282         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
21283         *gen_params' here from MonoMethodHeader.
21284
21285         * metadata.c (mono_metadata_parse_method_signature): If we have
21286         generic parameters, initialize `method->gen_params' and then set
21287         the correct `type->data.generic_param' in all the parameters.
21288
21289 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
21290
21291         * threads.c (mono_threads_get_default_stacksize): New function to 
21292         return the default stacksize.
21293
21294         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
21295         termination of the finalizer thread, since the previous method had
21296         race conditions. Fixes #49628.
21297
21298         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
21299         as for the other managed threads.
21300
21301 2003-10-16  Martin Baulig  <martin@ximian.com>
21302
21303         * class.c (inflate_generic_signature): Copy `generic_param_count'
21304         and `gen_params'.
21305
21306         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
21307         New interncall.
21308
21309         * metadata.c (mono_metadata_parse_method_signature): Actually set
21310         the `method->generic_param_count' here.
21311         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
21312
21313 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
21314
21315         * object.h: Add a new field to TypedRef to simplify the implementation
21316         of the REFANY opcodes in the JIT.
21317
21318         * icall.c: Make use of the new field.
21319
21320         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
21321         dynamically.
21322
21323 2003-10-15  Martin Baulig  <martin@ximian.com>
21324
21325         * class.c (mono_class_from_gen_param): Renamed to
21326         mono_class_from_generic_parameter() and moved most of the
21327         functionality from mono_reflection_define_generic_parameter()
21328         here; ie. we create a "real" class here.
21329         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
21330         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
21331         previously been called.
21332
21333         * class.h (MonoGenericParam): Moved the declaration of this struct
21334         here from metadata.h and added `MonoMethod *method'.
21335
21336         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
21337         interncall.
21338
21339         * loader.c (mono_get_method_from_token): If we have any generic
21340         parameters, call mono_metadata_load_generic_params() to read them
21341         from the MONO_TABLE_GENERICPAR.
21342
21343         * metadata.c (mono_metadata_load_generic_params): Added
21344         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
21345
21346         * metadata.h (MonoMethodSignature): Replaced
21347         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
21348         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
21349
21350         * reflection.c (mono_reflection_define_generic_parameter): Moved
21351         most of the functionality into the new
21352         mono_class_from_generic_parameter(); set the `method' field if
21353         we're a method parameter.       
21354
21355 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
21356
21357         * marshal.c (emit_struct_conv): if native size is 0
21358         emit no code.
21359
21360 2003-10-14  Martin Baulig  <martin@ximian.com>
21361
21362         * icall.c: The generics API has changed in the spec since it was
21363         added to System.Type; these modifications make it match the spec
21364         again.
21365         (ves_icall_Type_GetGenericParameters): Renamed to
21366         `ves_icall_Type_GetGenericArguments'.
21367         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
21368         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
21369         `ves_icall_MonoType_get_HasGenericArguments'.
21370         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
21371         `ves_icall_MonoType_get_IsGenericParameter'.
21372         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
21373         this is no interncall anymore.
21374         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
21375         `ves_icall_TypeBuilder_get_IsGenericParameter'.
21376
21377 2003-10-14  Martin Baulig  <martin@ximian.com>
21378
21379         * reflection.c (mono_reflection_bind_generic_parameters): Also
21380         inflate generic methods if we're reading the class from IL.
21381
21382 2003-10-13  Martin Baulig  <martin@ximian.com>
21383
21384         * reflection.c (mono_reflection_define_generic_parameter): This
21385         method isn't called directly from the icall anymore; take a
21386         `MonoReflectionAssemblyBuilder *' so we can use this for type and
21387         method generic parameters.
21388         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
21389         (method_builder_encode_signature): Encode generic parameters.
21390         (mono_image_get_method_info): Write generic params to the
21391         MONO_TABLE_GENERICPARAM table.
21392
21393         * reflection.h (MonoReflectionMethodBuilder): Added
21394         `MonoArray *generic_params'.
21395
21396         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
21397
21398         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
21399         wrapper for mono_reflection_define_generic_parameter().
21400         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
21401
21402 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
21403
21404         * marshal.h: Add missing function to fix build.
21405
21406         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
21407         the SetLastError pinvoke attribute.
21408
21409         * marshal.c (mono_marshal_set_last_error): New helper function called
21410         by the generated code.
21411         
21412         * marshal.c (mono_mb_emit_branch): New helper function.
21413
21414         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
21415
21416         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21417         classes as parameters and return values of delegates. Fixes #29256. 
21418
21419 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
21420
21421         * locales.c: use gint32 in non HAVE_ICU case
21422
21423 2003-10-11  Martin Baulig  <martin@ximian.com>
21424
21425         * mono-debug.c (mono_debug_add_method): Added a workaround for
21426         bug #48591.
21427
21428 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
21429
21430         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
21431         delegates passed to native code must use the STDCALL calling 
21432         convention. Fixes #35987.
21433
21434 2003-10-10  Martin Baulig  <martin@ximian.com>
21435
21436         * class.c (inflate_generic_type): If we're inflating for a generic
21437         type instance (and not for a generic method), return
21438         MONO_TYPE_MVAR unchanged.
21439
21440 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21441
21442         * string-icalls.c: Join ignores null strings in the source array.
21443         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
21444         * threads.c: GetAvailableTheads is slightly more accurate.
21445
21446 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
21447
21448         * threads.h threads.c : add mono_threads_set_default_stacksize
21449         and pass default to CreateThread calls.
21450
21451 2003-10-09  Dick Porter  <dick@ximian.com>
21452
21453         * icall.c:
21454         * locales.h:
21455         * locales.c: Internal calls for constructing CultureInfo and
21456         related objects from libicu (if its available.)
21457
21458 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
21459
21460         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
21461
21462 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21463
21464         * threadpool.c: added an argument to async_invoke_thread that is the
21465         item to process, pass the MonoAsyncResult to the thread start function
21466         when creating a new thread. This way we don't need to acquire any lock
21467         when we're creating a new thread. Readded a semaphore for faster
21468         response times (instead of that Sleep i added).
21469
21470 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
21471
21472         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21473         get daylight change dates better on Windows, fix handling
21474         of platforms without tm_gmtoff.
21475
21476 2003-10-06  Martin Baulig  <martin@ximian.com>
21477
21478         * class.c (inflate_generic_method): Renamed to
21479         mono_class_inflate_generic_method() and made public.
21480         (mono_class_init): Don't inflate the generic methods here.
21481         (mono_class_from_generic): Added `gboolean inflate_methods'
21482         argument.  Inflate the methods here.
21483
21484         * loader.c (mono_method_get_param_names): Ignore instances of
21485         generic types for the moment.
21486
21487         * reflection.c (fixup_method): Added support for inflated methods.
21488         (mono_image_create_token): Use mono_image_get_methodref_token()
21489         for inflated methods.
21490         (mono_custom_attrs_from_param): Ignore instances of generic types
21491         for the moment.
21492         (mono_reflection_bind_generic_parameters): New public function.
21493         Moved all the functionality from
21494         ves_icall_Type_BindGenericParameters() here and added support for
21495         dynamic types.
21496         (mono_reflection_define_generic_parameter): Initialize
21497         `klass->methods' here.
21498
21499         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
21500         functionality into mono_reflection_define_generic_parameter().
21501         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
21502         TypeBuilder, return that TypeBuilder.
21503
21504 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21505
21506         * appdomain.c: removed mono_delegate_semaphore.
21507
21508         * threadpool.c:
21509         (mono_thread_pool_add): moved hash table creation inside and the thread 
21510         creation outside of the critical region.
21511         (mono_thread_pool_finish): removed obsolete code.
21512         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
21513         continue or exit the thread depending on the queue.
21514
21515 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
21516
21517         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
21518         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
21519         handle more bool marshalling options
21520
21521 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
21522
21523         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
21524         arrays of structs. Also add a more descriptive error message when
21525         a structure member is marshalled as LPArray.
21526
21527 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
21528
21529         * marshal.c (mono_marshal_get_native_wrapper): Add support for
21530         marshalling arrays of complex types. Fixes #29098. Also remove an
21531         usused and incomplete function.
21532
21533 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
21534
21535         * gc.c: report heap_size - free_bytes as total memory allocated
21536         (bug#49362).
21537
21538 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
21539
21540         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
21541         fix timezone handling problems on Windows.
21542         
21543         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
21544         asserts when the year is outside the range handled by ms the functions.
21545
21546         * class.c (setup_interface_offsets): If the class is an interface,
21547         fill out its interface_offsets slot.
21548
21549 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21550
21551         * threadpool.c: mark threadpool threads as background.
21552
21553 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
21554
21555         * decimal.c - define DECINLINE to nothing if not using GCC
21556
21557 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
21558
21559         * assembly.c: More refcount fixes.
21560
21561 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21562
21563         * string-icalls.c: if we're not trimming, return the same string.
21564         When not splitting, don't create a new string.
21565
21566 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21567
21568         * image.c:
21569         (mono_image_open): increment the ref_count inside the critical section.
21570
21571 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
21572
21573         * image.c (mono_image_open): Fix reference counting bug.
21574
21575 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
21576
21577         * marshal.c (mono_marshal_type_size) struct alignment changed for 
21578         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
21579         64bits. Avoid leak in mono_marshal_get_native_wrapper when
21580         mono_lookup_pinvoke_call throws.        
21581
21582 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
21583
21584         * reflection.c (mono_reflection_parse_type): Fix #49114.
21585
21586         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
21587         temporary workaround for cygwin header problem.
21588
21589         * object.c (mono_object_isinst): Synchronize this with the code
21590         generated by the JIT for casts.
21591
21592 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
21593
21594         * reflection.c (encode_type): Fix #38332.
21595
21596 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
21597
21598         * marshal.c (mono_marshal_method_from_wrapper): New function to return
21599         the original method from the wrapper method.
21600
21601 2003-09-25  Martin Baulig  <martin@ximian.com>
21602
21603         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
21604         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
21605         (ves_icall_Type_get_IsGenericInstance): New interncall.
21606
21607 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
21608
21609         * object.c: fix cast warning in big endian code.
21610
21611 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
21612
21613         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
21614         
21615 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21616
21617         * assembly.c: don't call check_env from mono_assembly_load. It's
21618         already done once in mono_assemblies_init and may cause headaches when
21619         multiple threads are loading assemblies.
21620
21621 2003-09-19  Martin Baulig  <martin@ximian.com>
21622
21623         * reflection.c (mono_reflection_define_generic_parameter): Don't
21624         allocate `klass->methods', set `klass->flags' to
21625         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
21626
21627 2003-09-18  Martin Baulig  <martin@ximian.com>
21628
21629         * class.c (mono_class_init): Don't create `class->methods' if it's
21630         already initialized.
21631
21632         * metadata.c (mono_metadata_load_generic_params): Make this
21633         actually work.
21634
21635         * reflection.c (mono_reflection_define_generic_parameter): Set
21636         parent class and interfaces from the constraints.
21637
21638         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
21639         to keep this struct in sync with the declaration in TypeBuilder.cs.
21640
21641 2003-09-17  Martin Baulig  <martin@ximian.com>
21642
21643         * metadata.h (MonoType): Replaced the data's `int type_param'
21644         field with `MonoGenericParam *generic_param'.
21645         (MonoGenericParam): Added `MonoClass *klass'.
21646
21647         * class.c (mono_class_from_gen_param): Removed the
21648         `MonoImage *image' and `int type_num' arguments.
21649
21650         * metadata.c (mono_metadata_parse_generic_param): New static
21651         method; creates a MonoGenericParam which just contains the index.
21652         (do_mono_metadata_parse_type): Call
21653         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
21654         MONO_TYPE_MVAR.
21655
21656         * reflection.c (mono_image_typedef_or_ref): Generic type
21657         parameters may be in the same assembly, but never use a typedef
21658         for them.
21659         (mono_reflection_define_generic_parameter): We're now creating a
21660         "real" class for the type parameter; it's now safe to call
21661         mono_class_from_mono_type() on the class'es type, it'll do the
21662         right thing.
21663
21664 2003-09-16  Martin Baulig  <martin@ximian.com>
21665
21666         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
21667         `symfile->range_entry_size' and `symfile->class_entry_size' here;
21668         the `symfile' data structure must be fully initialized before it
21669         gets added to the table.
21670
21671 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
21672
21673         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
21674
21675         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
21676         class init trampolines.
21677
21678 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
21679
21680         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
21681         to the built-in profiler to turn off time and allocation profiling
21682         respectively.
21683
21684 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
21685
21686         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
21687         g_direct_equal.
21688
21689         * debug-helpers.c (mono_method_full_name): Print the wrapper type
21690         in human readable form.
21691
21692 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
21693
21694         * reflection.c icall.c: Fixed warnings.
21695
21696         * image.c (load_class_names): Use a temporary hash table to hold the
21697         namespaces in order to avoid doing many string comparisons.
21698
21699         * image.h: Fix typo.
21700
21701         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
21702         Pass NULL instead of g_direct_equal to the GHashTable constructor 
21703         since the NULL case is short-circuited inside g_hash_table_lookup, 
21704         leading to better performance.  
21705
21706         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
21707         obtain the first custom attribute for a given index. Depends on the
21708         CustomAttribute table being sorted by the parent field.
21709
21710         * reflection.c (mono_custom_attrs_from_index): Use the new function 
21711         for better performance.
21712
21713 2003-09-07  Martin Baulig  <martin@ximian.com>
21714
21715         * class.c (mono_class_init): If we're a generic instance, inflate
21716         all our methods instead of loading them from the image.
21717         (mono_class_from_generic): Set `class->methods = gklass->methods'.
21718
21719 2003-09-07  Martin Baulig  <martin@ximian.com>
21720
21721         * mono-debug-debugger.c: Added support for constructors.
21722
21723 2003-09-06  Martin Baulig  <martin@ximian.com>
21724
21725         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
21726         New interncall.
21727
21728         * reflection.c (mono_reflection_setup_generic_class): Call
21729         ensure_runtime_vtable() to create the vtable.
21730
21731 2003-09-05  Martin Baulig  <martin@ximian.com>
21732
21733         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
21734         MONO_TYPE_MVAR.
21735
21736 2003-09-04  Martin Baulig  <martin@ximian.com>
21737
21738         * reflection.c (mono_reflection_define_generic_parameter): Generic
21739         parameters start with zero.
21740
21741 2003-09-04  Martin Baulig  <martin@ximian.com>
21742
21743         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21744
21745         * reflection.h (MonoReflectionGenericParam): New typedef.
21746         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
21747         the generic parameters from the managed TypeBuilder.
21748
21749         * reflection.c (mono_reflection_define_generic_parameter): New function.
21750         (mono_reflection_create_runtime_class): Encode generic parameters.
21751         (mono_reflection_setup_generic_class): New function; this is
21752         called after adding adding all generic params to the TypeBuilder.
21753         (encode_type): Added MONO_TYPE_VAR.
21754
21755 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
21756
21757         * class.h class.c (mono_class_needs_cctor_run): Moved this method
21758         here from the JIT.
21759
21760         * assembly.h assembly.c: Moved the AOT loading code into an assembly
21761         load hook.
21762
21763 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
21764
21765         * reflection.h reflection.c class.h class.c: Delete duplicate 
21766         definition of mono_type_get_name () from reflection.c and export the
21767         one in class.c.
21768
21769         * class.c: Class loading fixes from Bernie Solomon 
21770         (bernard@ugsolutions.com).
21771
21772         * reflection.c: Endianness fixes from Bernie Solomon 
21773         (bernard@ugsolutions.com).
21774         
21775 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
21776
21777         * assembly.h assembly.c: Define a file format version for AOT
21778         libraries.
21779         
21780         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
21781
21782         * appdomain.h (MonoJitInfo): New field to determine whenever the
21783         code is domain neutral.
21784         
21785 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
21786
21787         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
21788
21789 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
21790
21791         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
21792         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
21793         Avoid caching the result since strings must be domain specific. Fixes
21794         #48050.
21795
21796 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
21797
21798         * marshal.c (mono_marshal_init): Make this callable multiple times
21799         since it is hard to find a correct place to call it.
21800
21801         * object.c (mono_runtime_class_init): Execute static constructors in
21802         the correct appdomain.
21803
21804         * image.c (build_guid_table): Handle the case when multiple images have
21805         the same GUID.
21806
21807 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21808
21809         * icall.c: added a couple of icalls for System.Web.
21810
21811 2003-08-28  Martin Baulig  <martin@ximian.com>
21812
21813         * icall.c (ves_icall_Type_BindGenericParameters): Use
21814         `klass->generic_inst' instead of `&klass->byval_arg' in the
21815         mono_type_get_object() call.  The returned type must be
21816         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
21817
21818 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
21819
21820         * NOTES: New file.
21821
21822         * object.c (mono_class_proxy_vtable): Make it thread safe.
21823
21824         * pedump.c: Fix warning.
21825
21826         * object.c appdomain.h: Get rid of metadata_section. 
21827         It is no longer needed and it was causing deadlocks with domain->lock.
21828
21829         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
21830
21831 2003-08-26  Martin Baulig  <martin@ximian.com>
21832
21833         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
21834
21835 2003-08-26  Martin Baulig  <martin@ximian.com>
21836
21837         * pedump.c (main): Call mono_metadata_init(),
21838         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
21839         and mono_loader_init().
21840
21841 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
21842
21843         * loader.h: Add missing include to fix build.
21844
21845         * image.h: mono_image_load_references is no more.
21846
21847         * assembly.c: Reworked assembly loading to make it really thread safe.
21848         After these changes, the assembly returned by mono_assembly_open is
21849         fully initialized, i.e. all its references assemblies are loaded.
21850
21851         * assembly.c (mono_image_load_references): Renamed to 
21852         mono_assembly_load_references, and made private, since clients no
21853         longer need to call it.
21854
21855         * class.c: Removed calls to mono_assembly_load_references, since it was
21856         a source of deadlocks.
21857
21858         * loader.h loader.c class.h class.c: Protect data structures using a 
21859         new lock, the loader lock.
21860
21861         * class.c (mono_class_setup_vtable): Create temporary hash tables and
21862         GPtrArrays only when needed.
21863
21864         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
21865         into empty structures by mcs. Fixes pinvoke7.cs.
21866         
21867         * domain.c (mono_init): Call a new initialization function.
21868
21869         * appdomain.c (mono_runtime_init): Call the new initializer function
21870         of the marshal module.
21871
21872         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
21873         inserted into empty structures by mcs. Fixes pinvoke7.cs.
21874
21875         * marshal.h marshal.c: Added locks around the wrapper caches to make
21876         this module thread safe.
21877
21878         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
21879         this argument. Fixes pinvoke1.exe.
21880
21881 2003-08-25  Lluis Sanchez <lluis@ximian.com>
21882
21883         * object.h: Added call_type field to MonoMethodMessage and the corresponding
21884         enumeration of values. Removed fields to store remote call output values in
21885         MonoAsyncResult. Not needed any more.
21886         * object.c: Initialize call_type and async_result fields in mono_message_init.
21887         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
21888         dispatching the message.
21889         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
21890         async call to finish. To do it use a message with EndInvoke call type.
21891
21892 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
21893
21894         * loader.h loader.c (mono_method_hash_marhal_info): New function which
21895         determines whenever a method has marshalling info.
21896
21897 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21898
21899         * assembly.c: fix the build on windows.
21900
21901 2003-08-22 Lluis Sanchez <lluis@ximian.com>
21902
21903         * object.cs: Fixed bug #47785.
21904
21905 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
21906
21907         * string-icalls.c (StringReplace): If their are no occurances of
21908         the old string found return a reference to the supplied
21909         string. This saves some memory and matches MS behavoir.
21910         
21911 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21912
21913         * socket-io.c: fixed compilation for systems that define AF_INET6
21914         and don't define SOL_IP/SOL_IPV6.
21915
21916 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
21917
21918         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
21919         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
21920
21921         * rawbuffer.c rawbuffer.h: Make this module thread safe.
21922
21923         * domain.c: Make this module thread safe.
21924
21925         * domain.c (mono_init): Call new initialization function.
21926
21927         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
21928         reference types too. Fixes #38812.
21929
21930         * image.c (mono_image_init): Fixed warnings.
21931
21932         * class.c (mono_class_from_typeref): Handle assembly load failure
21933         correctly.
21934
21935         * appdomain.c (add_assemblies_to_domain): Handle the case when
21936         the references of an assembly are not yet loaded.
21937
21938         * metadata.c image.c assembly.c: Moved initialization of global
21939         variables to a separate function called at startup since lazy 
21940         initialization of these variables is not thread safe.
21941         
21942         * image.c assembly.c: Made this module thread safe by adding locks in 
21943         the appropriate places.
21944
21945         * domain.c (mono_init): Call the new initialization functions of the
21946         three modules.
21947
21948 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
21949
21950         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
21951           make a direct call. It is proxy's work to make the call asynchronous.
21952           mono_delegate_end_invoke(): If the targe is a proxy, just collect
21953           the return values.
21954         * object.cs: mono_method_call_message_new(): read AsyncResult and
21955           state object from parameters list, if this info is requested.
21956         * object.h: Added fields to store remote call output values in
21957           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
21958
21959 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21960
21961         * object.h: add needed fields to MonoThread.
21962         * threads.c, threads.h: allow registering a function to cleanup data
21963         allocated per thread by the JIT.
21964
21965 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21966
21967         * loader.h: portability fix by Bernie Solomon
21968         * <bernard@ugsolutions.com>.
21969
21970 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
21971
21972         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
21973         return a MonoArray. This simplifies the code and also ensures that
21974         the cache allways contains an object reference as a value.
21975
21976         * icall.c (ves_icall_get_parameter_info): Simplified using the new
21977         function.
21978
21979 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21980
21981         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
21982         fixes a problem with byte ordering when getting the address family for
21983         a socket.
21984
21985 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
21986
21987         * .cvsignore: Added monosn.
21988
21989         * reflection.h reflection.c loader.c: Added support for parameter
21990         marshalling to dynamically created types. Fixes #47295.
21991
21992 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
21993
21994         * rand.c: remove useless warnings.
21995
21996 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
21997
21998         * class.c: implemented ldtoken for methods and fieldrefs.
21999
22000 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22001
22002         * threadpool.c: when mono_async_invoke was called, no one took care of
22003         monitoring the queue. So if the method invoked took some time and we
22004         got new async invoke requests after 500 ms (the thread created waited
22005         that long in WaitForSingleObject), the new async invoke was not called
22006         until the previous one finished.
22007
22008         This is fixed now. Thanks to Totte for helping with it.
22009
22010 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22011
22012         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
22013
22014 2003-08-11  Martin Baulig  <martin@ximian.com>
22015
22016         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
22017
22018 2003-08-06  Martin Baulig  <martin@ximian.com>
22019
22020         * mono-debug-debugger.c: Added support for static fields,
22021         properties and methods.
22022
22023 2003-08-06  Martin Baulig  <martin@ximian.com>
22024
22025         * mono-debug-debugger.c: Don't store the MonoString's vtable to
22026         make this work for applications with multiple application domains.
22027
22028 2003-08-04  Martin Baulig  <martin@ximian.com>
22029
22030         * mono-debug-debugger.c: Completely reworked the type support; the
22031         most important thing is that we're now just using one single
22032         `MonoType' instance per type.
22033
22034 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
22035
22036         * mono-endian.h, mono-endian.c, icall.c: Added icall
22037         ves_icall_System_Double_AssertEndianity to assert double word endianity
22038         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
22039
22040 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22041
22042         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
22043         support, icalls and fixes.
22044
22045 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
22046
22047         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
22048         classes that are a punctuation character in .NET is not the same a
22049         g_unichar_ispunct.
22050
22051 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22052
22053         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
22054
22055 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
22056
22057         * icall.c: Add new MemCopy internalcall.
22058         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
22059         Simplified code; It is not necessary to handle all the cases here,
22060         as the C# code takes care of it.  Only handle the case of the name
22061         resource embedded into the assembly.
22062
22063         Changed signature to return the data pointer and the size of the
22064         data. 
22065
22066 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
22067
22068         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
22069         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
22070
22071 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
22072
22073         * socket-io.c: ignore EINTR error in select.
22074
22075 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
22076
22077         * class.h, class.c: removed unused subclasses field in MonoClass.
22078
22079 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
22080
22081         * icall.c: improve fix of get_base_definition(). If the parent class
22082           doesn't have the mehod, look at the parent of the parent.
22083         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
22084           to check if a parameter is an in or out parameter
22085           (PARAM_ATTRIBUTE_IN is not set by default).
22086           mono_method_return_message_restore(): Use mono_class_value_size to
22087           get the size of a value type. mono_type_stack_size (parameterType)
22088           does not return the correct value if parameterType is byRef.
22089           mono_load_remote_field(), mono_load_remote_field_new(),
22090           mono_store_remote_field(), mono_store_remote_field_new():
22091           raise exception if the remote call returns an exception.
22092
22093 2003-07-28  Martin Baulig  <martin@ximian.com>
22094
22095         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
22096         method.  This is a wrapper around mono_runtime_invoke() which
22097         boxes the instance object if neccessary.
22098
22099 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22100
22101         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
22102         metadata.h, row-indexes.h, verify.c: first cut of generics support.
22103
22104 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22105
22106         * icall.c: disable mcs bug workaround.
22107
22108 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
22109
22110         * object.c (mono_runtime_class_init): Take the metadata_section
22111         mutex before obtaining the domain mutex.
22112
22113         * appdomain.h: Added definition of metadata_section mutex here. 
22114
22115         * object.c: define metadata_mutex here.
22116
22117 2003-07-24  Ravi Pratap  <ravi@ximian.com>
22118
22119         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
22120         fixed.
22121
22122 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
22123
22124         * reflection.c: Fix bug #46669
22125
22126 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22127
22128         * exception.c:
22129         * exception.h:
22130         * icall.c:
22131         * object.h: fill in the type name for TypeLoadException.
22132
22133 2003-07-23  Ravi Pratap  <ravi@ximian.com>
22134
22135         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
22136         relationship between TypeBuilders while compiling corlib) and bug
22137         45993 (Array types returned from the runtime while compiling
22138         corlib were from the loaded corlib).
22139
22140 2003-07-22  Martin Baulig  <martin@ximian.com>
22141
22142         * mono-debug-debugger.c: Reworked the type support a bit more;
22143         distinguish between types and classes.
22144
22145 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
22146
22147         * icall.c: add IsArrayImpl icall.
22148
22149 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
22150
22151         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
22152         initializing real_size only once. Also fix bug #46602.
22153
22154 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
22155
22156         * object.c: Renamed mono_metadata_section to metadata_section.
22157
22158 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
22159
22160         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
22161           empty array if the type is an array. Fixed.
22162           ves_icall_MonoMethod_get_base_definition: if the base method
22163           is abstract, get the MethodInfo from the list of methods of
22164           the class.
22165         * reflection.c: ParameterInfo.PositionImpl should be zero-based
22166           and it was 1-based. Fixed in mono_param_get_objects.
22167
22168 2003-07-20  Martin Baulig  <martin@ximian.com>
22169
22170         * mono-debug.h: Set version number to 31.
22171         (mono_debug_init): Added `MonoDomain *' argument.
22172
22173         * mono-debug-debugger.c: Reworked the type support; explicitly
22174         tell the debugger about builtin types; pass the `klass' address to
22175         the debugger.
22176
22177 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
22178
22179         * image.c: Allow new metadata tables to be loaded without a
22180         warning. Also update the warning message to give the new constant value.
22181                 
22182 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
22183
22184         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
22185         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
22186         array type representation changes.
22187
22188 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22189
22190         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
22191         on Environment.Exit () call.
22192
22193 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
22194
22195         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
22196         requires a matching corlib.
22197
22198 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22199
22200         * Changelog: My editor decided to add a CR to each line. Sorry about that.
22201           Committed again without the CRs.
22202         
22203 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
22204
22205         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
22206           getting it from the "this" socket instance. Did not work
22207           if the socket is a subclass of Socket.
22208           Also fixed bug #35371.
22209
22210 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22211
22212         * metadata.c: fixed size for TypedByRef.
22213         * loader.c: when searching for a method, consider the vararg amrker.
22214         * unicode.c, decimal.c: constify some arrays.
22215
22216 2003-07-15  Dick Porter  <dick@ximian.com>
22217
22218         * socket-io.c: Fixed compilation for gcc < 3.2.
22219
22220         Fixed compilation for machines that don't have AF_INET6 (thanks to
22221         Bernie Solomon <bernard@ugsolutions.com> for that part.)
22222
22223         Fixed compile warnings.
22224         
22225         Fixed formatting and line endings.
22226
22227 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
22228
22229         * socket-io.h:
22230         * socket-io.c: Added IPv6 support.
22231
22232 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
22233
22234         * class.c (mono_class_is_assignable_from): New function to implement
22235         the is_assignable_from logic. Used by mono_object_isinst, 
22236         Type::IsAssignableFrom () and the interpreter.
22237
22238         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
22239         Object, even interfaces.
22240         
22241         * object.c (mono_object_isinst): Implement in terms of 
22242         is_assignable_from.
22243
22244         * icall.c (ves_icall_type_is_assignable_from): New icall.
22245
22246 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
22247
22248         * domain.c (foreach_domain): fix compiler warning.
22249
22250 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
22251
22252         * image.c (load_metadata_ptrs): use g_strndup because strndup is
22253         not available on all plattforms
22254
22255 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
22256
22257         * image.h image.c: Store the metadata version string in MonoImage.
22258         * icall.c: New icall to retrieve the image version.
22259         * reflection.c (create_dynamic_image): Fill in the image version field
22260         * reflection.c (build_compressed_metadata): Use the image version
22261         from the image structure.
22262
22263 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22264
22265         * appdomain.c: modified comment.
22266         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
22267         That will be its last iteration when mono_gc_cleanup is called from
22268         mono_runtime_cleanup and before the domain is unloaded.
22269
22270         Fixes bug #45962.
22271
22272 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
22273
22274         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
22275         attributes.
22276
22277 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22278
22279         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
22280         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
22281         Bernie Solomon <bernard@ugsolutions.com>.
22282
22283 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22284
22285         * object.c, object.h: provide mono_object_new_fast() for faster
22286         allocation in some special cases.
22287
22288 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
22289
22290         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
22291         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
22292
22293 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
22294
22295         * threadpool.c: fix leaks.
22296
22297 2003-07-01  Dick Porter  <dick@ximian.com>
22298
22299         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
22300         using MonoGHashTables.  Fixes threadpool bug posted to list.
22301
22302 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22303
22304         * image.h, image.c: added support to load an assembly from a byte array.
22305         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
22306         assembly bundle support.
22307
22308 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
22309
22310         * threadpool.c (mono_thread_pool_add): keep a reference to the
22311         AsyncResult to prevent GC
22312
22313 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22314
22315         * class.c: leak fix.
22316
22317 2003-06-25  Dick Porter  <dick@ximian.com>
22318
22319         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
22320         for the async object, the WaitHandle object will close the handle.
22321         Fixes bug 45321.
22322
22323 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22324
22325         * class.c: in mono_array_class_get (), lookup from the hash with the
22326         same type we insert: this works around a bug in
22327         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
22328         lluis. The real fix will have to wait for after the release.
22329
22330 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22331
22332         * icall.c: fix memory leak when getting type members.
22333
22334 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22335
22336         * reflection.c: added more pubtoken special cases.
22337
22338 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
22339
22340         * class.c: handle field offset correctly when class size
22341         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
22342
22343 2003-06-20  Martin Baulig  <martin@ximian.com>
22344
22345         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
22346         *image' field.
22347
22348 2003-06-20  Martin Baulig  <martin@ximian.com>
22349
22350         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
22351
22352 2003-06-20  Martin Baulig  <martin@ximian.com>
22353
22354         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
22355         just distinguish between variables in registers and variables at
22356         an offset relative to a register.
22357
22358 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22359
22360         * icall.c: #ifdef out latest changes until mcs is fixed.
22361
22362 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22363
22364         * icall.c: return members in metadata order.
22365
22366 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22367
22368         * icall.c: avoid infinite loop in GetTimeZoneData.
22369
22370 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
22371
22372         * icall.c: added Marshal.Prelink/All icalls.
22373
22374 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22375
22376         * object.c, object.h: fix warnings and do some overflow checking
22377         when creating arrays.
22378
22379 2003-06-17  Dick Porter  <dick@ximian.com>
22380
22381         * file-io.h:
22382         * file-io.c: File attributes need to be tweaked slightly when
22383         passed from the managed to the w32 world.
22384
22385 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22386         * profiler.h profiler-private.h profiler.c: Rework last patch
22387         based on suggestion by Paolo.
22388         
22389 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22390
22391         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
22392         instruction level coverage data collection.
22393         * profiler.h profiler.c (: Added new callback function which can be
22394         used by the profiler to limit which functions should have coverage
22395         instrumentation.
22396         * profiler.c (mono_profiler_load): Call g_module_build_path to
22397         generate the file name of the profiler library.
22398
22399 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22400
22401         * profiler.c, profiler.h, profiler-private.h: added basic block 
22402         coverage profiling API.
22403
22404 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
22405
22406         * reflection.c (mono_reflection_create_runtime_class): Add support
22407         for events in dynamically generated code.
22408
22409         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
22410         not allocated.
22411
22412 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22413
22414         * icall.c: when getting timezone info, return reasonable values if we
22415         can't get the actual data.
22416
22417 2003-06-14  Dick Porter  <dick@ximian.com>
22418
22419         * threads.c (start_wrapper): Remove the reference to the thread
22420         object in the TLS data, so the thread object can be finalized.
22421         This won't be reached if the thread threw an uncaught exception,
22422         so those thread handles will stay referenced :-( (This is due to
22423         missing support for scanning thread-specific data in the Boehm GC
22424         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
22425
22426 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
22427
22428         * reflection.c: ensure streams and tables are first allocated with
22429         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
22430
22431 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22432
22433         * icall.c: fixed GetElementType for byrefs (bug# 44792).
22434
22435 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
22436
22437         * reflection.c (mono_reflection_create_runtime_class): Add support for
22438         properties to dynamically created classes.
22439         * reflection.c: Fix a few places where non-MonoObjects were inserted
22440         into the tokens hashtable.
22441
22442 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22443
22444         * object.c: some support to handle out of memory exceptions.
22445
22446 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
22447
22448         * marshal.c (mono_marshal_get_native_wrapper): support reference
22449         return types
22450
22451 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22452
22453         * object.h, object.c: more portability stuff from Bernie Solomon.
22454         Unexport mono_object_allocate(). Added mono_object_unbox ().
22455         Set exitcode when an unhandled exception is thrown.
22456
22457 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
22458
22459         * marshal.c (mono_marshal_get_native_wrapper): use custom
22460         marshaler for return types.
22461
22462 2003-06-10  Dick Porter  <dick@ximian.com>
22463
22464         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
22465         ip_mreq is available
22466
22467 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
22468
22469         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
22470         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
22471         by Bernie Solomon <bernard@ugsolutions.com>.
22472
22473 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
22474
22475         * gc.c (mono_gc_init): Avoid error message on shutdown when
22476         GC_DONT_GC=1 is used.
22477
22478         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
22479         New icall to return the GUID of a module.
22480
22481 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22482
22483         * class.c: ensure instance size always includes the parent's size
22484         even whem class size is set explicitly (fixes bug#44294).
22485
22486 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22487
22488         * profiler.h, profiler.c: made the simple profiler thread-safe,
22489         get more accurate timing info. Allow the loading of an
22490         externally-developed profiler module.
22491
22492 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
22493
22494         * marshal.c (mono_marshal_get_native_wrapper): improved
22495         class/byref arguments.
22496         (mono_marshal_get_native_wrapper): better string marshaling support.
22497
22498 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
22499
22500         * class.c: ensure .pack and .size are handled correctly and
22501         simplified layout of static fields.
22502
22503 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
22504
22505         * appdomain.c
22506         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
22507
22508         * loader.c (mono_lookup_pinvoke_call): look for modules in the
22509         current directory (fix bug 44008)
22510
22511 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
22512
22513         * marshal.c (mono_marshal_get_native_wrapper): started support for
22514         custom marshalers.
22515         (mono_delegate_to_ftnptr): consider marshalling specifications
22516
22517 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
22518
22519         * reflection.c, reflection.h: emit custom marshal info.
22520
22521 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22522
22523         * object.c: free the GError.
22524         * icall.c: added CloseEvent_internal.
22525         * threads.[ch]:
22526         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
22527         call.
22528
22529 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
22530
22531         * loader.c (mono_method_get_signature): Add support for dynamic
22532         assemblies.
22533
22534 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
22535
22536         * reflection.c: fixed bug #43905.
22537
22538 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22539
22540         * class.c, domain.c, icall.c, metadata.h, object.h: support for
22541         handling TypedReference and ArgIterator.
22542         * loader.c, loader.h: added function to get signature at call site.
22543
22544 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22545
22546         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
22547         data readonly. Buglets and warning fixes. Some MethodSpec support.
22548
22549 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22550
22551         * class.h, class.c, object.c: remove relative numbering support.
22552
22553 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
22554
22555         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
22556         free the string, until we get a chance to fix Gtk#
22557
22558 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22559
22560         * marshal.c: revert last patch.
22561
22562 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
22563
22564         * icall.c: updates for new mono_class_vtable() not calling
22565         the type constructor anymore.
22566
22567 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
22568
22569         * object.h, object.c: separate vtable creation from type
22570         initialization. Make running the .cctor thread safe.
22571
22572 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
22573
22574         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
22575
22576 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
22577
22578         * loader.c (mono_get_method): consider calling convention
22579
22580 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
22581
22582         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
22583         to return the invisible global type for a module.
22584
22585         * reflection.c (mono_image_build_metadata): Emit global fields too.
22586
22587 2003-05-20  Peter Williams  <peterw@ximian.com>
22588
22589         * loader.c (mono_lookup_internal_call): Add a few newlines.
22590
22591 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
22592
22593         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
22594         literal strings.
22595
22596         * appdomain.c (set_domain_search_path): Recalculate search path when
22597         AppDomainSetup.PrivateBinPath changes.
22598
22599         * object.c (mono_class_compute_gc_descriptor): It turns out some
22600         parts of the class libs (like System.Thread) holds pointers to
22601         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
22602         to treat native int a pointer type here.
22603         
22604 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
22605
22606         * appdomain.h, domain.c: add hashtable for jump target resolution.
22607
22608 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
22609
22610         * reflection.h reflection.c icall.c: Added new icalls 
22611         GetManifestResourceInfoInternal, GetModulesInternal and support
22612         infrastructure.
22613
22614 2003-05-16  Dick Porter  <dick@ximian.com>
22615
22616         * icall.c:
22617         * file-io.h:
22618         * file-io.c: Implement System.IO.MonoIO::GetTempPath
22619
22620 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
22621
22622         * object.c: mono_store_remote_field: little fix to previous patch.
22623
22624 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22625
22626         * class.c: add constructors to array classes.
22627         * icall.c: special case array construction for InternalInvoke (),
22628
22629 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
22630
22631         * class.h class.c reflection.c object.c: Added support for field
22632         defaults in dynamically generated classes.
22633
22634 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
22635
22636         * reflection.c: properly encode charset for ddlimport.
22637
22638 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
22639
22640         * threads.c: allow compiling without GC.
22641
22642 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22643
22644         * appdomain.h, object.c, object.h, threads.c, threads.h: added
22645         handling of thread static data.
22646
22647 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22648
22649         * reflection.h, reflection.c: added mono_custom_attrs_free ().
22650
22651 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
22652
22653         * class.c (mono_array_class_get): always set the serializable flags
22654         (mono_array_class_get): always set the SEALED attribute for array types
22655
22656 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
22657
22658         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
22659         attributes (fix for bug 42021).
22660
22661 2003-05-12  Dick Porter  <dick@ximian.com>
22662
22663         * gc.c: Don't run finalizers when the finalizer thread is
22664         finishing up, because the default domain has already been
22665         destroyed.
22666
22667 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
22668
22669         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
22670         value is null, we should throw an exception.   This is slightly
22671         different than the other conventions used for the constructor.
22672
22673 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22674
22675         * socket-io.c: fixed windows build.
22676
22677 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22678
22679         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
22680
22681 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
22682
22683         * object.c (mono_string_new_wrapper): Compatibility fix for MS
22684         compilers.
22685
22686 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
22687
22688         * class.c (mono_class_layout_fields): Add experimental GC aware
22689         auto layout facility. Requires class library changes to work correctly.
22690
22691         (mono_class_setup_vtable): Avoid overriding explicit interface
22692         method implementations. Fixes iface3.exe test.
22693
22694         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
22695         object reference.
22696         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
22697         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
22698
22699         * metadata.h: Add new type classification macro which determines
22700         whenever the type holds an object reference.
22701
22702 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
22703
22704         * marshal.c (mono_marshal_get_native_wrapper): cleanups
22705
22706 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
22707
22708         * gc.c (finalizer_thread): Work around a GC bug.
22709
22710 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
22711
22712         * marshal.c (emit_struct_conv): allow unions
22713
22714         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
22715
22716 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
22717
22718         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
22719
22720 2003-05-06  Martin Baulig  <martin@ximian.com>
22721
22722         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
22723
22724 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22725
22726         * socket-io.c:
22727         (Select_internal): allow NULLs, don't create arrays if not needed.
22728         Coupled with Socket.cs changes.
22729
22730         * threadpool.c:
22731         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
22732         register a finalizer for it that will close the semaphore handle. This
22733         fixes the leak and make Lupus' test run with > 4080 loops.
22734
22735 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
22736
22737         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
22738         Jerome Laban (bug #42287)
22739
22740 2003-05-02  Martin Baulig  <martin@ximian.com>
22741
22742         * debug-mono-symfile.h
22743         (MonoSymbolFile): Moved declaration into mono-debug.h.
22744         (MonoDebugMethodJitInfo): Likewise.
22745         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
22746         argument.
22747         (_mono_debug_address_from_il_offset): Take a
22748         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
22749
22750         * mono-debug.h
22751         (MonoDebugDomainData): New struct.
22752         (mono_debug_get_domain_data): New function.
22753         (mono_debug_add_method): Take an additional `MonoDomain *'
22754         argument.
22755         (mono_debug_source_location_from_address): Likewise.
22756         (mono_debug_il_offset_from_address): Likewise.
22757         (mono_debug_address_from_il_offset): Likewise.
22758
22759 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
22760
22761         * reflection.c: one more check for null type in custom attrs.
22762
22763 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22764
22765         * reflection.c: avoid warning (comparison is always false due to limited
22766         range of data type).
22767
22768 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22769
22770         * icall.c: throw an exception in Type.GetField if the argument 'name'
22771         is NULL.
22772
22773 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
22774
22775         * reflection.c: fixed handling of enums in named arguments to custom
22776         attributes (bug #42123).
22777
22778 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
22779
22780         * reflection.c: use the right array element type and handle
22781         a null for a Type argument, too.
22782
22783 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
22784
22785         * reflection.c: handle arrays as arguments to custom attributes.
22786
22787 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
22788
22789         * reflection.c: handle a string value in a custom attr
22790         ctor that takes an object.
22791
22792 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
22793
22794         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
22795         (fix bug #42063)
22796
22797 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
22798
22799         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
22800
22801 2003-04-27  Martin Baulig  <martin@ximian.com>
22802
22803         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
22804         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
22805         MONO_DEBUGGER_EVENT_BREAKPOINT.
22806         (mono_breakpoint_trampoline_code): Removed.
22807         (mono_debugger_event_handler): The last argument is now a
22808         `guint32'.
22809         (mono_debugger_insert_breakpoint_full): Removed the
22810         `use_trampoline' argument.
22811         (mono_debugger_method_has_breakpoint): Likewise.
22812         (mono_debugger_trampoline_breakpoint_callback): Renamed to
22813         mono_debugger_breakpoint_callback(); take the method and
22814         breakpoint number as arguments.
22815
22816 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
22817
22818         * metadata.c: fix off by one when loading parameters attributes.
22819
22820 2003-04-24  Martin Baulig  <martin@ximian.com>
22821
22822         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
22823
22824 2003-04-24  Martin Baulig  <martin@ximian.com>
22825
22826         * mono-debug-debugger.c: Moved all code which interacts with the
22827         Mono Debugger here.
22828
22829         * debug-mono-symfile.c: This code now just deals with the symbol
22830         file itself, the debugger code is now in mono-debug-debugger.c.
22831
22832 2003-04-23  Martin Baulig  <martin@ximian.com>
22833
22834         * mono-debug.c (mono_debug_source_location_from_il_offset):
22835         New method; like mono_debug_source_location_from_address(), but
22836         takes an IL offset instead of a machine address.
22837
22838 2003-04-23  Martin Baulig  <martin@ximian.com>
22839
22840         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
22841         `line' field; this is now computed by the debugger.
22842
22843 2003-04-23  Martin Baulig  <martin@ximian.com>
22844
22845         * mono-debug.[ch]: New files.  This is the new debugging interface.
22846
22847         * mono-debug-debugger.[ch]: New files.  Moved all code which
22848         interacts with the Mono Debugger here.
22849
22850 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
22851
22852         * domain.c (mono_init): initialize mono_defaults.monitor_class
22853
22854 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
22855
22856         * reflection.c (method_encode_code): Add a spicy exception to help
22857         future compiler authors.
22858
22859 2003-04-21  Martin Baulig  <martin@ximian.com>
22860
22861         * icall.c
22862         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22863         Make this work with relative pathnames; g_filename_to_uri() needs
22864         an absolute filename.
22865
22866 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
22867
22868         * icall.c: Track name changes in Object and ValueType.
22869
22870 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
22871
22872         * metadata.c (mono_type_stack_size): size should be a multiple of
22873         sizeof (gpointer)
22874
22875 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22876
22877         * gc.c:
22878         (internal_domain_finalize): moved into mono_domain_finalize. No need
22879         to create another thread because the finalizers will be run in the
22880         finalizer thread.
22881         
22882         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
22883         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
22884         to be run (MS does this too).
22885
22886 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
22887
22888         * object.c (mono_class_compute_gc_descriptor): Update comment.
22889
22890         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
22891
22892         * image.h: Add synchronized wrapper cache.
22893
22894         * image.c (do_mono_image_open): Initialize cache.
22895
22896         * reflection.c (create_dynamic_mono_image): Initialize cache.
22897
22898 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22899
22900         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
22901         ves_icall_System_Buffer_ByteLengthInternal.
22902
22903 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22904
22905         * reflection.c: setup klass->nested_in earlier. Allow
22906         a dash in the assembly name.
22907
22908 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
22909
22910         * metadata.c (mono_type_to_unmanaged): dont access
22911         type->data.klass for MONO_TYPE_OBJECT
22912         (mono_type_to_unmanaged): consider System.Delegate class
22913
22914 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
22915
22916         * class.c: just setup supertypes in the proper place instead of
22917         initializing the full element class for arrays.
22918
22919 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22920
22921         * class.c: ensure the element class of arrays is initialized.
22922         Setup the supertype info for array classes, too.
22923
22924 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
22925
22926         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
22927
22928 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22929
22930         * Makefile.am: re-added -m option when running cygpath. This way,
22931         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
22932         separator.
22933         * mono-config.c: same codepath for locating mono config file for WIN32
22934         and the rest.
22935         * assembly.c: if mono_assembly_setrootdir is called, don't override
22936         the value set.
22937
22938 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22939
22940         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
22941         MONO_ASSEMBLIES variable.
22942
22943 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
22944
22945         * icall.c: added Assembly::GetNamespaces() icall.
22946
22947 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22948
22949         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
22950
22951 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
22952
22953         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
22954         * object.c: fixed bug in the construction of vtable for proxies
22955
22956 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
22957
22958         * object.c (mono_array_new): Mark mono_array_new as an icall.
22959
22960 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22961
22962         * class.c: fixed test for public method when overriding interfaces.
22963         Closes bug #40970.
22964
22965 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22966
22967         * appdomain.h, domain.c: added mono_domain_foreach() to
22968         be able to access the currently loaded appdomains.
22969         * object.c: make string interning work across sppdomains.
22970         Mark some functions for use as icalls.
22971
22972 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
22973
22974         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
22975
22976         * reflection.h reflection.c: Allocate long living data using 
22977         GC_MALLOC_ATOMIC so the collector does not need to scan it.
22978
22979         * reflection.c: Double the allocation size in streams instead of
22980         increasing it, to prevent unneccesary copying on large assemblies.
22981         
22982         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
22983         creation if the assembly does not have the Run flag set.
22984
22985 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
22986
22987         * class.h: avoid the C++ keywords in header files (Jerome Laban
22988         spotted and fixed this).
22989
22990 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22991
22992         * object.c:
22993         (mono_unhandled_exception): fill in the arguments for the
22994         UnhandledException event. Only trigger that event for the default
22995         domain (as MS does).
22996
22997 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
22998
22999         * object.c: Improve typed allocation stuff based on suggestions from
23000         Paolo. Also turn it on if the GC library supports it.
23001
23002 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
23003
23004         * object.c object.h class.h: Added experimental typed allocation
23005         facility using the interfaces in gc_gcj.h.
23006
23007         * os/gc_wrapper.h: Added new include files.
23008         
23009 2003-04-03  Martin Baulig  <martin@ximian.com>
23010
23011         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
23012         which is not yet enabled by default.
23013
23014         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
23015         functions.
23016         (mono_gc_lock, mono_gc_unlock): New static functions.
23017
23018         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
23019         functions; stop/start the world for the garbage collector.  This
23020         is using the windows API; we need to complete the SuspendThread()/
23021         ResumeThread() implementation in the io-layer to make this work on Unix.
23022         (mono_gc_push_all_stacks): New public function; tells the garbage
23023         collector about the stack pointers from all managed threads.
23024
23025 2003-04-03  Martin Baulig  <martin@ximian.com>
23026
23027         * object.h (MonoThread): Added `gpointer stack_ptr'.
23028
23029         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
23030
23031 2003-04-03  Martin Baulig  <martin@ximian.com>
23032
23033         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
23034
23035 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
23036
23037         * reflection.c (typebuilder_setup_fields): Initialize field.first and
23038         field.last.
23039
23040 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
23041
23042         * loader.c (mono_lookup_internal_call): Report the corlib that is
23043         out of sync.
23044
23045 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
23046
23047         * icall.c (ves_icall_type_GetTypeCode): fixed check for
23048         System.DBNull (it's class not valuetype).
23049
23050 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
23051
23052         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
23053         if the array method was already assigned a token (fixes bug#40646).
23054
23055 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
23056
23057         * reflection.c (mono_reflection_get_type): Attempt type resolve even
23058         if no assembly is given.
23059
23060 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
23061
23062         * metadata.h: Added the new tables.
23063
23064         * row-indexes.h: Added definitions for new tables.
23065
23066         * metadata.c: Add schemas for new tables, and add support for
23067         computing the sizes of them.
23068
23069         * class.c: Update for handling the new type cases.
23070
23071 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
23072
23073         * metadata.h (MONO_TYPE_IS_VOID): new macro
23074
23075 2003-03-31  Martin Baulig  <martin@ximian.com>
23076
23077         * threads.h (MonoThreadCallbacks): Added `thread_created'.
23078
23079         * threads.c (mono_thread_new_init): Call `thread_created' in the
23080         mono_thread_callbacks.
23081
23082 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
23083
23084         * loader.h: added marshalbyrefobject_class to mono_defaults
23085         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
23086         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
23087           generation of output parameters.
23088           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
23089         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
23090           contextbound and the target object belongs to the context of the caller.
23091         * object.h: added context and unwrapped_server variables in MonoRealProxy.
23092         * object.c: Implemented support for interfaces and abstract classes
23093           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
23094           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
23095
23096 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
23097
23098         * class.h class.c (mono_class_is_subclass_of): New function.
23099         
23100         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
23101         routines for most common case (calls from ArrayList::ToArray).
23102
23103         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
23104         routine so programs which call Environment::Exit() can be profiled.
23105
23106         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
23107         Added MONO_ARCH_SAVE_REGS.
23108
23109         * icall.c (ves_icall_type_is_subtype_of): Use new function.
23110
23111 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
23112
23113         * blob.h: Add a couple of new MonoType types definitions.
23114
23115         * tabledefs.h: Add a couple of new call convs.
23116
23117 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
23118
23119         * reflection.h (MonoReflectionDynamicAssembly): track changes in
23120         the layout of the class.
23121
23122         * reflection.c (alloc_table): double the size on overflow to avoid
23123         unnecessary copying.
23124
23125         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
23126         avoid filling out metadata tables and blobs. Also set mb->ilgen to
23127         null so it can be garbage collected.
23128         
23129 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
23130
23131         * reflection.c (mono_reflection_get_type): Return the resolved type
23132         only if it is in the assembly we searched.
23133
23134         * reflection.c (ensure_runtime_vtable): Initialize method slots.
23135
23136         * class.c (mono_class_setup_vtable): Set the slot of the overriding
23137         method.
23138
23139 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23140
23141         * appdomain.c:
23142         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
23143         the right one is 'file:///blah', but MS allows it.
23144         * assembly.c:
23145         (mono_assembly_open): allow 'file://blah'
23146
23147         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
23148
23149 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
23150
23151         * socket-io.c: fixes bug #40310.
23152
23153 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
23154
23155         * reflection.c (mono_reflection_parse_type): handle deeply nested
23156         types correctly.
23157
23158         * reflection.c (mono_image_create_token): Use unique token values
23159         since they will be put into a hash table.
23160
23161         * class.c (mono_class_setup_vtable): If a method occurs in more than
23162         one place in the vtable, and it gets overriden, then change the
23163         other occurances too.
23164
23165         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
23166         object as return type.
23167
23168 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23169
23170         * icall.c: Deleted "ToString" implementation for double and float
23171         because they are full implemented in managed code.
23172
23173 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23174
23175         * reflection.c, reflection.h: implemented and exported functions
23176         to retrieve info about custom attributes.
23177
23178 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23179
23180         * appdomain.c: moved Uri handling to assembly.c
23181         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
23182         work when using a file Uri in *nix and windows.
23183
23184         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
23185         GetReferencedAssemblies.
23186
23187 2003-03-18  Dick Porter  <dick@ximian.com>
23188
23189         * icall.c: Rename a couple of internal calls
23190
23191         * threads.c: Set the thread state to Stopped when a thread exits.
23192         Fixes bug 39377.
23193
23194 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
23195
23196         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
23197         New icall.
23198
23199         * object.c (mono_class_vtable): fix warning.
23200
23201 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
23202
23203         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
23204
23205         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
23206         memory.
23207         (method_encode_clauses): Create exception info structures in the right
23208         order.
23209         (mono_reflection_setup_internal_class): Initialize supertypes field.
23210
23211         * class.c object.c: Handle interfaces which implement other interfaces 
23212         correctly.
23213
23214         * class.h class.c: Move the supertypes array initialization code into 
23215         a separate function so it can be used for dynamic types too. Also call
23216         it earlier, in mono_class_init(), since it can be used before the
23217         type is initialized.
23218
23219 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23220
23221         * Makefile.am:
23222         * assembly.c:
23223         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
23224
23225         * appdomain.c:
23226         * appdomain.h:
23227         * marshal.c:
23228         * object.c: remove warnings.
23229
23230 2003-03-13  Martin Baulig  <martin@ximian.com>
23231
23232         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
23233         (MonoDebugLexicalBlockEntry): New types.
23234
23235         * debug-mono-symfile.c
23236         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
23237
23238 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23239
23240         * process.c: ret can be any non-zero value accroding to MS doc.
23241
23242 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
23243
23244         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
23245         fixing a warning for a miss-used prototype, would have cause
23246         random memory corruption.
23247
23248 2003-03-07  Martin Baulig  <martin@ximian.com>
23249
23250         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
23251         getting really annoying ....
23252
23253 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
23254
23255         * reflection.c (fixup_method): added support for array methods.
23256
23257 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
23258
23259         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
23260         (pointed out by Michael Adams).
23261
23262 2003-03-04  Dick Porter  <dick@ximian.com>
23263
23264         * icall.c: Temporarily reverted the Double and Single ToString()
23265         change, because it broke nunit.
23266
23267 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
23268
23269         * object.h, threads.h: make include files compatible with C++
23270         (patch by Jerome Laban <jlaban@wanadoo.fr>).
23271
23272 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23273
23274         * icall.c: Erased ToString helper functions for Double and Single.
23275         Now, that implementations ar all in managed code (Double and Single
23276         Formatters).
23277
23278 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
23279
23280         * appdomain.c: Added method for initializing the default context of
23281         a domain. Added internal call for getting the default context.
23282         * appdomain.h: Added context variable in MonoDomain struct.
23283         * domain.c: mono_domain_set also sets the default context of the domain
23284         * icall.c: Mapped internal method InternalGetDefaultContext.
23285         * object.c: mono_object_get_virtual_method returns always a remoting
23286         wrapper if the object is a transparent proxy.
23287         mono_runtime_invoke_array: when creating an object by calling the
23288         constructor, if the created object is a proxy, then the constructor should
23289         be called using the a remoting wrapper.
23290
23291 2003-03-03  Dick Porter  <dick@ximian.com>
23292
23293         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
23294         variable so it compiles on solaris.  Problem spotted by
23295         Christopher Taylor <ct@cs.clemson.edu>
23296
23297 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23298
23299         * appdomain.c:
23300         (get_info_from_assembly_name): don't leak value.
23301
23302         * icall.c:
23303         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
23304         result.
23305
23306 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
23307
23308         * assembly.c: export mono_image_load_references ().
23309         * class.c: handle function pointers. mono_class_from_name() now
23310         supports nested type names directly.
23311
23312 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
23313
23314         * reflection.h reflection.c: Encode already created dynamic methods 
23315         and fields correctly as a DEF instead of a REF.
23316
23317         * reflection.c: Get rid of the force_ref argument to 
23318         mono_image_typedef_or_ref since it was wrong in the first place.
23319
23320         * string-icalls.c: add error checking to string constructors according
23321         to the MSDN docs.
23322
23323         * reflection.c: Emit types in the order their TypeBuilders were 
23324         created. Previously, a new table index was assigned to each type before
23325         the tables were emitted. This was wrong because the signature blob
23326         might already refer to a type by its original table index.
23327
23328 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
23329
23330         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
23331         change.
23332         
23333 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23334
23335         * Makefile.am: make assemblies dir have \ instead of / on windows.
23336
23337 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
23338
23339         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
23340         iterate over the NESTEDCLASS table using a linear search since the
23341         table is not guaranteed to be sorted by the secondary key.
23342
23343         * class.c (mono_class_create_from_typedef): fixed up call to
23344         mono_metadata_nesting_typedef.
23345         
23346 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
23347
23348         * marshal.c (mono_string_to_byvalstr): clear the memory as
23349         suggested by Jerome Laban <jlaban@wanadoo.fr>
23350
23351 2003-02-26  Dick Porter  <dick@ximian.com>
23352
23353         * process.c: Cope with padding in .rsrc blocks
23354
23355 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23356
23357         * metadata.h: reverted the filter_len change, it breaks reflection
23358         
23359 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23360
23361         * metadata.h: added a new field to store the filter_len
23362         
23363
23364 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
23365
23366         * reflection.c: handle custom attributes for types and members
23367         created with Reflection.Emit (bug#38422).
23368
23369 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
23370
23371         * reflection.c: define RTSpecialName automatically for constructors for
23372         compatibility with MS.NET.
23373
23374         * reflection.c (mono_reflection_create_runtime_class): initialize
23375         nested_in field of dynamically created classes.
23376
23377 2003-02-22  Martin Baulig  <martin@ximian.com>
23378
23379         * debug-mono-symfile.h: Incremented version number.
23380
23381 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23382
23383         * object.h icall.c process.c: fix warnings.
23384
23385 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23386
23387         * appdomain.h appdomain.c:
23388         (mono_domain_try_type_resolve): split the 
23389         name_or_tb argument into a name and a tb argument.
23390         (mono_domain_has_type_resolve): new function to check whenever the
23391         application has registered a TypeResolve event handler.
23392         
23393         * icall.c reflection.h reflection.c: move the type resolve logic into
23394         mono_reflection_get_type () so it will be invoked when 
23395         Assembly::GetType () is called.
23396
23397         * reflection.c:
23398         (mono_reflection_get_type): renamed to get_type_internal.
23399         (mono_reflection_get_type): fixed type name generation so it works 
23400         for nested types too.
23401         (mono_reflection_get_type): call has_type_resolve () to avoid the 
23402         costly type name generation if there is no resolve event handler.
23403
23404 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23405
23406         * class.c, image.c: load exported types from file references.
23407
23408 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
23409
23410         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
23411           used to cache the managed methods used to create proxies and make 
23412           remote invocation of methods.
23413         * class.h: Added in MonoVTable a flag to indicate that a class needs 
23414           to be remotely created.
23415         * object.c: Modified the method mono_class_vtable(). It now initializes 
23416           the remote flag of the vtable. Modified mono_object_new_specific(), 
23417           so now it checks the remote flag.
23418         * icall.c: Added a couple of internal methods, one for enabling instance 
23419           creation interception for a type, and one for creating objects bypassing
23420           the remote check.
23421
23422 2003-02-18  Martin Baulig  <martin@ximian.com>
23423
23424         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
23425         New interncall to get a method's metadata token.
23426
23427         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
23428         New interncall for the debugger.
23429
23430 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
23431
23432         * class.c (mono_class_setup_vtable): allocate supertype array
23433
23434 2003-02-18  Martin Baulig  <martin@ximian.com>
23435
23436         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
23437
23438 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23439
23440         * reflection.c:
23441         (assembly_name_to_aname): jump over unknown properties (i've found
23442         something like: 'type, assembly, version=xxx, custom=null, public...',
23443         so now will ignore custom=null and still get the rest of the values).
23444
23445 2003-02-17  Dick Porter  <dick@ximian.com>
23446
23447         * threads.c: Have Thread.Start() wait for a semaphore to signal
23448         that the thread has set up all its local data.  This fixes bug
23449         34323, where Abort() raced the new thread's TLS data.
23450
23451         Also removes the handle_store() call from start_wrapper, because
23452         threads are now always created suspended and there is no longer a
23453         race between the parent and child threads to store the info.
23454
23455 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
23456
23457         * image.c: explain the #- heap issue in a message, hopefully
23458         avoiding FAQs on mono-list.
23459
23460 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23461
23462         * icall.c:
23463         (GetEntryAssembly): if the domain has not invoked
23464         AppDomain.ExecuteAssembly yet, return the assembly of the default
23465         AppDomain.
23466
23467 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
23468
23469         * class.c (mono_ldtoken): make it work in dynamic assemblies.
23470
23471 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
23472
23473         * metadata.c, reflection.c: simple speedup to type hash
23474         and equals code.
23475
23476 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
23477
23478         * image.c, image.h, class.c, assembly.c: move module loading
23479         to MonoImage. When loading metadata, consider alignemnet from
23480         the start of metadata, not from the metadata address in memory.
23481
23482 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
23483
23484         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
23485         AssemblyBuilder objects. Factored out custom attribute creation into
23486         a separate function.
23487         (create_custom_attr): new function to create custom attributes.
23488
23489 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
23490
23491         * Makefile.am: Got tired of typing the full pathname to pedump.
23492         Until there is another option, am installing this.
23493
23494 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
23495
23496         * class.c (class_compute_field_layout): always set field->parent 
23497         (mono_ldtoken): use mono_defaults.fieldhandle_class;
23498
23499 2003-02-11  Dick Porter  <dick@ximian.com>
23500
23501         * threads-types.h:
23502         * monitor.c: Rewrote Monitor, making lock much faster and
23503         Pulse/Wait work as specified.  Also uses much fewer handles, and only
23504         creates them as needed.
23505
23506         * exception.c: Added SynchronizationLockException
23507
23508         * threads.c: Deleted old Monitor implementation.  The new one is
23509         in a new file.
23510
23511 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
23512
23513         * class.c: handled TypedReference type code. Set the correct size for
23514         class data. Setup interface_offsets for interface classes, too.
23515
23516 2003-02-09  Martin Baulig  <martin@ximian.com>
23517
23518         * debug-mono-symfile.h: Reflect latest symbol writer changes.
23519
23520 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
23521
23522         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
23523         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
23524         * object.c: fixed mono_object_get_virtual_method () for interfaces.
23525         * verify.c: check for code that runs after the end of the method.
23526
23527 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23528
23529         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
23530         "System.Math::Round2".
23531         * sysmath.h: Added Floor, Round and Round2 definitions.
23532         * sysmath.c: Modified certain functions that were not 100% compliant
23533         with MS.NET (math precision) and added the implementation of Floor,
23534         Round and Round2.
23535
23536 2003-02-07  Martin Baulig  <martin@ximian.com>
23537
23538         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
23539
23540 2003-02-07  Martin Baulig  <martin@ximian.com>
23541
23542         * debug-mono-symfile.c: Reflected latest symwriter changes.
23543         (mono_debug_create_mono_symbol_file): Removed.
23544         (mono_debug_open_mono_symbol_file): Take an argument which
23545         specifies whether to create a dynamic symbol file.
23546
23547 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
23548
23549         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
23550
23551 2003-02-05  Martin Baulig  <martin@ximian.com>
23552
23553         * reflection.c (mono_image_build_metadata): Make this public,
23554         protect it against being called multiple times, don't create
23555         resources and don't build the compressed metadata here.
23556         (mono_image_create_pefile): Do this here.
23557
23558         * icall.c
23559         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
23560
23561 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23562
23563         * socket-io.c: fixed bug #36322.
23564
23565 2003-02-06  Piers Haken <piersh@friskit.com>
23566
23567         * appdomain.[ch]:
23568         * class.h:
23569         * debug-mono-symfile.c:
23570         * icall.c:
23571         * loader.c:
23572         * mono-config.c:
23573         * monosn.c:
23574         * reflection.c:
23575         * socket-io.c: warning cleanups
23576
23577 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
23578
23579         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
23580         function. works like remoting invoke, but does a check for the Proxy first.
23581
23582 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
23583
23584         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
23585
23586 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
23587
23588         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
23589         array of pointers.
23590         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
23591         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
23592
23593         * object.c (mono_store_remote_field_new): used by the new jit
23594         instead of mono_store_remote_field
23595         (mono_load_remote_field_new): used by the new jit
23596         instead of mono_load_remote_field
23597
23598 2003-02-05  Patrik Torstensson
23599
23600         * appdomain.c: changed unload to take the domain id instead
23601         of domain
23602         
23603         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
23604
23605
23606 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23607
23608         * appdomain.c: don't look for assemblies in ApplicationBase if
23609         PrivateBinPathProbe is set.
23610
23611 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23612
23613         * object.c: make the first argument in main_args contain the absolute
23614         path to the assembly. Fixes bug #37511.
23615
23616 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23617
23618         * icall.c: get correct UTC offset for countries not using daylight
23619         time saving. Fixes bug #30030.
23620
23621 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23622
23623         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
23624         and 1 are the family).
23625
23626 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
23627
23628         * icall.c (ves_icall_InternalExecute): removed wrong assertion
23629
23630         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
23631
23632 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
23633
23634         * reflection.c: added support for SignatureHelper tokens, which is
23635         needed by the Calli opcode.
23636
23637         * reflection.h: track changes to SignatureHelper class.
23638
23639         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
23640
23641 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23642
23643         * appdomain.c: fixed loading assemblies from PrivateBinPath.
23644
23645 2003-02-03  Patrik Torstensson
23646         * appdomain.[c|h], domain.c : 
23647          - Added support for getting a domain via domain id
23648          - Support for setting and getting domain from System.AppDomain 
23649            (used in cross appdomain channel)
23650          - Added support for get/set for a MonoAppContext on a thread 
23651            (Context class in System.Runtime.Remoting.Contexts),
23652          - Removed hack in Get/SetData and ExecuteAssembly.
23653         
23654         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
23655         the managed world to get control when a proxy is created.
23656
23657         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
23658         
23659 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
23660
23661         * icall.c
23662         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
23663         Populate the codebase field as well.
23664
23665 2003-02-02  Martin Baulig  <martin@ximian.com>
23666
23667         * debug-mono-symfile.c
23668         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
23669         (mono_debug_symfile_add_method): Allow interncalls.
23670
23671 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23672
23673         * icall.c: throw parse exception if strtod fails or the string is empty.
23674
23675 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
23676
23677         * marshal.c: handle object type separately from defined
23678         class types.
23679
23680 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
23681
23682         * marshal.c: handle NATIVE_LPSTR for strings when it's
23683         explicitly specified.
23684
23685 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
23686
23687         * reflection.c, reflection.h, icall.c: setup the reflection
23688         handle cache for ModuleBuilders and AssemblyBuilders.
23689
23690 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
23691
23692         * reflection.c (reflection_methodbuilder_to_mono_method): set
23693         pinvoke flag
23694
23695 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23696
23697         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
23698
23699 2003-01-29  Dick Porter  <dick@ximian.com>
23700
23701         * threads.c: No need for the fake_thread kludge now that Thread
23702         doesn't run a class constructor
23703         
23704 2003-01-29  Dick Porter  <dick@ximian.com>
23705
23706         * threads.c: Use g_direct_hash instead of the rather bogus
23707         g_int_hash
23708
23709 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
23710
23711         * marshal.c (mono_marshal_get_native_wrapper): add check for null
23712         (fix pinvoke12.exe)
23713         (mono_marshal_get_struct_to_ptr): generate valid IL code
23714         (mono_marshal_get_ptr_to_struct): generate valid IL code
23715         (*): correctly set sig->pinvoke, we need to memdup the signature
23716         to do that
23717
23718 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23719
23720         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
23721         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
23722
23723 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
23724
23725         * profiler.c: provide more callers information.
23726
23727 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
23728
23729         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
23730
23731         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
23732
23733         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
23734
23735 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23736
23737         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
23738         exception instead of going into an infinite loop on dates which it 
23739         can't yet handle.
23740
23741         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
23742         out-of-range exception if needed.
23743
23744         * class.c (mono_class_setup_vtable): allow a virtual method to provide
23745         an implementation for an interface method and to override an inherited
23746         method at the same time. 
23747         Imagine a scenario when a virtual method is used to override a
23748         virtual abstract method in a parent class, and this same method 
23749         provides an implementation for an method inherited from an interface. 
23750         In this case, the interface resolution code will set im->slot, which 
23751         means that the virtual method override pass will skip this method 
23752         which means a pointer to the abstract method inherited from the parent
23753         will remain in the vtable of this non-abstract class.
23754
23755         * class.c: (mono_class_setup_vtable): continue search for a real 
23756         method if only an abstract method is found.     
23757
23758 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
23759
23760         * reflection.c: add size to encoding for ByValStr and ByValArray
23761         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
23762
23763 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23764
23765         * class.c (mono_class_setup_vtable): pass the override info as an
23766         argument.
23767
23768         * class.c (mono_class_setup_vtable): set the slot of overriding methods
23769         correctly.
23770         
23771         * reflection.c (ensure_runtime_vtable); add support for method 
23772         overrides.
23773         
23774 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23775
23776         * reflection.c (resolution_scope_from_image): Hack to work to work with
23777         dynamic assemblies.
23778
23779         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
23780         added a 'force_ref' argument to force this function to allways return 
23781         a TypeRef. This is needed by mono_image_get_memberref_token ().
23782         
23783 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23784
23785         * reflection.c (mono_image_get_type_info): interfaces really don't have
23786         a parent.
23787
23788         * reflection.c (mono_image_basic_init): fill out missing fields of
23789         image structure.
23790
23791         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
23792         dynamic assemblies. This is required so dynamic assemblies show up in
23793         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
23794         Type::GetType() etc. This is consistent with MS behaviour.
23795
23796         * image.c image.h reflection.c: add newly created classes to the name 
23797         cache so mono_class_get () will find them.      
23798
23799 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23800
23801         First part of changes to get IKVM.NET running under mono.
23802         
23803         * appdomain.h, appdomain.c: added new function 
23804         mono_domain_try_type_resolve() which will emit TypeResolve events. 
23805         This function will call AppDomain::DoTypeResolve to do the actual work.
23806
23807         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
23808         moved existing code dealing with dynamic tokens to a new function 
23809         called mono_reflection_lookup_dynamic_token (). This function will 
23810         raise TypeResolve events when appropriate. Since reflection.c is not 
23811         part of libmetadata, a new hook function called 
23812         mono_lookup_dynamic_token() is added to class.c which will call this.
23813
23814         * assembly.h assembly.c: make the invoke_load_hook function public,
23815         so it can be called for dynamic assemblies.
23816
23817         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
23818
23819         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
23820         type isn't found.
23821
23822         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
23823         MonoGHashTable, since it contains pointers to objects which the GC 
23824         needs to track.
23825
23826         * assembly.c (search_loaded): remove unused variable.
23827         
23828 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
23829
23830         * object.c: fixed issue exposed by gcc-generated IL programs
23831         that use RVA data for pointers.
23832
23833 2003-01-25  Martin Baulig  <martin@ximian.com>
23834
23835         * threads.c (start_wrapper): Moved the initialization of
23836         `start_func' above the mono_new_thread_init() call to which we
23837         pass it as argument.
23838
23839 2003-01-24  Martin Baulig  <martin@ximian.com>
23840
23841         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
23842         the MonoThread pointer.
23843
23844 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
23845
23846         * icall.c: Rename `PowImpl' to Pow.
23847
23848 2003-01-23  Dick Porter  <dick@ximian.com>
23849
23850         * threads.c (start_wrapper): Create a Thread object if needed, so
23851         the Main() thread can do the class initialisation in a subthread
23852         that has been set up to allow managed code execution.
23853
23854         Pass the thread ID instead of the MonoThread pointer to the thread
23855         start and attach callbacks.  This change is required, because the
23856         jit thread start callback must be called _before_ the Thread
23857         object can be created.
23858         
23859         (mono_thread_init): Removed much object creation code that is no
23860         longer needed.  No managed code is called from here now.
23861
23862         * object.c (mono_runtime_exec_managed_code): Create a subthread
23863         for Main, and call back to the runtime to use it.
23864         Set the exit code when Main exits.
23865
23866         * gc.c: Make sure domain finalisation happens in a subthread.
23867         Re-enable threaded GC, fixing bug 31333 (again).
23868
23869         * environment.c: System.Environment internall calls (so far just
23870         ExitCode is here, the others are still in icall.c)
23871
23872         * appdomain.c (mono_runtime_cleanup): All threads running managed
23873         code should have finished before mono_runtime_cleanup() is
23874         reached, so no need to clean up threads.
23875
23876 2003-01-22  Martin Baulig  <martin@ximian.com>
23877
23878         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
23879         `gpointer func' arguments.      
23880         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
23881         but added `MonoThread *thread' argument.
23882         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
23883
23884         * threads.c (mono_new_thread_init): Added `gpointer func' argument
23885         and pass it to the mono_thread_start_cb callback.
23886         (mono_install_thread_callbacks): New public function to install a
23887         set of callbacks which are set by the debugger.
23888         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
23889
23890 2003-01-22  Martin Baulig  <martin@ximian.com>
23891
23892         * Makefile.am: Install debug-mono-symfile.h.
23893
23894 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
23895
23896         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
23897
23898 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
23899
23900         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
23901         * class.c (mono_ptr_class_get): correctly set access levels of pointers
23902         (mono_array_class_get): correctly set access levels of arrays
23903
23904 2003-01-20      Patrik Torstensson
23905         * image.h (MonoAssemblyName): changed major, minor, build, revision
23906         from signed to unsigned.
23907
23908 2003-01-20  sean kasun <skasun@azstarnet.com>
23909
23910         * reflection.c (load_cattr_value): Now this handles
23911         MONO_TYPE_SZARRAY.  Fixes bug #35629
23912
23913 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
23914
23915         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
23916         integer value
23917
23918 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23919
23920         * decimal.c: fixed bug #26056.
23921
23922 2003-01-17  Martin Baulig  <martin@ximian.com>
23923
23924         * gc.c: Raise an ExecutionEngineException instead of using g_error().
23925
23926 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23927
23928         * exception.[ch]:
23929         (mono_get_exception_type_initialization): new function.
23930
23931         * object.c: throw a TypeInitializationException when an exception is
23932         thrown invoking the class constructor.
23933
23934 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23935
23936         * reflection.c: fixed attribute reading.
23937
23938 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23939
23940         * icall.c:
23941         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
23942         provided, look for the type in the calling assembly and then in
23943         mscorlib; if the assembly name is provided, only try that one.
23944
23945 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
23946
23947         * object.c: register the vtable before there is a chance it's
23948         queried again recursively.
23949
23950 2003-01-13  Duncan Mak  <duncan@ximian.com>
23951
23952         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
23953         gc-internal.h. 
23954         
23955 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
23956
23957         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
23958
23959 2003-01-11  Martin Baulig  <martin@ximian.com>
23960
23961         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
23962         this to 20 for the release.
23963
23964 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
23965
23966         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
23967
23968         * loader.c (mono_method_get_marshal_info): bug fix
23969
23970         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
23971         structures with explicit layout
23972
23973 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
23974
23975         * profiler.c: made the output more readable (and sorted). 
23976         Added caller information for the allocation profiler.
23977
23978 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
23979
23980         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
23981
23982 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23983
23984         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
23985         to get value types.
23986         
23987 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
23988
23989         * object.c, profiler.h, profiler.c, profiler-private.h:
23990         Added object allocation profiler.
23991
23992 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
23993
23994         * reflection.h, reflection.c: handle global methods.
23995         Compress blob entries.
23996
23997 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
23998
23999         * marshal.c: fix compilation.
24000
24001 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
24002
24003         * loader.c (mono_method_get_marshal_info): impl.
24004
24005         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
24006
24007 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24008
24009         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
24010         for reference types.
24011
24012 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
24013
24014         * loader.c: fixed off by one error in loaded parameter names.
24015
24016 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
24017
24018         * marshal.c (mono_marshal_get_icall_wrapper): like
24019         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
24020         instead of a MonoMethod.
24021
24022 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24023
24024         * decimal.c: fixed bug #36537.
24025
24026 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
24027
24028         * marshal.c: throw a missing method exception if a
24029         P/Invoke method is not found.
24030
24031 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
24032
24033         * icall.c: allow a null this for constructors.
24034
24035 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
24036
24037         * icall.c: raise the proper exceptions if the arguments to the
24038         internal Invoke are incorrect.
24039
24040 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
24041
24042         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
24043
24044 2003-01-03  Martin Baulig  <martin@ximian.com>
24045
24046         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
24047
24048 2002-12-31  Martin Baulig  <martin@ximian.com>
24049
24050         * debug-mono-symfile.c: Completely rewrote the type section.
24051         Instead of using individual malloc()ed fields, we use one big
24052         continuous memory area and offsets into this area.
24053         See the comments in the source code for details.
24054
24055 2002-12-30  Martin Baulig  <martin@ximian.com>
24056
24057         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
24058
24059 2002-12-30  Martin Baulig  <martin@ximian.com>
24060
24061         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
24062         line number table in this data blob instead of using an external
24063         pointer.
24064
24065 2002-12-28  Martin Baulig  <martin@ximian.com>
24066
24067         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
24068
24069 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
24070
24071         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
24072         as a boxed return type.
24073
24074 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
24075
24076         * appdomain.c
24077         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
24078         g_build_filename to properly get separators on the filename created.
24079
24080         * object.h: Small change, introduce MonoMarshalByRefObject to
24081         track the layout of that structure in the C# universe as we make
24082         changes there.
24083
24084 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
24085
24086         * object.c: removed assert to allow static fields on interfaces.
24087         * loader.c: a TypeSpec may be used for any type, not just arrays.
24088
24089 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
24090
24091         * class.c, class.h: added mono_class_array_element_size ().
24092         Ignore static methods in interfaces.
24093
24094 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24095
24096         * threads.c: fixed the build under cygwin.
24097
24098 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
24099
24100         * reflection.c: handle nullref constants. Allocate keys for
24101         reflection handles with the GC.
24102
24103 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24104
24105         * threads.c, threads.h: added mono_thread_get_abort_signal()
24106         to get a suitable signal for thread abort.
24107
24108 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
24109
24110         * metadata.c: fix handling of ExportedType table.
24111
24112 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24113
24114         * icall.c: added WriteWindowsDebugString internal call.
24115
24116 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24117
24118         * reflection.h: added fields to match C# implementation.
24119
24120 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24121
24122         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
24123
24124 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
24125
24126         * gc.h, gc-internal.h: Rename header for GC internal calls to
24127         gc-internal.h from gc.h as to not clash with Boehm GC having its
24128         header installed as <gc.h> in outside include paths.
24129         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
24130         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
24131
24132 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24133
24134         * icall.c: assign minor, build and revision in FillName.
24135
24136 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
24137
24138         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
24139         Added support for running code generated by Reflection.Emit.
24140
24141 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24142
24143         * appdomain.c: check for NULL argument in LoadFrom.
24144
24145 2002-12-10  Dick Porter  <dick@ximian.com>
24146
24147         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
24148
24149 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24150
24151         * appdomain.c: fix buglet when building exe file name.  Handle full
24152         assembly name (needed after latest changes to AssemblyName).
24153         * image.c:
24154         (mono_image_close): free some hashtables.
24155
24156 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
24157
24158         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
24159         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
24160         on some systems (redhat 7.3) 
24161
24162 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
24163
24164         * threads.c: delete the critical section of a sync block,
24165         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
24166
24167 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
24168
24169         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
24170
24171 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24172
24173         * appdomain.[ch]: handle the assembly preload event to try loading the
24174         assemblies using the paths we have in the current domain.
24175
24176         * assembly.[ch]: created an assembly preload hook that is called to try
24177         loading the assembly by other means that the ones provided here.
24178
24179         * domain.c: initialize the domain search path.
24180
24181         From now on, assemblies (TODO: except corlib and System) are loaded
24182         according to these rules when using mono_assembly_load ():
24183
24184                 1. It tries to load the assembly from the ApplicationBase
24185                 of the current domain appending .dll and .exe (TODO: have to
24186                 try loading from name/name.dll and name/name.exe).
24187
24188                 2. It tries the search path specified in PrivateBinPath for the
24189                 current domain (if any).
24190
24191                 3. Previous behavior.
24192
24193 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
24194
24195         * icall.c: implemented GetInterfaceMap() related icall.
24196         * domain.c, loader.h: load MethodInfo in mono_defaults.
24197
24198 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
24199
24200         * gc.c: disable the finalizer thread for now, untill all the issues
24201         with it are resolved.
24202
24203 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
24204
24205         * string-icalls.c: handle embedded nulls in string ctor when the
24206         length is specified.
24207
24208 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
24209
24210         * class.c: look for explicit interface implementation in parent
24211         classes, too.
24212
24213 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
24214
24215         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
24216
24217 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
24218
24219         * gc.c: protect handles with a critical section.
24220
24221 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24222
24223         * icall.c:
24224         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
24225         parameters. If no assembly specified, try getting the type from all
24226         the assemblies in the current domain, else, load the assembly and get
24227         the type from it.
24228
24229 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24230
24231         * marshal.c: applied patch from Aleksey Demakov that fixes
24232         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
24233
24234 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24235
24236         * icall.c: fixed get_location.
24237
24238 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
24239
24240         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
24241         declarations to make it work with older gcc. 
24242
24243         * loader.c (mono_get_method): set signature->pinvoke for native calls
24244
24245 2002-11-20  Dick Porter  <dick@ximian.com>
24246
24247         * threads.c (mono_thread_init): Set the main thread's handle
24248
24249 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24250
24251         * gc.c: allow compilation without GC support. Changed to match the
24252         mono coding style.
24253
24254 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24255
24256         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
24257
24258 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
24259
24260         * reflection.c: set a public key token on the core assemblies.
24261
24262 2002-11-18  Dick Porter  <dick@ximian.com>
24263
24264         * threads.c: Split out some thread initialisation so that other
24265         files can set the start callback function.
24266
24267         * gc.c: Run finalisers in a separate thread, to avoid stack
24268         overflow.  Fixes bug 31333.
24269
24270         * appdomain.c: Set up GC finalisation thread.
24271
24272         * reflection.c: 
24273         * object.c: 
24274         * domain.c: Use gc.h macros for GC_malloc
24275         
24276 2002-11-15  Dick Porter  <dick@ximian.com>
24277
24278         * threadpool.c: 
24279         * threads.c:
24280         * appdomain.c: Removed mono_runtime_init_with_attach(),
24281         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
24282         merging the extra parameter with the existing function.  Removed
24283         unneeded code in mono_thread_attach().
24284
24285 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
24286
24287         * image.c (mono_image_loaded_by_guid): a method to get loaded
24288         images by guid. 
24289         (load_metadata_ptrs): we store the guid as string.
24290
24291 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
24292
24293         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
24294
24295         * metadata.c (mono_guid_to_string): imported method form Zoltan
24296         Varga (slightly modified)
24297
24298         * assembly.c (mono_assembly_open): load precompiled code
24299
24300         * loader.h (MonoMethod): we store the method token for use in the
24301         aot compiler. 
24302
24303 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24304
24305         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
24306         the hook function called when an assembly is loaded.
24307         
24308         * domain.c: Modified file.
24309         (mono_domain_assembly_load): removed hash table insertion of assemblies.
24310
24311         Fixes bug #33196.
24312
24313 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
24314
24315         * reflection.c: Map PEFileKind to the value expected by the WinNT
24316         image loader. 
24317
24318 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24319
24320         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
24321         Read until the buffer is filled completely.
24322
24323 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24324
24325         * icall.c: implemented MonoType.InternalGetEvent ().
24326
24327 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24328
24329         * appdomain.c: implemented InitAppDomainSetup. Delayed
24330         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
24331         the entry_assembly.
24332
24333         * assembly.c: base_dir is now an absolute path ending with
24334         G_DIR_SEPARATOR.
24335
24336         * icall.c: modified get_location according to the above changes.
24337
24338         * object.c: init AppDomain.SetupInformation for the default domain after
24339         we have the entry assembly.
24340
24341         * domain.c: when unloading a domain, setup = NULL.
24342
24343 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
24344
24345         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
24346
24347 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
24348
24349         * object.h, object.c: introduced mono_object_get_virtual_method ()
24350         to lookup the method invoked on an object when a callvirt is done on
24351         a method.
24352         * icall.c: make MethodInfo::Invoke() always do a virtual call.
24353
24354 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24355
24356         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
24357         current domain when loaded an assembly and failed to load it.
24358
24359         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
24360
24361 2002-10-31  Dick Porter  <dick@ximian.com>
24362
24363         * icall.c: 
24364         * file-io.h: 
24365         * file-io.c: Return the error status in a parameter, as the
24366         GetLastError() value has long since been blown away if we try and
24367         look it up in a subsequent internal call invocation.  Delete the
24368         GetLastError() internal call, because it's useless.
24369
24370 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
24371
24372         * class.[ch]: added cast_class to fix bug 29517
24373
24374 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
24375
24376         * marshal.c: create valid IL code in the filter clause:
24377         the new JIT is less forgiving:-)
24378
24379 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24380
24381         * icall.c: removed get_property internal call.
24382
24383 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
24384
24385         * appdomain.h domain.c: Added an ID to appdomains.
24386         
24387         * threads.c threads.h icall.c: Implement icall
24388         Thread:GetDomainID(), and remove unused icall 
24389         CurrentThreadDomain_internal.
24390
24391 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24392
24393         * icall.c: Don't recurse through the base types in GetConstructor.
24394         Fixes bug #32063. 
24395
24396 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24397
24398         * mempool.h, mempool.c: added mono_mempool_empty() and
24399         mono_mempool_stats().
24400
24401 2002-10-23  Dick Porter  <dick@ximian.com>
24402
24403         * file-io.c: 
24404         * file-io.h: 
24405         * icall.c: Added MonoIO.GetFileType internal call
24406
24407 2002-10-17  Dick Porter  <dick@ximian.com>
24408
24409         * appdomain.c (mono_runtime_cleanup): Don't signal the async
24410         delegate semaphore before waiting for all threads to finish,
24411         because new threads can also call async delegates.  Fixes bug
24412         32004.
24413
24414         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
24415         of 3 seconds, in case another async job is queued.  (This part is
24416         needed because the bug fix reintroduced the 3s exit lag.)  This
24417         makes the mono_runtime_shutdown flag superfluous.
24418
24419 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24420
24421         * reflection.c: include ehader size in method section headers.
24422         Really check for suplicated modules entries.
24423
24424 2002-10-17  Martin Baulig  <martin@gnome.org>
24425
24426         * debug-mono-symfile.c: Added back support for locals.
24427
24428 2002-10-14  Martin Baulig  <martin@gnome.org>
24429
24430         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
24431         MONO_TYPE_VOID.
24432
24433 2002-10-14  Martin Baulig  <martin@gnome.org>
24434
24435         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
24436         mono_class_get() instead of looking in the class cache. 
24437
24438 2002-10-13  Martin Baulig  <martin@gnome.org>
24439
24440         * debug-mono-symfile.c: Set version number to 28, include the
24441         signature in method names.
24442
24443 2002-10-13  Martin Baulig  <martin@gnome.org>
24444
24445         * debug-mono-symfile.h: Set version number to 27.
24446
24447 2002-10-11  Martin Baulig  <martin@gnome.org>
24448
24449         * gc.c: Don't register/unregister NULL pointers as disappearing links.
24450
24451 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24452
24453         * metadata.c, metadata.h: added helper function to allocate signatures.
24454
24455 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24456
24457         * icall.c: added internal call to get the location of machine.config.
24458
24459 2002-10-08  Martin Baulig  <martin@gnome.org>
24460
24461         * debug-mono-symfile.c: Ignore classes with a pending init for the
24462         moment.
24463
24464 2002-10-03  Dick Porter  <dick@ximian.com>
24465
24466         * threads.c: Freebsd pthread_t is a pointer
24467
24468 2002-10-03  Dick Porter  <dick@ximian.com>
24469
24470         * socket-io.c: Implemented GetHostName_internal
24471
24472 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24473
24474         * mono-config.c:
24475         (mono_config_parse_file): don't leak the text.
24476
24477 2002-10-02  Martin Baulig  <martin@gnome.org>
24478
24479         * debug-mono-symfile.c: Added support for methods.
24480
24481 2002-10-01  Martin Baulig  <martin@gnome.org>
24482
24483         * debug-mono-symfile.c: Don't emit methods and line numbers for
24484         the dynamic symbol file, just write the type table.  We can easily
24485         have an external helper program which creates a symbol file for an
24486         IL file.        
24487
24488 2002-10-01  Dick Porter  <dick@ximian.com>
24489
24490         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
24491         Only add the handle to the cleanup array when we're about to
24492         launch the thread.  Bug 31425 deadlocked when the test was run on
24493         mono under w32.
24494
24495 2002-10-01  Martin Baulig  <martin@gnome.org>
24496
24497         * debug-mono-symfile.c: Added support for properties.
24498
24499 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24500
24501         * reflection.c: unaligned store fix from Mark Crichton
24502         <crichton@gimp.org>.
24503
24504 2002-09-27  Martin Baulig  <martin@gnome.org>
24505
24506         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
24507         New interncall.
24508
24509 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
24510
24511         * assembly.h, assembly.c: use a sane API to hook into the assembly
24512         loading process instead of a useless special-purpouse hack
24513         (ngen needs a hook, too, for example).
24514
24515 2002-09-27  Dick Porter  <dick@ximian.com>
24516
24517         * threads.c (mono_thread_init): Call GetCurrentProcess() so
24518         io-layer can set up some process handle info.  Not needed on w32,
24519         but doesn't hurt either.
24520
24521         * process.c: Pass the program name in the second parameter to
24522         CreateProcess, so the path is searched.  Include the working
24523         directory. Implemented process name, process enumeration, and some
24524         process detail internal calls.
24525         
24526         * icall.c: Added internal calls for process lookup, and some
24527         process details
24528
24529 2002-09-26  Martin Baulig  <martin@gnome.org>
24530
24531         * assembly.c (mono_install_open_assembly_hook): New global
24532         function to install a function to be invoked each time a new
24533         assembly is loaded.
24534         (mono_assembly_open): Run this callback function if set.
24535
24536         * debug-mono-symfile.c: Put back line numbers for the dynamic
24537         symbol file and also record the .il file as source file.  This
24538         allows us to install the temporary symbol file as `file.dbg' just
24539         like a compiler-generated one.
24540
24541 2002-09-26  Nick Zigarovich <nick@chemlab.org>
24542
24543         * Corrected typo in gc.c (BOHEM vs BOEHM).
24544
24545 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24546
24547         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
24548         GetProperties. Also avoid calling g_slist_length in GetProperties and
24549         GetMethods.
24550
24551 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24552
24553         * reflection.c: avoid unaligned stores (bug spotted by
24554         Mark Crichton  <crichton@gimp.org>).
24555
24556 2002-09-25  Martin Baulig  <martin@gnome.org>
24557
24558         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
24559         instead of guint64 for addresses and added prologue/epilogue info.
24560
24561 2002-09-25  Martin Baulig  <martin@gnome.org>
24562
24563         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
24564         store line number info.  For the dynamic symbol file, we only need
24565         to provide the JIT generated dynamic line number info for the dynamic
24566         symbol file.
24567
24568 2002-09-25  Martin Baulig  <martin@gnome.org>
24569
24570         * debug-mono-symfile.h: Incremented version number.
24571
24572 2002-09-24  Martin Baulig  <martin@gnome.org>
24573
24574         * class.c (mono_debugger_class_init_func): New global function
24575         pointer variable.
24576         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
24577         call it.
24578
24579         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
24580         function.  This is called via the mono_debugger_class_init_func
24581         hook to add all types to the dynamic type table.
24582         (ves_icall_MonoDebugger_GetType): New interncall to get a class
24583         from its metadata token.
24584
24585         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
24586         New interncall for the debugger.
24587
24588 2002-09-24  Nick Drochak <ndrochak@gol.com>
24589
24590         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
24591         before using it in case it is null.
24592         
24593 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24594
24595         * metadata.c: allow custom modifiers in local var signatures
24596         (bug spotted by Zoltan Varga).
24597
24598 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24599
24600         * class.c: deal with the <Module> class that may have a NULL vtable.
24601         Eliminate warnings.
24602
24603 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24604
24605         * image.c, image.h: more strong name helpers.
24606         * monosn.c: more work: convert pem keys to cryptoapi format.
24607
24608 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24609
24610         * string-icalls.c: speedup IndexOf.
24611
24612 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24613
24614         * icall.c: updates from Zoltan.2.Varga@nokia.com.
24615
24616 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
24617
24618         * icall.c: cleanup: use mono_object_domain ().
24619
24620 2002-09-23  Martin Baulig  <martin@gnome.org>
24621
24622         * debug-mono-symfile.c: Improved type support.
24623
24624 2002-09-22  Martin Baulig  <martin@gnome.org>
24625
24626         * debug-mono-symfile.c: Added support for reference types and strings.
24627
24628 2002-09-22  Martin Baulig  <martin@gnome.org>
24629
24630         * debug-mono-symfile.c: Started to work on the type table.
24631
24632 2002-09-21  Martin Baulig  <martin@gnome.org>
24633
24634         * debug-mono-symfile.c: Largely reworked the symbol table format.
24635         The symbol table is now incrementally updated each time a new
24636         method is added.  We're now also using our own magic and version
24637         so that you don't need to recompile all your classes if the
24638         dynamic table changes.
24639         (mono_debug_update_mono_symbol_file): Removed.
24640         (mono_debug_symfile_add_method): New function to add a method.
24641
24642 2002-09-21  Martin Baulig  <martin@gnome.org>
24643
24644         * icall.c
24645         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
24646         New interncall.
24647
24648         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
24649         New interncall to get a method from its metadata token.
24650
24651 2002-09-21  Martin Baulig  <martin@gnome.org>
24652
24653         * debug-mono-symfile.c: Create type table.
24654
24655 2002-09-20  Martin Baulig  <martin@gnome.org>
24656
24657         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
24658
24659 2002-09-20  Martin Baulig  <martin@gnome.org>
24660
24661         * debug-mono-symfile.c: Provide information about params and locals.
24662
24663 2002-09-20  Martin Baulig  <martin@gnome.org>
24664
24665         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
24666         New interncall.
24667
24668         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
24669         interncall to get a method from its metadata token.
24670
24671 2002-09-20  Martin Baulig  <martin@gnome.org>
24672
24673         * debug-mono-symfile.c: Added a few checks for method->header
24674         being non-NULL.  This should never happen, but for the moment
24675         let's use a g_warning() rather than a g_assert().
24676
24677 2002-09-19  Mark Crichton  <crichton@gimp.org>
24678
24679         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
24680         even if support for it isn't present.  Added an #ifdef to fix this.
24681
24682         * socket-io.c: Added checks back for Solaris support.
24683
24684 2002-09-19  Martin Baulig  <martin@gnome.org>
24685
24686         * debug-mono-symfile.c (read_string, write_string): Reflect latest
24687         changes in the symbol file format.
24688
24689 2002-09-18  Martin Baulig  <martin@gnome.org>
24690
24691         * debug-mono-symfile.c: Set version number to 21.
24692
24693 2002-09-18  Dick Porter  <dick@ximian.com>
24694
24695         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
24696         on netbsd.  Fixes bug 30051.
24697
24698 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24699
24700         * reflection.c:
24701         (set_version_from_string): little fix.
24702
24703 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24704
24705         * monosn.c, Makefile.am: added strong name utility.
24706         * reflection.h, reflection.c: implemented delayed signing,
24707         locale, version and hash id assembly attributes.
24708
24709 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24710
24711         * loader.c, metadata.c: load param attributes in signatures.
24712
24713 2002-09-16  Martin Baulig  <martin@gnome.org>
24714
24715         * debug-mono-symfile.c: Added string table with all method names.
24716
24717 2002-09-14  Martin Baulig  <martin@gnome.org>
24718
24719         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
24720         fast method lookup.
24721
24722 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24723
24724         * reflection.c: record the public key token of referenced assemblies.
24725
24726 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24727
24728         * image.c, image.h: added functions to get the strong name and the
24729         public key of an assembly.
24730         * pedump.c: use them.
24731
24732 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
24733
24734         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
24735
24736 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
24737
24738         * marshal.c (mono_marshal_get_managed_wrapper): Added
24739         MONO_TYPE_BOOLEAN 
24740
24741 2002-09-11  Martin Baulig  <martin@gnome.org>
24742
24743         * gc.c: Call GC_unregister_disappearing_link() on all links when
24744         finalizing them, this is necessary to aviod a crash in boehm's
24745         finalize handler.
24746
24747 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24748
24749         * gc.c: handle GetTarget for finalized objects spotted and fixed by
24750         nick@chemlab.org.
24751
24752 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
24753
24754         * icall.c: implemented MonoType::Module.
24755         * reflection.c, reflection.h: mono_module_get_object () from
24756         Tomi Pakarinen <tomi.pakarinen@welho.com>.
24757
24758 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24759
24760         * icall.c: ignore overridden methods in GetMethods ().
24761         Fix for FieldInfo::SetValue().
24762         * object.c: handle float/double in runtime invoke.
24763
24764 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24765
24766         * object.c: allow a constructor to be called again on an object.
24767
24768 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24769
24770         * class.h, class.c: move field layout code to it's own function and
24771         export it. Get an interface id earlier. Move fields in MonoClass
24772         so they are more cache friendly and align the bitfields.
24773         * loader.c: temporary handle get_param_names() for a runtime method.
24774         * reflection.c, reflection.h: more code to handle runtime creation of
24775         types.
24776
24777 2002-09-09  Martin Baulig  <martin@gnome.org>
24778
24779         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
24780         signature with the pinvoke field being set for the actual call.
24781
24782 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24783
24784         * icall.c: removed some unused icalls. Start of map of glib charsets
24785         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
24786
24787 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24788
24789         * debug-helpers.c: break infinite loop (found and fixed by
24790         Holger Arnold <harnold@gmx.de>).
24791
24792 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24793
24794         * icall.c: target may be null in create_delegate.
24795
24796 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24797
24798         * marshal.c: handle a boolean return type.
24799
24800 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24801
24802         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
24803
24804 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24805
24806         * gc.c: fix weakreferences.
24807
24808 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
24809
24810         * icall.c: added icall to get default codepage.
24811
24812 2002-09-03  Dick Porter  <dick@ximian.com>
24813
24814         * threads.h: 
24815         * threads.c: Use MonoThread instead of MonoObject where
24816         apropriate.
24817
24818         Store running thread objects in a hash table, so that we have all
24819         the info to hand when waiting for them to finish
24820         (means we don't need OpenThread() any more, so mingw builds should
24821         be fully functional again.)
24822
24823         * verify.c:
24824         * object.h: Added thread ID to MonoThread
24825
24826 2002-09-03  Martin Baulig  <martin@gnome.org>
24827
24828         * icall.c (System.Reflection.Assembly::get_location): New interncall.
24829
24830 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24831
24832         * icall.c: fixed leak in get_temp_path. Thanks lupus.
24833
24834 2002-09-03  Martin Baulig  <martin@gnome.org>
24835
24836         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
24837         argument to store the end address of the disassembled instruction.
24838
24839         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
24840         here from debug-symfile.h.
24841         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
24842         JIT into this struct.
24843         (MonoSymbolFile): Added `char *image_file' field.
24844         (MonoDebugGetMethodFunc): Removed.
24845         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
24846         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
24847         (mono_debug_find_method): New method.
24848
24849         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
24850         create a full symbol file.
24851         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
24852         and static symbol files.
24853         (mono_debug_find_method): The symbol file keeps an internal method hash,
24854         call this to get a MonoDebugMethodInfo from a MonoMethod.
24855
24856         * debug-symfile.[ch]: Removed.
24857
24858 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
24859
24860         * image.c (do_mono_image_open): Remove linker version check.
24861
24862 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
24863
24864         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
24865         wrappers for instance methods.
24866         
24867 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24868
24869         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
24870
24871 2002-08-28  Dick Porter  <dick@ximian.com>
24872
24873         * Makefile.am: Export HOST_CC for w32 builds
24874
24875 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24876
24877         * file-io.c process.c: MonoString are null terminated, no
24878         need for mono_string_to_utf16() anymore.
24879
24880 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24881
24882         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
24883
24884 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
24885
24886         * icall.c, reflection.h: speedup System.MonoType.
24887
24888 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24889
24890         * reflection.c: allow null as the value of a string argument in
24891         custom attributes constructors.
24892
24893 2002-08-27  Martin Baulig  <martin@gnome.org>
24894
24895         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
24896         `trampoline_address' field.
24897
24898 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
24899
24900         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
24901         check (fixes bug #29486) 
24902
24903 2002-08-27  Martin Baulig  <martin@gnome.org>
24904
24905         * debug-mono-symfile.c: Changed the file format in a way that allows us
24906         open it read-only and to use a specially malloced area for all the
24907         dynamic data.  We can now also generate a symbol file on-the-fly if we're
24908         debugging IL code and there is no MCS generated symbol file for it.
24909
24910 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24911
24912         * object.c: added a define for a good string and array
24913         creation speedup (not enabled by default because we need to deal with
24914         the synch stuff).
24915
24916 2002-08-26  Martin Baulig  <martin@gnome.org>
24917
24918         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
24919         function to create a dynamic symbol file.  This is used by the
24920         debugger to create a symbol file for IL code on-the-fly.
24921
24922 2002-08-26  Martin Baulig  <martin@gnome.org>
24923
24924         * loader.c (mono_lookup_pinvoke_call): Include the error message
24925         from g_module_error() in the error message.
24926
24927 2002-08-24  Martin Baulig  <martin@gnome.org>
24928
24929         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
24930         function to update the symbol file.  The symbol file is mmap()ed
24931         writable, but private.  This allows us to install the symbol file
24932         together with the assembly.
24933
24934 2002-08-24  Martin Baulig  <martin@gnome.org>
24935
24936         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
24937         but they can read the new symbol file format which mcs is now creating.
24938
24939         * debug-symfile.c (mono_debug_find_source_location): Moved to
24940         debug-mono-symfile.c; this is now operating on the new symbol file.
24941
24942 2002-08-23  Martin Baulig  <martin@gnome.org>
24943
24944         * debug-helpers.c (mono_method_desc_from_method): New function to get
24945         a MonoMethodDesc from a MonoMethod.
24946
24947 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24948
24949         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
24950         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
24951
24952 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
24953
24954         * string-icalls.[ch]: make helper methods static.
24955
24956 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24957
24958         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
24959         types to it and to SetValueInternal.
24960
24961         * object.c: Moved handle_enum label to its proper place. This was the
24962         f... bug! ;-)
24963
24964         This time i compiled mcs and gtk-sharp and they both work.
24965
24966 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24967
24968         * icall.c: reverted partially my previous patch until 
24969         object.c:set_value handles enums correcly.
24970
24971 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24972
24973         * icall.c:
24974         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
24975         (ves_icall_System_Environment_get_MachineName): removed warning when
24976         compiling under cygwin.
24977
24978 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24979
24980         * object.c: fixed field_get_value() for reference types.
24981
24982 2002-08-22  Dick Porter  <dick@ximian.com>
24983
24984         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
24985         Don't free a buffer while it's still needed.  Patch from Jonathan
24986         Liger <Jonathan.liger@wanadoo.fr>
24987
24988 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
24989
24990         * icall.c (ves_icall_System_Environment_get_Platform): Add new
24991         internal call.
24992
24993 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
24994
24995         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
24996         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
24997
24998         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
24999         we call unmanaged code which throws exceptions.
25000
25001 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25002
25003         * appdomain.h: added per-domain entry_assembly.
25004         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
25005         arguments.
25006         * icall.c: Assembly::GetEntryAssembly icall.
25007         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
25008         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
25009
25010 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25011
25012         * appdomain.h, gc.c: added mono_domain_finalize ().
25013
25014 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25015
25016         * object.c:
25017         (mono_print_unhandled_exception): changed g_warning by g_printerr
25018         because g_log has a 1024 characters limit (yeah, i got a big stack
25019         trace). Don't print exception name, that should be in ToString 
25020         returned string.
25021
25022 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25023
25024         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
25025         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
25026
25027 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25028
25029         * object.c:
25030         (mono_print_unhandled_exception): after previous commit, i realized
25031         that MS calls ToString on the exception. I changed this function to
25032         do that. This way we get stack_trace for free.
25033
25034 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25035
25036         * object.c:
25037         (mono_print_unhandled_exception): invoke Message property instead of
25038         getting 'message' field from Exception. Don't allocate memory for
25039         'trace' and 'message' if not needed.
25040
25041 2002-08-18  Dick Porter  <dick@ximian.com>
25042
25043         * unicode.c: Fix asserts to match Encoder.cs checks
25044
25045 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25046
25047         * marshal.c: fix unaligned store issue and a few wrong
25048         opcode argument types.
25049
25050 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25051
25052         * icall.c: added GetUninitializedObjectInternal internal call.
25053
25054 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
25055
25056         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
25057         to the right domain.
25058
25059 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
25060
25061         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
25062
25063         * class.c (class_compute_field_layout): set blittable to false for Strings
25064
25065         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
25066
25067 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25068
25069         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
25070         first chunk of code to create types at runtime. Code to
25071         handle ReflectedType/DeclaringType. Make reflection handles
25072         domain specific.
25073
25074 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
25075
25076         * class.c: set correct name in arrays.
25077
25078 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
25079
25080         * appdomain.c (mono_domain_transfer_object): make it work with
25081         valuetypes. bug fixes.
25082
25083 2002-08-12  Dick Porter  <dick@ximian.com>
25084
25085         * object.h: Rename some parameters to avoid c++ keywords (Patch
25086         from Joseph Wenninger <kde@jowenn.at>)
25087
25088 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
25089
25090         * icall.c: added icall to implement Assembly.GetFile*.
25091
25092 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25093
25094         * reflection.h, reflection.c: code to embed managed resources.
25095
25096 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25097
25098         * class.c: move all the type size stuff into
25099         class_compute_field_layout().
25100
25101 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25102
25103         * class.c: ensure enums have always the correct instance size.
25104         * unicode.c: remove wrong assert.
25105
25106 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25107
25108         * assembly.c: fix mem corruption issue.
25109         * image.h, image.c: added mono_image_get_resource () to access
25110         managed resources.
25111         * icall.c: implemented Assembly.EntryPoint property and some
25112         Managed Resources related internalcalls.
25113
25114
25115 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25116
25117         * image.c, image.h: impemented mono_image_get_entry_point ().
25118         * appdomain.c: use mono_image_get_entry_point.
25119
25120 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25121
25122         * reflection.c: support the object type argument when loading
25123         custom attributes.
25124
25125 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
25126
25127         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
25128         String as return type.
25129
25130 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
25131
25132         * reflection.c: fix encoding of named args for custom attrs to match
25133         the ms implementation. Read them back when instantiating custom
25134         attributes.
25135
25136 2002-08-02  Radek Doulik  <rodo@ximian.com>
25137
25138         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
25139         by Dietmar as quick fix
25140         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
25141         16 as stack size, used on more places as quick fix before Dietmar
25142         will fix it properly
25143
25144 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25145
25146         * object.h, object.c: added accessors for fields and properties.
25147
25148 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
25149
25150         * class.c, class.h: made mono_class_get_field_from_name ()
25151         loop on parent types.
25152         Added mono_class_get_property_from_name ().
25153
25154 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25155
25156         * class.c, class.h: move the code to setup the type vtable in its own
25157         function so that it can be reused also for types created at runtime.
25158         Eliminate the "class" identifier from the header file.
25159         * reflection.c: setup the vtable for enums so that we can create
25160         objects for use in SetConstant ().
25161
25162 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
25163
25164         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
25165         instead of the delegate itself as this pointer (bug #28383)
25166
25167 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
25168
25169         * marshal.c (mono_marshal_get_managed_wrapper): added return type
25170         conversions.
25171
25172 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25173
25174         * loader.c: don't set the pinvoke bit on icalls.
25175
25176 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
25177
25178         * debug-helpers.c (mono_method_full_name): only print a number to
25179         indicate wrapper type (so that the output is more readable in traces).
25180
25181 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
25182
25183         * class.c (mono_class_init): include method override patch from Paolo
25184
25185 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
25186
25187         * icall.c: fixed GetTypeCode().
25188
25189 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
25190
25191         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
25192         use real delegate invoke function to make it work with multicast
25193         delegates (fix bug# 28291).
25194
25195 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25196
25197         * object.c: load constant strings.
25198
25199 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25200
25201         * reflection.c: no magic numbers.
25202         * tabledefs.h: security action enum.
25203
25204 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25205
25206         * assembly.c: fix possible memory corruption.
25207
25208 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25209
25210         * reflection.h, reflection.c: added support for linking resources.
25211         * verify.c: check we have an updated corlib.
25212
25213 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
25214
25215         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
25216         string arrays.
25217         (mono_marshal_string_array): null terminate unmanaged string arrays.
25218         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
25219
25220 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25221
25222         * icall.c: Type.GetType () can now return also types from the
25223         calling assembly.
25224
25225 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25226
25227         * loader.h, loader.c: stack walking support.
25228         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
25229         GetCallingAssembly.
25230
25231 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
25232
25233         * marshal.c: added optimisations for blittable types 
25234
25235         * class.c (mono_array_class_get): do not set blittable attribute on arrays
25236         (mono_class_setup_mono_type): set blittable attribute for single
25237         and double.
25238
25239         * marshal.c (mono_string_utf8_to_builder): impl.
25240         (mono_string_builder_to_utf8): impl.
25241         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
25242
25243 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
25244
25245         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
25246         (mono_marshal_get_managed_wrapper): impl. byref types
25247
25248 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25249
25250         * icall.c:
25251         (search_method): don't display debug message. 
25252
25253 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25254
25255         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
25256
25257 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25258
25259         * appdomain.c: set the missing filename when throwing exception.
25260
25261 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25262
25263         * metadata.c (mono_type_size): code cleanup
25264         (mono_type_stack_size): removed some test code
25265
25266 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
25267
25268         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
25269         mono_get_exception_file_not_found now.
25270
25271         * exception.c (mono_exception_from_name_two_strings): New version
25272         that will call a constructor with two string arguments. 
25273         (mono_get_exception_file_not_found): New helper routine, used to
25274         report file-not-found errors.
25275
25276 2002-07-20  Dick Porter  <dick@ximian.com>
25277
25278         * process.h:
25279         * process.c: Pass file handles to CreateProcess
25280         
25281         * icall.c:
25282         * file-io.h:
25283         * file-io.c: Implemented CreatePipe
25284
25285 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25286
25287         * metadata.c (mono_get_param_info): set alignment for value types
25288
25289 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25290
25291         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
25292         Constify mono_domain_assembly_open().
25293         * loader.c: handle null namespace in icalls.
25294
25295 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25296
25297         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
25298         (emit_str_to_ptr_conv): marshal object as structs
25299
25300         * metadata.c (mono_type_to_unmanaged): marshal object as structs
25301
25302         * marshal.c (mono_marshal_get_runtime_invoke): support value types
25303
25304 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
25305
25306         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
25307         (mono_marshal_get_native_wrapper): we an now return value types
25308
25309 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25310
25311         * verify.c: more checks implemented.
25312
25313 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
25314
25315         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
25316         (fix bug #27695)
25317         (mono_marshal_get_native_wrapper): allow byref arguments
25318         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
25319         impl. PtrToStringXXX methods
25320         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
25321         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
25322         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
25323         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
25324         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
25325
25326 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25327
25328         * reflection.c: fix buglet in parsing an assembly name.
25329
25330 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25331
25332         * marshal.c (emit_ptr_to_str_conv): first impl.
25333
25334 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25335
25336         * object.c, class.h: cache the vtable in the class as suggested by
25337         vargaz@freemail.hu (Zoltan Varga).
25338
25339 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25340
25341         * class.h, loader.c: added mono_field_from_token().
25342         * verify.c: first cut of type checking code.
25343
25344 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25345
25346         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
25347
25348 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
25349
25350         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
25351         (fix bug #27782)
25352         (mono_marshal_get_remoting_invoke): impl.
25353         (mono_delegate_begin_invoke): impl.
25354         (mono_mb_emit_save_args): impl.
25355         (mono_delegate_end_invoke): impl.
25356         (mono_marshal_get_delegate_begin_invoke):
25357         (mono_marshal_get_delegate_end_invoke):
25358         (mono_marshal_get_delegate_invoke): generate a special name for
25359         those methods (including the signature) and associate them whith
25360         the delegate class. 
25361
25362 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
25363
25364         * reflection.[ch]: 
25365         (mono_reflection_type_from_name): now it has a MonoImage parameter
25366         which is used as the default image to search the type in. If the image
25367         is NULL or getting the type from it fails, it defaults to corlib.
25368
25369         * icall.c: changed 1 call to mono_reflection_type_from_name to match
25370         new parameter.
25371
25372 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25373
25374         * reflection.c: update the parameter table index.
25375
25376 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25377
25378         * domain.c: don't include the mark byte in the string hash.
25379
25380 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25381
25382         * icall.cs: icall for Type.GetTypeCode ().
25383         * verify: a couple of fixes and disabled local initialization checks.
25384
25385 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
25386
25387         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
25388
25389         * debug-helpers.c (mono_method_full_name): print the type of the
25390         runtime wrapper
25391
25392         * metadata.c (mono_signature_hash): a hash function for signatures
25393         (mono_signature_hash): better hash algorithm
25394
25395         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
25396
25397         * debug-helpers.c (mono_method_full_name): this can now generate
25398         method names with signatures
25399
25400         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
25401         method dont have this pointers.
25402
25403 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25404
25405         * reflection.c: fixup typebuilder tokens.
25406         * image.c: fix buglet.
25407         * marshal.h: remove whitespace.
25408         * metadata.h, metadata.c: reinstate code that was removed.
25409         * verify.c: handle catch directives and fix another couple of bugs.
25410
25411 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
25412
25413         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
25414         (mono_marshal_get_native_wrapper): make it comp. with the old code
25415         (mono_marshal_get_native_wrapper): support boolean
25416         (mono_marshal_get_managed_wrapper): support more types
25417
25418 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
25419
25420         * class.c (class_compute_field_layout): compute class->blittable attribute.
25421
25422 2002-07-09  Dick Porter  <dick@ximian.com>
25423
25424         * threads.c: Make the thread cleaning up cope with threads that
25425         call ExitThread()
25426
25427 2002-07-08  Radek Doulik  <rodo@ximian.com>
25428
25429         * reflection.c (method_encode_code): use non-translated values to
25430         compute finally_start, this fixes exception handling on ppc, yay!
25431
25432         * decimal.h (struct signscale): fix endianess
25433
25434 2002-07-07  Radek Doulik  <rodo@ximian.com>
25435
25436         * reflection.c: swap box_val and not val
25437
25438 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25439
25440         * reflection.c, reflection.h: handle full assembly info in type name.
25441         Handle Type arguments when loading custom attributes.
25442         * icall.c: updated to use new mono_reflection_type_from_name () method.
25443
25444 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25445
25446         * loader.c:
25447         (method_from_memberref): also print assembly name when method not found.
25448
25449 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25450
25451         * icall.c:
25452         (ves_icall_TypeGetProperties): fixed bug #27473. 
25453
25454 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25455
25456         * reflection.c: display image name and token when cannot find the
25457         .ctor for an attribute.
25458
25459 2002-07-05  Martin Baulig  <martin@gnome.org>
25460
25461         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25462
25463 2002-07-04  Dick Porter  <dick@ximian.com>
25464
25465         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
25466         compile on mingw.  This will cause mingw builds to not wait for
25467         subthreads to terminate after the main thread does.  I've lodged a
25468         bug with the mingw developers for them to wrap OpenThread().
25469
25470 2002-07-03  Dick Porter  <dick@ximian.com>
25471
25472         * threads.c: Store thread IDs instead of handles, because
25473         GetCurrentThread() returns a pseudohandle and therefore stores
25474         useless values.  mono_thread_cleanup() continues checking the
25475         array of threads until it is empty, to cope with subthreads
25476         spawning new threads after the main thread has finished.
25477
25478         * profiler.h:
25479         * profiler.c:
25480         * profiler-private.h: Pass the thread ID to thread profiler
25481         functions, instead of a handle
25482
25483 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25484
25485         * verify.c: fixes to make it more usable.
25486         * pedump.c: added --verify code to verify IL code in an assembly.
25487
25488 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25489
25490         * reflection.c: turn errors into warnings to allow compiling corlib.
25491
25492 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
25493
25494         * reflection.c: add special cases to compile corlib.
25495
25496 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25497
25498         * reflection.c: handle properties with only a set method.
25499
25500 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25501
25502         * opcodes.h: add enum with opcodes in opval order.
25503
25504 2002-07-01  Dick Porter  <dick@ximian.com>
25505         
25506         * object.h:
25507         * object.c (mono_runtime_run_main): Removed unneeded argument
25508
25509 2002-06-28  Martin Baulig  <martin@gnome.org>
25510
25511         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25512
25513 2002-06-27  Dick Porter  <dick@ximian.com>
25514
25515         * threads.c: Store the handle in both the parent thread and in the
25516         subthread, to minimise the time between starting a new thread and
25517         storing its ID.
25518
25519 2002-06-26  Dick Porter  <dick@ximian.com>
25520
25521         * appdomain.c (mono_runtime_cleanup): Close the socket library
25522         after all the threads have finished, not before
25523
25524 2002-06-26  Martin Baulig  <martin@gnome.org>
25525
25526         * debug-symfile.c (mono_debug_find_source_location): Added
25527         `guint32 *line_number' argument.  If it's not NULL, store the line number
25528         there and return the file name without the line number.
25529
25530 2002-06-25  Dick Porter  <dick@ximian.com>
25531
25532         * icall.c:
25533         * process.h:
25534         * process.c: Process forking and other support functions
25535
25536 2002-06-25  Dick Porter  <dick@ximian.com>
25537
25538         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
25539         things dont happen when the image is closed.
25540         (mono_image_lookup_resource): Walk the resource section looking
25541         for a particular entry
25542
25543         * cil-coff.h: PE resource section decoding
25544
25545 2002-06-25  Dick Porter  <dick@ximian.com>
25546         
25547         * assembly.h:
25548         * assembly.c: 
25549         (mono_assembly_foreach): Accessor functions to walk the list of
25550         loaded assemblies
25551         (mono_assembly_set_main):
25552         (mono_assembly_get_main): Process methods need to know which
25553         assembly is the "main" one
25554
25555         * object.c (mono_runtime_run_main): Record the main assembly
25556
25557         * debug-helpers.c: Fix typo
25558
25559 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
25560
25561         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
25562         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
25563
25564 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25565
25566         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
25567
25568 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
25569
25570         * image.c (do_mono_image_open): Initialize reference count,
25571         otherwise we leak the MonoImage.
25572
25573 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25574
25575         * reflection.c: small tweak to handle self-hosting.
25576
25577 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25578
25579         * reflection.c: fix type name parse code.
25580
25581 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25582
25583         * reflection.c: break out of the loop.
25584         * image.c: special case corlib.
25585
25586 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25587
25588         * reflection.c: add all the custom attrs at the end to ensure the
25589         ctors have been properly initialized when the attributes are defined
25590         in the current assembly.
25591
25592 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25593
25594         * reflection.c: handle correctly multiple-nested types.
25595
25596 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
25597
25598         * row-indexes.h: fix typos.
25599         * reflection.c: adjust for typos and fix method_def_or_ref
25600         encoding in MethodImpl table.
25601
25602 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25603
25604         * reflection.c: fix entry point patching (thanks Serge!).
25605
25606 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
25607
25608         * verify.c: add check for System.Exception
25609
25610 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25611
25612         * image.c, class.c: minifix for code just c&p'ed.
25613         * reflection.c: warning fix.
25614         * object.h, loader.h, domain.c: load also StringBuilder.
25615
25616 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25617
25618         * marshal.h, marshal.c: some support code to handle complex marshaling.
25619
25620 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25621
25622         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
25623         Better signatures with vtable error dump.
25624
25625 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
25626
25627         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
25628
25629 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
25630
25631         * icall.c (ves_icall_Type_GetField): impl.
25632
25633 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25634
25635         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
25636         to retrieve a marshal description blob for a field or param.
25637
25638 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25639
25640         * reflection.h, reflection.c: change order of nested type emission
25641         to avoid table corruption. The NestedTypes table is sorted.
25642         * icall.c: change order of GetConstructor results to workaround mcs bug.
25643
25644 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25645
25646         * reflection.h, reflection.c: handle field and param marshal
25647         information.
25648
25649 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25650
25651         * icall.c, marshal.c marshal.h: more Marshal class implementation.
25652
25653 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25654
25655         * reflection.c: fix call convention.
25656
25657 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25658
25659         * reflection.h, reflection.c: mono_image_get_memberref_token()
25660         takes a type instead of a class, now. Added
25661         mono_image_get_array_token() to create tokens for the special
25662         multi-dim array methods.
25663
25664 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25665
25666         * assembly.c: handle modules (no assembly table). Split
25667         loading references in its own function.
25668         * class.c: handle moduleref resolution scope.
25669         * image.c, image.h: cache module name in image.
25670
25671 2002-06-07  Martin Baulig  <martin@gnome.org>
25672
25673         * reflection.c (mono_image_get_type_info): Only add a class layout entry
25674         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
25675
25676 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25677
25678         * icall.c: more signature fixes that used uint instead of int.
25679
25680 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25681
25682         * reflection.c: fixed signature of field refs.
25683
25684 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25685
25686         * class.c, reflection.c: handle typerefs of nested types
25687         (both on read and when writing files).
25688
25689 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
25690
25691         * icall.c: fix method signatures that tried to workaround the previous
25692         typo, d'oh!
25693
25694 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25695
25696         * debug-helpers.c: fix typo.
25697
25698 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25699
25700         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
25701         rewrote the PE/COFF writing code (our programs are understood by the
25702         ms runtime, now).
25703
25704 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25705
25706         * gc.c, gc.h, icall.c: weakreference support.
25707
25708 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25709
25710         * Makefile.am, mono-config.c: use $(sysconfdir).
25711
25712 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25713
25714         * icall.c: changed default precision of Double.ToString() to 15.
25715         Fixed memory leak. Unified with Single.ToString.
25716
25717 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
25718
25719         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
25720
25721 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25722
25723         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
25724         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
25725         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
25726         and myself.
25727
25728 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25729
25730         * debug-symfile.c, sysmath.c: yet more compilation fixes.
25731
25732 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25733
25734         * reflection.c, socket-io.c: more compilation fixes.
25735
25736 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25737
25738         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
25739         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
25740         unicode.c: warning and compiler compatibility fixes.
25741
25742 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25743
25744         * class.h, metadata.c: fixed warnings/compilation errors.
25745
25746 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25747
25748         * Makefile.am, mono-config.c, mono-config.h: configuration file
25749         support routines.
25750         * loader.c, loader.h: make Dll mapping configurable at runtime in the
25751         config file. Export methods to insert and lookup mappings.
25752
25753 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25754
25755         * reflection.c: handle types and boxed objects in custom attr
25756         constructors.
25757
25758 2002-05-30  Martin Baulig  <martin@gnome.org>
25759
25760         * debug-symfile.c
25761         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
25762
25763 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
25764
25765         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
25766         to lookup the implmap row for a P/Invoke method.
25767         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
25768         P/Invoke method from the runtime on an as needed basis.
25769
25770 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
25771
25772         * metadata.c (mono_metadata_parse_signature): impl.
25773
25774 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25775
25776         * class.c: handle .pack directive.
25777
25778 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25779
25780         * object.c: initialize static fields with RVA data.
25781
25782 2002-05-25  Martin Baulig  <martin@gnome.org>
25783
25784         * debug-symfile.c
25785         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
25786
25787 2002-05-24  Martin Baulig  <martin@gnome.org>
25788
25789         * debug-symfile.c
25790         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
25791         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
25792         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
25793
25794 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25795
25796         * object.c: special case string ctros in invoke.
25797         * gc.c: silly whitespace changes.
25798
25799 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
25800
25801         * threadpool.[ch]: impl. a threadpool that can
25802         be used by mint and mono.
25803
25804 2002-05-22  Martin Baulig  <martin@gnome.org>
25805
25806         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
25807         The first argument is now a `MonoReflectionModuleBuilder *', the return
25808         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
25809         `methods' field to get the method builder.  The `token' argument is the
25810         unfixed token.
25811
25812         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
25813         invalid characters instead of g_assert_not_reached()ing.  This seems
25814         to be the behaviour of mscorlib.
25815
25816 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
25817
25818         * object.c (mono_runtime_invoke_array): applied patch from Rachel
25819         Hestilow to fix bug #25104
25820
25821 2002-05-21  Martin Baulig  <martin@gnome.org>
25822
25823         * debug-symfile.c (mono_debug_find_source_location): New function.
25824         Looks up an IL offset in the line number table and returns the source
25825         location as a string.
25826
25827 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25828
25829         * icall.c:
25830         (mono_double_ToStringImpl): changed %f by %g until we have something
25831         better.
25832
25833 2002-05-21  Nick Drochak  <ndrochak@gol.com>
25834
25835         * icall.c : Use different name for Math.Pow's icall.  Needed to check
25836         parameters first in C#.
25837
25838 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25839
25840         * icall.c, reflection.h: added icall to get info about an event.
25841
25842 2002-05-20  Radek Doulik  <rodo@ximian.com>
25843
25844         * object.c (mono_value_box): don't use memcpy for boxing on BIG
25845         endian
25846         (mono_value_box): don't use memcpy for small sizes on
25847         architectures with unaligned access
25848
25849 2002-05-20  Martin Baulig  <martin@gnome.org>
25850
25851         * reflection.c (mono_reflection_setup_internal_class): Don't crash
25852         if `tb->parent == NULL'.
25853         (mono_reflection_create_internal_class): New function.  This is
25854         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
25855         for enum types.
25856
25857         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
25858         New interncall.
25859
25860 2002-05-19  Martin Baulig  <martin@gnome.org>
25861
25862         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
25863         argument to get the length, don't default to the array length.
25864
25865 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
25866
25867         * assembly.c (mono_assembly_setrootdir): New function used to
25868         override the MONO_ASSEMBLIES directory.
25869
25870 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25871
25872         * icall.c: ValueType_GetHashCode() initialize local var.
25873
25874 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25875
25876         * reflection.c: sort custom attributes table.
25877
25878 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25879
25880         * reflection.c: support named args in custom attributes (write support).
25881
25882 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25883
25884         * reflection.c: fix finally position calculation.
25885
25886 2002-05-15  Radek Doulik  <rodo@ximian.com>
25887
25888         * reflection.c: fixed endianess at many places
25889
25890         * icall.c (ves_icall_InitializeArray): comment out debug msg
25891
25892 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
25893
25894         * object.c (mono_unhandled_exception): new function to handle
25895         unhandled exceptions.
25896         (mono_unhandled_exception): call the UnhandledException event.
25897         (mono_runtime_delegate_invoke): impl.
25898
25899 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
25900
25901         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
25902         returns the RVA, not the direct pointer to the data. Handle the case
25903         when the class size is fixed.
25904
25905 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25906
25907         * reflection.c: fix some endianess issues.
25908
25909 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
25910
25911         * object.c (mono_runtime_invoke): is now able to catch exceptions.
25912
25913         * threads.c (mono_thread_init): added a callback which is invoked
25914         at thread start.
25915
25916 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
25917         
25918         * icall.c: make GetHashCode return non-negative values.
25919
25920 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
25921
25922         * object.c, icall.c, gc.c: revert to address-based hashcode.
25923
25924 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
25925
25926         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
25927
25928 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25929
25930         * icall.c, class.c: special case <Module>.
25931
25932 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
25933
25934         * icall.c: fix bug in GetNow().
25935
25936 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
25937
25938         * object.c (mono_runtime_class_init): make sure that we call all
25939         static class constructors.
25940
25941 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25942
25943         * reflection.c: sort methodsemantics table.
25944
25945 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25946
25947         * reflection.h, reflection.c: honour init locals setting.
25948
25949 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
25950
25951         * icall.c: copied Double ToStringImpl for Single ToStringImpl
25952
25953 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
25954
25955         * reflection.c: support ContructorBuilders in attribute blob creation.
25956
25957 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25958
25959         * reflection.c: some changes to build a binary that can be run
25960         directly in windows.
25961
25962 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
25963
25964         * loader.c: print a big message when an icall can't be found.
25965
25966 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25967
25968         * string-icalls.c: fix bug 24248.
25969
25970 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
25971
25972         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
25973         icall.c, reflection.h: separate assembly loading by pathname and by
25974         assembly name. Use the MONO_PATH env var to search for assemblies.
25975
25976 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25977
25978         * assembly.c, image.h: add some support for assemblies
25979         with multiple modules.
25980         * class.c, class.h: export mono_class_from_typeref().
25981         * loader.c: remove duplicated code and use mono_class_from_typeref(),
25982         instead.
25983
25984 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25985
25986         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
25987         documentation says (the ECMA one is correct).
25988
25989 2002-05-02  Dick Porter  <dick@ximian.com>
25990
25991         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
25992         Don't name the synchronisation mutex.
25993
25994 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
25995
25996         * rand.c
25997         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
25998         Make the prototypes match.
25999         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
26000         Same.
26001
26002         * icall.c
26003         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
26004         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
26005         all systems have tm.tm_zone, so use strftime() with %Z to print
26006         the timezone abreviation into a temp string.
26007
26008         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
26009         rather than mono_array_addr() on a MonoString on Big Endian
26010         machines.
26011
26012 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
26013
26014         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
26015         fix bug 24041
26016
26017 2002-04-30  Dick Porter  <dick@ximian.com>
26018
26019         * socket-io.c: Cope with SOCKET being an integer rather than a
26020         pointer now.
26021
26022         * threads.c: Added Thread_free_internal, to deal with thread
26023         handle cleanup.  Moved calls to handle_store() and handle_remove()
26024         to start_wrapper(), so each can only be called once.  Allocate
26025         synchronisation blocks with GC_malloc(), and use GC finalisation
26026         to close the handles.
26027
26028         * icall.c: added System.Threading.Thread::Thread_free_internal
26029
26030 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26031
26032         * icall.c: support Environment.Exit, CommandLineArgs().
26033
26034 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26035
26036         * object.c, object.h: added mono_runtime_run_main () and
26037         mono_runtime_get_main_args () for use in System.Environment.
26038
26039 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26040
26041         * gc.c: fix thinko, enable actual finalization since the jit is now
26042         fixed.
26043
26044 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26045
26046         * gc.c, object.c: take into account that an object may be offset wrt the address
26047         returned by GC_malloc().
26048
26049 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
26050
26051         * image.c: handle files without entries in the assembly table (modules).
26052
26053 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
26054
26055         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
26056         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
26057         allowed to be null when it's System.Object class setup.
26058
26059 2002-04-27  Martin Baulig  <martin@gnome.org>
26060
26061         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
26062         if `tb->parent == NULL' rather than crashing.
26063
26064 2002-04-28  Nick Drochak  <ndrochak@gol.com>
26065
26066         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
26067         calling acos() where asin() should have been called.
26068
26069 2002-04-26  Martin Baulig  <martin@gnome.org>
26070
26071         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
26072         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
26073         there's a subdirectory called `System', but we don't want to read that
26074         subdirectory as an assembly.
26075
26076 2002-04-25  Martin Baulig  <martin@gnome.org>
26077
26078         * debug-symfile.c: Reflect latest MonoString changes.
26079
26080 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
26081
26082         * rand.c, rand.h: instance method icalls need to have an explicit
26083         this pointer as first argument in the C implementation.
26084
26085 2002-04-25  Nick Drochak <ndrochak@gol.com>
26086
26087         * icall.c: Fix typo in map for GetNonZeroBytes
26088
26089 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26090
26091         * string-icalls.c : String does now passes unit tests without any 
26092         errors, the following changes has been made:
26093         
26094         Implemented replace methods.
26095         Renaming of methods to (try) follow the standard.
26096         Fixed compare ordinal
26097         Made all memory allocated directly to function instead of via icall function.
26098         Small performance fix in is_in_array function
26099                         
26100  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
26101
26102         c (mono_string_Internal_ctor_charp_int_int):
26103         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
26104         sindex < 0, throw ArgumentOutOfRangeException instead of
26105         ArgumentNullException.
26106
26107         Added new check for length == 0, however
26108         I need to make it return String.Empty from the C code.
26109         
26110         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
26111         that calculate the length for us here.
26112         
26113         (mono_string_Internal_ctor_sbytep_int_int): Replaced
26114         mono_string_new_utf16 with mono_string_new, since value is utf8.
26115
26116 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26117
26118         * object.c: register the object for finalization if needed.
26119         Allocate one more char in the string for the terminating 0 char.
26120
26121 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26122
26123         * class.c, class.h, image.c: check if a type implemenst a destructor.
26124         Use the proper key for array class lookups.
26125         * icall.c: register the icalls in the System.GC class.
26126         * gc.c, gc.h: GC-related functions and icalls.
26127
26128 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26129
26130         * icall.c:
26131         * socket-io.c:
26132         * unicode.c: free some strings gotten from mono_string_to_utf8 and
26133         changed a couple of free () by g_free ().
26134
26135         * decimal.c: one-liner in the comments for decimal2string ().
26136
26137 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26138
26139         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
26140
26141 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
26142
26143         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
26144         * object.c (mono_runtime_invoke_array) : handle null in params
26145
26146 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26147
26148         * string-icalls.c: fixed bug in split (one off bug)
26149
26150 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26151
26152         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
26153         * icalls.c: added String::Equals as internal method
26154
26155 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
26156
26157         * threads.c: fixed bug in the double interlocked functions
26158
26159 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
26160
26161         * threads.c: implemented all of the new interlocked icalls.
26162         * string-icalls.c: fix a bug in insert.
26163         * icalls.c: added the icalls for interlocked, removed old string functions.
26164         
26165 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26166
26167         * loader.c: fix off-by-one error when reading argument names.
26168
26169 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26170
26171         * profiler.c: win32 counter implementation (untested).
26172         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
26173         (the latter needs testing and more complete impl. from win32 folks).
26174
26175 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
26176
26177         * object.c: mono_array_new_full workaround mono_array_class_get
26178         problem.
26179
26180 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26181
26182         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
26183         * object.h (mono_string_chars): Changed casting type.
26184
26185 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26186
26187         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
26188                            method signatures to use gunichar2 instead of gint16.
26189
26190 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
26191
26192         * object.h, object.c: domain-specific versions of mono_object_new and
26193         mono_array_new.
26194
26195 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
26196
26197         * object.c: changed String layout
26198
26199         * string-icalls.c (mono_string_Internal_ctor_chara): added
26200         internal string constructors.
26201
26202 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
26203
26204         * threads.c: pass 'this' to the thread start routine.
26205
26206 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26207
26208         * string-icalls.c: fix IndexOf and LastIndexOf. Now
26209         InternalCompareStr don't call twice mono_string_cmp_char for the last
26210         character. Improved performance in mono_string_cmp_char.
26211
26212 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26213
26214         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
26215         code into its own library: libmonoruntime.
26216
26217 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
26218
26219         * object.h, object.c: changed array format so that szarrays do not
26220         require a bounds structure.
26221         * icall.c, appdomain.c: support for new szarray format.
26222
26223 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
26224
26225         * metadata.c: compare also the retuns type when comparing signatures:
26226         we didn't do this as an optimization since really overloaded methods
26227         must differ also in the arguments, but this doesn't work with
26228         low-level IL code (or when using explicit conversion operators: see
26229         bug#23498 for an example).
26230
26231 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26232
26233         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
26234
26235 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26236
26237         * icall.c: make MonoType::GetElementType its own icall.
26238
26239 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26240
26241         * icall.c: remove MonoMethod_get_Name().
26242         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
26243         object.
26244
26245 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26246
26247         * string-icalls.c: optimized a few methods.
26248
26249 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26250
26251         * icall.c: added all new string internal calls
26252         * string-icalls.c: added, new string internal call implementation.
26253         * object.c: added mono_string_new_size for allocating a string a size
26254
26255 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
26256
26257         * object.c (mono_object_isinst): use the same code as in the
26258         optimized x86 version.
26259
26260 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26261
26262         * profiler.c: TSC-based timer code (faster and more accurate).
26263         Not hooked up in configure, yet (set USE_X86TSC to 1).
26264
26265 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
26266
26267         * profiler.c, profiler.h: track time spent compiling methods.
26268         * threads.c: track thread creation/destruction.
26269
26270 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
26271
26272         * profiler.c, profiler.h, profiler-private.h: profiling interface
26273         and sample implementation. Moved here so that it can be used also by
26274         the jit.
26275
26276 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
26277
26278         * reflection.c, reflection.h: keep types and other handles separate in
26279         the hash tables for referred tokens. Add guid for modules.
26280
26281 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26282
26283         * assembly.c: fix bugs found with valgrind.
26284         * metadata.h, metadata.c: added mono_metadata_guid_heap().
26285
26286 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
26287
26288         * threads: added icall support for getting current domain for
26289                    the thread.
26290  
26291 2002-04-13  Martin Baulig  <martin@gnome.org>
26292
26293         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
26294         (MonoDebugVarInfo): Added `index' field for register based addresses.
26295         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
26296         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
26297         `MonoDebugVarInfo *params' and `guint32 this_offset' with
26298         `MonoDebugVarInfo *this_var'.
26299
26300         * debug-symfile.c (relocate_variable): New static function to write
26301         a location description for a local variable or method parameter.
26302
26303 2002-04-12  Martin Baulig  <martin@gnome.org>
26304
26305         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
26306         stack offset and begin/end scope address of a local variable.
26307         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
26308         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
26309         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
26310
26311         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
26312         Added new relocation types for start/end scope of a local variable.
26313
26314 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26315
26316         * object.h: add mono_object_domain() macro.
26317         * reflection.c: handle typespecs.
26318         * icall.c: MonoMethod::get_Name() implementation.
26319
26320 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26321
26322         * icall.c: String::GetHashCode() icall implementation.
26323
26324 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26325
26326         * icall.c: String::IndexOfAny icall.
26327         * object.c, object.h: make array->max_length more useful.
26328         Intrduced mono_object_class() and mono_string_length() macros.
26329
26330 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26331
26332         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
26333         instead of g_unichar_isdigit.
26334
26335 2002-04-11  Nick Drochak  <ndrochak@gol.com>
26336
26337         * icall.c: Implement a simple Double.ToString().
26338
26339 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26340
26341         * appdomain.h: only io-layer.h is supposed to be included.
26342         * icall.c: explicitly import environ. Fix warning.
26343
26344 2002-04-10  Nick Drochak  <ndrochak@gol.com>
26345
26346         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
26347                 return true even if it's not Daylight Savings time.
26348                 Only return false for the case where the function isn't
26349                 implemented for a plaform (read Windows).
26350
26351 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26352
26353         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
26354         data with a mutex.
26355
26356 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
26357
26358         * mempool.c (mono_mempool_alloc): only use g_malloc when
26359         absolutely necessary.
26360
26361 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26362
26363         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
26364
26365         * class.c (mono_class_vtable): use domain mempool to allocate vtable
26366         (mono_class_proxy_vtable): use domain mempool
26367
26368 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26369
26370         * appdomain.h, appdomain.c: split initialization that requires the
26371         execution engine support into mono_runtime_init().
26372
26373 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26374
26375         * class.c (mono_class_init): don't include vtable inside MonoClass
26376         to save some memory, gather some statistics.
26377         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
26378
26379 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26380
26381         * icall.c: internalcall implementation for ValueType.Equals().
26382
26383 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
26384
26385         * object.c (mono_message_init): moved 
26386         (mono_runtime_exec_main): new arch. independent impl.
26387         (mono_runtime_invoke_array): new method - like
26388         mono_runtime_invoke, but you can pass an array of objects.
26389         (mono_remoting_invoke): new arch. independent impl.
26390         (mono_message_invoke): new arch. independent impl.
26391         (mono_runtime_class_init): new arch. independent impl.
26392         (mono_runtime_object_init): new arch. independent impl.
26393
26394 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26395
26396         * metadata.c, object.c, reflection.c: documented the exported
26397         functions.
26398
26399 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
26400
26401         * icall.c: simpler code to pass the assembly builder data to corlib.
26402         Implement GetNestedTypes() internalcall.
26403
26404 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26405
26406         * class.c: warn if a type can't be loaded.
26407
26408 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
26409
26410         * image.h: typedef MonoImageOpenStatus
26411         * types.h: removed unused file
26412         
26413 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
26414
26415         * icall.c: Enum_ToObject accepts enum value arguments.
26416
26417 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26418
26419         * class.c: move initialization of properties, events and nested
26420         classes, so that they happen for interfaces, too.
26421
26422 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26423
26424         * icall.c: cleanup some ugly casts in Array_SetValue*.
26425
26426 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26427
26428         * icall.c: the values array fro enums is of the correct type, now.
26429         Implement (correctly) getFullName instead of assQualifiedName for
26430         MonoType.
26431         * reflection.h, reflection.c: added mono_type_get_name ().
26432
26433 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26434
26435         * assembly.c, image.h: for each MonoImage, record from wich assembly
26436         it was loaded.
26437         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
26438         Make Type.Assembly work.
26439
26440 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
26441
26442         * debug-symfile.h: use char* instead of gpointer to avoid
26443         unnecessary casts.
26444
26445         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
26446
26447         * icall.c (ves_icall_InternalExecute): impl. FielSetter
26448         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
26449
26450 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
26451
26452         * icall.c (mono_message_init): impl. (code cleanup)
26453         (ves_icall_InternalExecute): impl. FieldGetter
26454
26455         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
26456         defined we call all (non-static)methods through the vtable. 
26457
26458 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
26459
26460         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
26461         finalizer even though the memory is still referenced (and the chunk of
26462         memory is not freed).
26463
26464 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26465
26466         * assembly.c: fix brokeness.
26467
26468 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
26469
26470         * class.c: kill some warnings. Check explicit interface method
26471         implementation also without considering the namespace.
26472         Load also literal strings in static class data.
26473
26474 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
26475
26476         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
26477         (default_assembly_name_resolver): Make the resolver take the
26478         "base" directory where the assembly was originally defined, so we
26479         can load DLLs that are in the same directory as the assembly that
26480         is being referenced.
26481
26482 2002-03-28  Dick Porter  <dick@ximian.com>
26483
26484         * file-io.h: 
26485         * file-io.c:
26486         * socket-io.c: 
26487         * unicode.h: 
26488         * unicode.c: Warning cleanups
26489
26490 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
26491
26492         * object.h, reflection.h: use the correct type instead of MonoObject.
26493
26494 2002-03-28  Martin Baulig  <martin@gnome.org>
26495
26496         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
26497         (mono_debug_update_symbol_file): Initialize classes if necessary.
26498
26499 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26500
26501         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
26502         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
26503
26504 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
26505
26506         * assembly.h: fix function prototype.
26507         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
26508         * mono-endian.h: use const cast.
26509
26510 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26511
26512         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
26513
26514 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26515
26516         * loader.c: don't assert when a typeref can't be loaded, give
26517         a chance to the runtime to trow an exception instead.
26518         * loader.h: fix warning.
26519
26520 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26521
26522         * class.c (mono_class_proxy_vtable): added proxy support
26523
26524 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
26525
26526         * icall.c: removed last of PAL calls, added System.Environment
26527         * file-io.h, file-io.c: MonoIO implementation
26528         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
26529
26530 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26531
26532         * appdomain.c: do not use the byte marker in ldstr table lookup.
26533         * debug-helpers.c: allow two ':' to separate class and method name.
26534         * object.c: allocate arrays bounds with the GC, too.
26535         * verify: add a few more checks.
26536
26537 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
26538
26539         * reflection.c: output also literal strings. Allocate parameter data
26540         with GC_malloc() (thanks, Martin, for catching this!).
26541
26542 2002-03-26  Martin Baulig  <martin@gnome.org>
26543
26544         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
26545         include the `this' offset in the `param_offsets'.
26546
26547 2002-03-25  Martin Baulig  <martin@gnome.org>
26548
26549         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
26550         mono_debug_get_class() function to get the classes. Added new
26551         relocation types for arrays and strings.
26552         (mono_debug_get_class): New static function to search in all
26553         referenced assemblies for a metadata token.
26554
26555         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
26556
26557 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
26558
26559         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
26560         hold gc-allocated objects. Make the string heap a stream like the
26561         others. Removed duplicated code when writing stream info.
26562         Added asserts to catch possible buffer overflows. Set the sorted map
26563         for tables that need sorting. Added some documentation.
26564
26565 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
26566
26567         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
26568         for interned strings and vtables.
26569
26570 2002-03-24  Martin Baulig  <martin@gnome.org>
26571
26572         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
26573         it in the array since it was created with g_slist_prepend().
26574
26575 2002-03-24  Martin Baulig  <martin@gnome.org>
26576
26577         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
26578         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
26579         (mono_debug_method_from_token): Renamed to
26580         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
26581         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
26582
26583         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
26584         relocation types.
26585
26586         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
26587
26588 2002-03-24  Martin Baulig  <martin@gnome.org>
26589
26590         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
26591         (mono_debug_method_from_token): New func.
26592
26593         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
26594         New interncall, calls mono_debug_local_type_from_signature().
26595         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
26596         calls mono_debug_method_from_token().
26597
26598 2002-03-23  Martin Baulig  <martin@gnome.org>
26599
26600         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
26601         specifies the number of bytes to be converted, not the array size.
26602         Return the number of chars, not the number of bytes.
26603         (ves_icall_iconv_get_chars): The `byteCount' argument
26604         specifies the number of bytes to be converted, not the array size.
26605
26606 2002-03-23  Martin Baulig  <martin@gnome.org>
26607
26608         * reflection.h (MonoReflectionSigHelper): New type.
26609
26610         * reflection.c (mono_reflection_sighelper_get_signature_local),
26611         (mono_reflection_sighelper_get_signature_local): New functions.
26612
26613         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
26614         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
26615         interncalls.
26616
26617 2002-03-23  Martin Baulig  <martin@gnome.org>
26618
26619         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
26620         is_writeable is set.
26621         (mono_raw_buffer_update): New function to write the modified map
26622         back to disk.
26623
26624         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
26625
26626         * debug-symfile.c (mono_debug_update_symbol_file): Call
26627         mono_raw_buffer_update() when done writing.
26628
26629 2002-03-23  Martin Baulig  <martin@gnome.org>
26630
26631         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
26632
26633         * debug-symfile.c: Added support for arguments and local variables.
26634
26635 2002-03-23  Dick Porter  <dick@ximian.com>
26636
26637         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
26638         protected by ifdefs, hence breaking the w32 build.
26639
26640 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26641
26642         * object.c: implement is_interned() the right way.
26643
26644 2002-03-21  Martin Baulig  <martin@gnome.org>
26645
26646         * debug-symfile.[ch]: New files to handle debugging information
26647         files. There's also support to dynamically update these symbol
26648         files to include machine dependent information.
26649
26650 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
26651
26652         * threads.c (mono_thread_create): new function to create thread
26653         from C
26654
26655 2002-03-20  Martin Baulig  <martin@gnome.org>
26656
26657         * icall.c (ves_icall_InternalInvoke): Create a new object if the
26658         method is a constructor.
26659         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
26660         points to ves_icall_InternalInvoke().
26661
26662 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
26663
26664         * file-io.c: Flush shouldn't throw exceptions.
26665
26666 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
26667
26668         * file-io.c: FileStream flush support; FileSetLength now
26669         restores file pointer.
26670
26671 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
26672
26673         * class.c: set image for pointer classes.
26674
26675 2002/03/19  Nick Drochak <ndrochak@gol.com>
26676
26677         * sysmath.c: Forgot one.
26678
26679 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
26680
26681         * sysmath.c: Avoid redefining existing names.
26682
26683 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
26684
26685         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
26686         handled by runtime as icall rather than dllimport from libm.so
26687         * file-io.c, file-io.h: fixed handle argument type.
26688
26689 2002-03-18  Dick Porter  <dick@ximian.com>
26690
26691         * reflection.c (mono_image_get_type_info): rename interface to
26692         iface, because of "#define interface struct" on windows.
26693
26694 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
26695
26696         * class.c, class.h: rename and export mono_ptr_class_get().
26697         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
26698         * reflection.c, reflection.h, icall.c: better/saner type name
26699         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
26700         method signatures.
26701
26702 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
26703
26704         * class.c (mono_class_init): removed hardcoded GHC_SLOT
26705
26706         * icall.c (ves_icall_InternalInvoke): impl.
26707
26708 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
26709
26710         * reflection.c: output the interface map table, too.
26711
26712 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
26713
26714         * class.c (class_compute_field_layout): separate computation of 
26715         static field layout
26716
26717 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
26718
26719         * icall.c: added System.Buffer support.
26720         * file-io.c: moved file icalls from PAL to FileStream.
26721
26722 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
26723
26724         * icall.c (ves_icall_System_Object_GetHashCode): impl.
26725
26726 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
26727
26728         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
26729
26730 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
26731
26732         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
26733
26734 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
26735
26736         * debug-helpers.{c,h}: moved here from monograph some useful functions
26737         to locate a method by name/signature in a class or image. Included
26738         also a small and flexible IL disassembler.
26739
26740 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26741
26742         * reflection.c: fixup tokens in methods with small header size, too.
26743
26744 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
26745
26746         * object.c (mono_string_to_utf8): remove assert(!error), instead
26747         print a warning. 
26748
26749 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
26750
26751         * icall.c: update to the new mono_Array_class_get interface.
26752
26753 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
26754
26755         * appdomain.c, object.c: Boehm-GC enable.
26756         * icall.c: make get_data_chunk() support split data requests.
26757         Ensure a class is initialized in more cases. Return only the first
26758         property found in GetProperties() or the compiler gets confused. 
26759         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
26760         * reflection.h, reflection.c: add fixup mechanism for field and method
26761         tokens. Initialize assembly->typeref in a single place. Output
26762         properties after events. Support custom attributes for events, too.
26763         Typo fix for paramter custom attrs.
26764
26765 2002-03-07  Martin Baulig  <martin@gnome.org>
26766
26767         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
26768
26769 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
26770
26771         * class.c (mono_array_class_get): fix. for multi. dim. arrays
26772
26773 2002-03-06  Martin Baulig  <martin@gnome.org>
26774
26775         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
26776         non-zero lower bounds. See testcases #F10-#F13.
26777
26778 2002-03-05  Martin Baulig  <martin@gnome.org>
26779
26780         * exception.c (mono_get_exception_argument_out_of_range): New exception.
26781
26782         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
26783         ves_icall_System_Array_GetValue(), only calculate the absolute array position
26784         here.
26785         (ves_icall_System_Array_SetValue): Likewise.
26786         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
26787         as argument and does the actual work. This function is used when copying a
26788         multi-dimensional array.
26789         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
26790         now do all the widening conversions of value types.
26791         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
26792
26793 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26794
26795         * class.c: remove some magic numbers and use the smbolic names,
26796         instead. Added init_events() to load event info at class init time.
26797         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
26798         and mono_metadata_methods_from_event().
26799         * reflection.h, reflection.c: added support for writing out the evnets
26800         related information.
26801
26802 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26803
26804         * reflection.h, icall.c: use a different method (GetInterfaces)
26805         to gather interface info and add isbyref, isprimitive and
26806         ispointer to the ves_icall_get_type_info() return value.
26807
26808 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
26809
26810         * class.h: stared adding support for events.
26811         * icall.c: split find_members implementation. Added debug icall to get
26812         the address of an object.
26813         * reflection.c: handle TypeBuilders in mono_type_get_object().
26814
26815 2002-03-01  Martin Baulig  <martin@gnome.org>
26816
26817         * icall.c (ves_icall_System_Array_GetLength): This must throw an
26818         ArgumentOutOfRangeException(), not an ArgumentException().
26819         (ves_icall_System_Array_GetLowerBound): Likewise.
26820         (ves_icall_System_Array_GetValue): Improved argument checking.
26821         (ves_icall_System_Array_SetValue): Improved argument checking.
26822
26823 2002-03-01  Martin Baulig  <martin@gnome.org>
26824
26825         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
26826         called with invalid arguments rather than just dying with g_assert().
26827         (ves_icall_System_Array_SetValue): Likewise.
26828         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
26829         raise a NotImplementedException instead.
26830         (ves_icall_System_Array_GetLength): Added argument checking.
26831         (ves_icall_System_Array_GetLowerBound): Added argument checking.
26832
26833 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
26834
26835         * object.h (mono_assert): new macros mono_assert and
26836         mono_assert_not_reached
26837
26838 2002-02-28  Martin Baulig  <martin@gnome.org>
26839
26840         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
26841         and "System::String::IsInterned" to "System::String::_IsInterned".
26842
26843 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
26844
26845         * icall.c: remove hacks for typebuilder. Added icall to create a
26846         modified type from a tybebuilder.
26847         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
26848         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
26849         to create a backing MonoClass for a TypeBuilder.
26850
26851 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26852
26853         * class.c, class.h: more refactoring of class init.
26854         Export mono_class_setup_mono_type() and mono_class_setup_parent().
26855
26856 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
26857
26858         * marshal.c, marshal.h: start of marshaling interface.
26859
26860 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
26861
26862         * icall.c: fix order in assembly qualified name icall.
26863
26864 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
26865
26866         * class.c: do not free str, since we store it in the hash table.
26867         * reflection.h: add label field to MonoILExceptionInfo.
26868         * reflection.c: handle references to more than one assembly. Handle
26869         case when there isn't a module created in the assembly.
26870
26871 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26872
26873         * class.c: Fix typo. Start refactoring of class init code.
26874
26875 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26876
26877         * appdomain.c: exit with 1 on error.
26878         * class.c: we already have the name in MonoClassField.
26879         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
26880         MonoStreamHeader instead of an offset of image->raw_metadata.
26881
26882 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
26883
26884         * appdomain.c (mono_init): Be even more descriptive about the error.
26885
26886 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
26887
26888         * appdomain.c: give the user an informative message when corlib can't
26889         be loaded.
26890
26891 2002-02-26  Martin Baulig  <martin@gnome.org>
26892
26893         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
26894         New icall to get the time zone data.
26895
26896 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26897
26898         * reflection.c: set virtual and raw size of section correctly.
26899         * threads.c: transfer domain information to newly created threads.
26900
26901 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
26902
26903         * class.c: when instancing a class in a domain, load the default
26904         vaules for static fields from the constant table. Fix System.Enum to
26905         not be an enum.
26906         * icall.c: implement Object::GetType() internalcall. Implemented
26907         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
26908         Fixed checking of binding flags in find_members().
26909         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
26910         * reflection.c: handle enumerations when writing to the constant
26911         table. Use a different object cache for types.
26912
26913
26914 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
26915
26916         * object.c (mono_object_isinst): fix for arrays
26917
26918         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
26919
26920 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
26921
26922         * object.c: don't use mprotect ()  and fix intern pool hash table
26923         lookup for big endian systems.
26924
26925 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26926
26927         * icall.c: change type_is_subtype_of () signature.
26928
26929 2002-02-21  Mark Crichton  <crichton@gimp.org>
26930
26931         * rand.c, rand.h: Added random number generator for
26932         System.Security.Cryptography classes.
26933
26934         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
26935
26936         * icall.c: Added System.Security.Cryptography calls.
26937
26938 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
26939
26940         * class.c, icall.c, metadata.c: better support for pointer types.
26941         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
26942         * reflection.c: Add support for getting custom attrs for properties
26943         and simplify some code.
26944
26945 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26946
26947         * icall.c: change getToken () and add custom attribute GetBlob()helper
26948         method.
26949         * reflection.h: add custom attrs array to the reflection builder structures.
26950         * reflection.c: encode and emit custom attributes for all the relevant
26951         reflection objects. Cache fieldref and methodref tokens. Change
26952         mono_image_create_token() interface to take a MonoDynamicAssembly.
26953         More complete custom attributes decoder. Load custom attributes for
26954         Assembly, Field, Method and Constructor objects, too. Make the
26955         returned array an Attribute[] one, not object[]. Added
26956         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
26957         custom attribute constructor.
26958
26959 2002-02-20  Dick Porter  <dick@ximian.com>
26960
26961         * icall.c:
26962         * rawbuffer.c:
26963         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
26964         problem code out for now).
26965
26966 2002-02-19  Radek Doulik  <rodo@ximian.com>
26967
26968         * object.c (mono_ldstr): use hash table to avoid multiple swapping
26969
26970 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
26971
26972         * icall.c: register the GetCustomAttributes method.
26973         * object.c, object.h: add mono_string_new_len ().
26974         * reflection.h, reflection.c: added mono_runtime_invoke(),
26975         mono_install_runtime_invoke(). Added
26976         mono_reflection_get_custom_attrs () to load custom attributes and
26977         create the attribute objects.
26978
26979 2002-02-19  Dick Porter  <dick@ximian.com>
26980         * threads-dummy-types.c:
26981         * threads-dummy-types.h:
26982         * threads-dummy.c:
26983         * threads-dummy.h:
26984         * threads-pthread-types.c:
26985         * threads-pthread-types.h:
26986         * threads-pthread.c:
26987         * threads-pthread.h:  Deleted obsolete files
26988
26989 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
26990
26991         * class.c (mono_class_vtable): runtime init the class when we
26992         allocate static class data.
26993
26994         * icall.c (ves_icall_System_Array_SetValue): check for null values.
26995
26996         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
26997         and String - but we will need generic marshalling support in the
26998         future. 
26999         (mono_init): set the domain name in a ms compatible way
27000
27001         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
27002         String[].
27003
27004 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
27005
27006         * object.c (mono_array_clone): use alloca() instead of g_malloc  
27007         for sizes
27008
27009         * appdomain.c (mono_domain_unload): impl.
27010
27011 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27012
27013         * appdomain.c, object.c: fix intern pool implementation.
27014         * class.c: fix alignment code.
27015
27016 2002-02-16  Radek Doulik  <rodo@ximian.com>
27017
27018         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
27019         and s2 > s1, just copy lower bytes to be compatible with little
27020         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
27021         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
27022
27023         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
27024         force big_endian to be 1 for big endian machines 
27025         (ves_icall_iconv_new_decoder): ditto
27026
27027 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
27028
27029         * socket-io.c (convert_sockopt_level_and_name): If the system
27030         doesn't define SOL_IP or SOL_TCP, get them by hand using
27031         getprotobyname() and caching the values (because this could be a
27032         slow operation).
27033         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
27034         Use the appropriate struct when the system does support it. Ie,
27035         not all systems have struct ip_mreqn so use struct ip_mreq when
27036         appropriate.
27037
27038 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
27039
27040         * reflection.c: handle finally clauses.
27041
27042 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
27043
27044         * socket-io.c: use g_snprintf() instead of snprintf.
27045
27046 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27047
27048         * reflection.c (mono_param_get_objects): Cast second argument to
27049         mono_method_get_param_names to a const char** to silence the
27050         compiler warning.
27051
27052         * appdomain.c (mono_domain_assembly_open): Put parens around the
27053         truth statement in the for-loop.
27054
27055         * unicode.c (iconv_convert): Got rid of a compiler warning about
27056         int i being unused when the system has a new iconv.
27057         (iconv_get_length): Same.
27058
27059         * image.c (load_class_names): Cast the second argument to
27060         g_hash_table_insert() to char* to hush compiler warnings about the
27061         arg being a const.
27062         (mono_image_open): Same here.
27063
27064         * socket-io.c: Don't conditionally include sys/filio.h or
27065         sys/sockio.h here anymore since we now get them from
27066         io-layer/io-layer.h
27067         (inet_pton): If the system doesn't support inet_aton, implement
27068         using inet_addr and also #define INADDR_NONE if it isn't defined
27069         by the system.
27070
27071 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
27072
27073         * metadata.c, metadata.h: added function to get packing and size info
27074         of a typedef.
27075         * reflection.h, reflection.c: handle field RVA data. Save info about
27076         the table layout if needed. Assign typedef indexes to all the types
27077         before dumping the info about them to avoid forward reference problems.
27078
27079 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
27080
27081         * socket-io.c (convert_sockopt_level_and_name): ifdef
27082         SO_ACCEPTCONN because it is not defined on my system (old debian)
27083
27084 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
27085
27086         * opcode.c: use stddef.h to get NULL.
27087
27088 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
27089
27090         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
27091         for FIONBIO, FIONREAD and SIOCATMARK.
27092         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
27093         define INADDR_NONE and besides, inet_addr() is deprecated and
27094         should not be used. Use inet_pton() instead - it also has the
27095         added bonus that it can easily handle IPv6 addresses as well.
27096         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
27097
27098 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
27099
27100         * decimal.c: remove _MSC_VER conditional.
27101
27102 2002-02-13  Dick Porter  <dick@ximian.com>
27103
27104         * socket-io.c: 
27105         * icall.c: Internal calls for Blocking, Select, Shutdown,
27106         GetSocketOption and SetSocketOption
27107
27108 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27109
27110         * assembly.cs: better resolver: use it instead of some kludgy
27111         code.
27112
27113 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
27114
27115         * reflection.c: the best way to speed-up the compiler is to avoid
27116         infinite loops.
27117
27118 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
27119
27120         * class.c (mono_class_vtable): changed the object layout
27121         (obj->vtable->class). 
27122         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
27123
27124 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27125
27126         * assembly.c: look for assemblies in the assembly dir, too.
27127
27128 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27129
27130         * class.c: fix thinko in mono_class_from_type().
27131
27132 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
27133
27134         * exception.h, exception.c: added TypeLoadException.
27135         * object.h, object.c: added mono_array_clone ().
27136         * icall.c: handle throwOnError in AssemblyGetType().
27137         Added Array.Clone().
27138         * opcode.h, opcode.c: use a single value for the opcode val.
27139         Compile fix for non-gcc compilers.
27140
27141 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
27142
27143         * opcodes.c, opcodes.h: export interesting info about opcodes.
27144
27145 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
27146
27147         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
27148         icalls. 
27149
27150         * class.c (class_compute_field_layout): set element_class for enums
27151         (mono_class_create_from_typedef): set element_class for normal classes
27152
27153         * icall.c (ves_icall_System_Enum_get_value): impl.
27154
27155         * class.c (mono_class_create_from_typedef): do not set valuetype
27156         flag for System.ValueType and System.Enum
27157
27158 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
27159
27160         * unicode.c (iconv_convert): fix big endian problem.
27161
27162 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
27163
27164         * class.c: add asserts if we are ever going to scribble over memory.
27165         * socket-io.c: not all systems have AF_IRDA defined.
27166
27167 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
27168
27169         * class.c (class_compute_field_layout): do not consider static
27170         fields to compute alignment
27171
27172 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
27173
27174         * appdomain.c (mono_appdomain_get): impl.
27175         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
27176
27177 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
27178
27179         * icall.c: ignore "file://" prefix when loading an assembly.
27180
27181 2002-01-23  Dick Porter  <dick@ximian.com>
27182
27183         * socket-io.c:
27184         * icall.c:
27185         * Makefile.am: Added socket support
27186
27187 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27188
27189         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
27190         code back.  This should return the assemblies that are loaded by
27191         the runtime on behalf of an application domain. 
27192
27193         The current implementation is still broken, it just returns every
27194         assembly loaded, but until we get real applications domain this
27195         will do.
27196
27197 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
27198
27199         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
27200         AppDomain object.
27201
27202 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
27203
27204         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
27205         the mono_class_from_name lookup.
27206         (ves_icall_get_parameter_info): ditto.
27207         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
27208         method.
27209         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
27210
27211 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
27212
27213         * class.c: load also nested classes on class init.
27214         System.ValueType instance methods gets passed boxed
27215         values, unless methods in derived classed that get a pointer to the
27216         data.
27217         * icall.c: use better name parsing code in GetType().
27218         * image.c, image.h: add mono_image_loaded ().
27219         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
27220         * reflection.c, reflection.h: added mono_reflection_parse_type().
27221
27222 2002-01-22  Veronica De Santis <veron78@interfree.it>
27223
27224         * icall.c : Added mapping of internal calls for Manual and Auto reset events
27225         * threads.c : Added the implementation of internal calls for events
27226         * threads.h : Added prototypes of internal calls for events
27227         
27228 2002-01-21  Radek Doulik  <rodo@ximian.com>
27229
27230         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
27231
27232 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
27233
27234         * class.c (mono_class_init): set min_align to 1 (instead of 0)
27235         (mono_class_value_size): use min_align
27236
27237 2002-01-20  Dick Porter  <dick@ximian.com>
27238
27239         * threads.h:
27240         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
27241         so it compiles on w32.
27242
27243 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
27244
27245         * metadata.c (mono_type_stack_size): impl.
27246
27247         * class.c (mono_class_get_field): impl. memberref token
27248
27249 2002-01-16 Veronica De Santis <veron78@@interfree.it>
27250
27251         * icall.h : Added the internal calls mapping for CreateMutex_internal
27252                     and ReleaseMutex_internal.
27253         * threads.h : Added the prototype of mutexes internal calls.
27254         * threads.c : Added the implementations of mutexes internal calls.
27255
27256 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27257
27258         * metaparse.h: removed unused file.
27259         * reflection.c, reflection.h: added stream_data_align () function 
27260         to align data in streams and keep stream aligned. Add support for
27261         exception support in method headers.
27262
27263 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
27264
27265         * unicode.c: make iconv_convert () return the number of bytess written
27266         in the output buffer.
27267
27268 2002-01-15  Dick Porter  <dick@ximian.com>
27269         * threads.c: Make the runtime's idea of infinite timeouts coincide
27270         with the class library's
27271
27272         Fix a particularly egregious bug in mono_thread_cleanup(). That
27273         code was so utterly bogus it must have been written on a Monday.
27274
27275 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27276
27277         * reflection.h: add subtypes field to TypeBuilder.
27278         * reflection.c: encode constants for literal fields.
27279         Handle subtypes. Fix user string token (and add a zero byte)
27280         at the end.
27281         
27282 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
27283
27284         * class.c (mono_class_init): bug fix: assign slot numbers for
27285         abstract methods.
27286
27287 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27288
27289         * reflection.c: don't try to output a code RVA for abstract methods.
27290         Small fixes for method header format. Output parameter info to the
27291         ParamDef table. Save method overriding info to MethodImpl table.
27292         Fix property support. Allow typedef.extends to be a type in the
27293         building assembly.
27294         * verify.c: fix off-by-one error.
27295
27296 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
27297
27298         * class.c: fix mono_class_from_mono_type () for szarray types.
27299         Remove unused cache check in mono_class_from_type_spec().
27300         * icall.c: *type_from_name () functions handle simple arrays and byref.
27301         * reflection.c: handle byref and szarray types. Handle methods without
27302         body (gets P/Invoke compilation working). Handle types and fields in
27303         get_token ().
27304         * reflection.h: add rank to MonoTypeInfo.
27305
27306 2002-01-10  Dick Porter  <dick@ximian.com>
27307
27308         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
27309         internal calls
27310
27311 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27312
27313         * icall.c: initialize class in type_from_handle ().
27314         Loop also in parent classes for get_method ().
27315         * reflection.c: properly encode class and valuetype types.
27316         Start on encoding TypeBuilder types. Handle fieldrefs.
27317         Use correct length when registering a user string.
27318         Handle ConstructorBuilder and MonoMethod in get_token ().
27319         Make mono_type_get_object () aware of cached types.
27320         * object.c: back out change to mono_string_new ().
27321
27322 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
27323         * object.c: mono_string_new should return a NULL when the string 
27324         passed in is NULL -- not try to deference it.
27325         
27326 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27327
27328         * icall.c: hack to make IsSubType work for TypeBuilders.
27329         * reflection.c: emit constructors before methods.
27330         Retrieve param names in mono_param_get_objects().
27331
27332 2002/01/05  Nick Drochak  <ndrochak@gol.com>
27333
27334         * Makefile.am: fix list of headers and sources so automake 1.5
27335         doesn't complain. Removed \# at end of list.
27336
27337 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27338
27339         * reflection.c: get token for a method ref. Set return type of
27340         constructor to void.
27341         * loader.c: debug message.
27342         * class.c: typo fix.
27343
27344 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
27345
27346         * icall.c: fix array init with rank > 1. FindMembers
27347         loops in parent class as well.
27348         * image.c: do not insert nested types in name cache.
27349         * reflection.c: warning fix.
27350         * reflection.h: add override method (for interface impl).
27351
27352 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
27353
27354         * metadata.c: fix customattr decoding.
27355
27356 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
27357
27358         * rawbuffer.cs: Added native Win32 implementation, avoids using
27359         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
27360
27361 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
27362
27363         * class.c: make the low-level routines handle the cache.
27364
27365 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
27366
27367         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
27368
27369 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
27370
27371         * class.c: fix mono_array_element_size() for objects.
27372         * class.h, class.c: add properties to MonoClass and load them
27373         at init time.
27374         * icall.c: check with isinst() when assigning a value to an array
27375         instead of requiring the classes to match exactly.
27376         Implemented icall for System.Type::GetType().
27377         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
27378         enums. Handle bindingflags when looking for methods and fields.
27379         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
27380         and mono_metadata_methods_from_property().
27381         * reflection.h, reflection.c: added structures for propreties,
27382         parameters and enums. Implemented mono_property_get_object() and
27383         mono_param_get_objects().
27384
27385 2001-12-18  Dick Porter  <dick@ximian.com>
27386
27387         * file-io.c: Use mono_string_to_utf16() instead of
27388         mono_string_chars()
27389
27390         * object.c: Added mono_string_to_utf16(), which copies the non
27391         NULL-terminated MonoString into a new double-null-terminated
27392         buffer.
27393
27394 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
27395
27396         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
27397
27398 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
27399
27400         * file-io.c: raise exceptions if handle is invalid.
27401
27402 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
27403
27404         * assembly.c: yet another check for mscorlib.
27405         * class.c, class.h: load nesting info for classes.
27406         * icall.c: many new functions to support the Reflection classes.
27407         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
27408         * reflection.h, reflection.c: mono_image_create_token(),
27409         mono_assembly_get_object(), mono_type_get_object(),
27410         mono_method_get_object(), mono_field_get_object(): methods to return
27411         objects that parallel the C representation of assemblies, types,
27412         methods, fields.
27413
27414 2001-12-11  Dick Porter  <dick@ximian.com>
27415
27416         * icall.c:
27417         * file-io.c: Internal calls for file IO.
27418
27419 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
27420
27421         * tabledefs.h: missing FileAttributes.
27422         * verify.h, verify.c: use is_valid_string () to simplify and check for
27423         valid strings more correctly. Fix warnings and speeling.
27424         Check more tables: Filed, File, ModuleRef, StandAloneSig.
27425         Check code: branches, maxstack, method calls.
27426
27427 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
27428
27429         * object.c (mono_object_allocate): removed static, so that the jit
27430         can allocate value types.
27431
27432         * icall.c (ves_icall_System_DateTime_GetNow): impl.
27433
27434 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27435
27436         * class.c: init enum types right away and register the
27437         token->MonoClass map in mono_class_create_from_typedef ().
27438         * verify.h, verify.c: first cut of the verifier.
27439         * pedump.c: add --verify switch to verify metadata tables.
27440         * tabledefs.h: add some missing enums.
27441
27442 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
27443
27444         * class.c (mono_install_runtime_class_init): impl.
27445         (mono_class_init): renamed mono_class_metadata_init to
27446         mono_class_init, also removed the metadata_inited flag
27447
27448         * object.c (mono_object_isinst): use faster algorithm
27449
27450 2001-11-30  Radek Doulik  <rodo@ximian.com>
27451
27452         * mono-endian.h: reverted last change
27453         added function prototypes
27454
27455         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
27456         add mono-endian.c back
27457
27458         * mono-endian.c: returned back, as Paolo pointed out, it's needed
27459         for unaligned access, I've mistaked it with endianess. I am
27460         sorry.
27461         (mono_read16): fix reverted endianess
27462         (mono_read64): ditto
27463         (mono_read32): ditto
27464
27465 2001-11-30  Dick Porter  <dick@ximian.com>
27466
27467         * exception.c: Implement mono_exception_from_name()
27468
27469 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27470
27471         * metadata.h, metadata.c: remove params_size and locals_size and their
27472         calculation from the metadata code: they are only usefult to the
27473         interp.
27474
27475 2001-11-29  Radek Doulik  <rodo@ximian.com>
27476
27477         * object.c (mono_ldstr): swap bytes here, it's probably not the
27478         best place, but works for me now, I'll redo it once I know mono
27479         better, also note that I add PROT_WRITE and don't reset back, also
27480         note that it's only affects big endians, so x86 should be OK
27481
27482         * mono-endian.h (read16): use just glib macros for both endians
27483
27484         * mono-endian.c: removed as glib macros are used in in
27485         mono-endian.h so we don't need to care about endianess for read
27486         macros as glib does that for us already
27487
27488 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
27489
27490         * class.h, class.h: take minimum alignment into consideration so
27491         that the fields of a class remain aligned also when in an array.
27492
27493 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27494
27495         * loader.h, loader.c: add mono_method_get_param_names().
27496         * class.c: 0-init class fields.
27497
27498 2001-11-26  Dick Porter  <dick@ximian.com>
27499
27500         * icall.c:
27501         * threads-types.h:
27502         * threads.c: New file that handles System.Threading on all platforms
27503
27504         * object.c: 
27505         * object.h: Remove the synchronisation struct from MonoObject,
27506         replace it with a pointer that gets initialised on demand
27507
27508         * Makefile.am: Replace all the system-specific threading code with
27509         a single file that uses the new wrapper library
27510
27511 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
27512
27513         * class.c, class.h: add mono_install_trampoline() so that the runtime
27514         can register a function to create a trampoline: removes the ugly
27515         requirement that a runtime needed to export arch_create_jit_trampoline.
27516         * object.h, object.c: added mono_install_handler() so that the runtime
27517         can install an handler for exceptions generated in C code (with
27518         mono_raise_exception()). Added C struct for System.Delegate.
27519         * pedump.c: removed arch_create_jit_trampoline.
27520         * reflection.c: some cleanups to allow registering user strings and
27521         later getting a token for methodrefs and fieldrefs before the assembly
27522         is built.
27523         * row-indexes.h: updates and fixes from the new ECMA specs.
27524
27525 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
27526
27527         * class.h, class.c: add enum_basetype field to MonoClass.
27528         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
27529         to get index in the constant table reated to a field, param or
27530         property.
27531         * reflection.h, reflection.c: handle constructors. Set public-key and
27532         version number of the built assembly to 0.
27533         * row-indexes.h: update from new ECMA spec.
27534
27535 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27536
27537         * class.h, class.c: add a max_interface_id to MonoClass.
27538         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
27539         since it's used to do that. Added mono_type_type_from_obj().
27540         Make GetType() return NULL instead of segfaulting if the type was not
27541         found. Handle simple arrays in assQualifiedName.
27542         * object.h: add a struct to represent an Exception.
27543         * reflection.c: output call convention in method signature.
27544         Add code to support P/Invoke methods and fixed offsets for fields.
27545
27546 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
27547
27548         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
27549         the value.
27550         * icall.c: use mono_array_addr instead of array->vector: fixes the
27551         reflection image writing.
27552         * reflection.c: init call convention byte to 0 in method signature.
27553         Encode the property signature. Don't output property-related methods
27554         twice. Really process the properties for a type (don't cast a field to
27555         a property, my mom always told me that).
27556         Fix 64 bit issues in pointer alignment in a different and more
27557         readable way.
27558
27559 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
27560
27561         * loader.h: Removed type class from MonoDefaults, added monotype
27562
27563         * loader.c: Loaded MonoType, removed loading of Type
27564
27565         * icall.c (my_mono_new_object): Now returns a System.MonoType,
27566         and fills in System.Type._impl with a RuntimeTypeHandle rather
27567         than the actual MonoClass *
27568
27569         (ves_icall_type_from_handle): change from type_class to
27570         monotype_class
27571
27572         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
27573         implemented
27574
27575         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
27576         implemented
27577
27578         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
27579
27580         (ves_icall_System_Reflection_Assembly_GetType): implemented
27581
27582         (ves_icall_System_MonoType_assQualifiedName): implemented
27583
27584         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
27585
27586 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
27587
27588         * assembly.c (mono_assembly_open): Implement a cache for the
27589         assemblies. 
27590
27591         (mono_assembly_close): only destroy the assembly when the last
27592         reference is gone.
27593         
27594 2001-11-09  Dick Porter  <dick@ximian.com>
27595
27596         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
27597
27598 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
27599
27600         * class.c (mono_class_metadata_init): bug fix: compute the right slot
27601
27602 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27603
27604         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
27605         from Martin Weindel.
27606         * object.h: add mono_string_chars ().
27607
27608 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
27609
27610         * reflection.c (build_compressed_metadata): Eliminates warnings
27611         and uses 64-bit clean code.
27612
27613         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
27614         (mono_type_equal): Change signature to eliminate warnings.
27615
27616 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27617
27618         * icall.c, loader.c: remove the internalcall array constructors.
27619         Changes to match the new MonoArray structure.
27620         * object.h, object.c: an array object doesn't allocate an extra
27621         vector. Add mono_array_new_full () to create jagged arrays easily.
27622
27623 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27624
27625         * metadata.h, metadata.c: add mono_metadata_field_info () to
27626         retreive all the info about a field from vairous tables.
27627         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
27628         * class.h, class.c: augment MonoClassField with more info.
27629         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
27630         policy and load a field's RVA if needed.
27631
27632 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
27633
27634         * class.c (mono_class_metadata_init): create a trampoline for all
27635         virtual functions instead of actually compiling them.
27636
27637 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
27638
27639         * class.h, class.c: include name in MonoClassField.
27640         * class.c: fix fundamental type of System.Object and System.String.
27641         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
27642         tokens in ldtoken.
27643         * icall.c: remove internalcalls for the Reflection stuff that is now
27644         done in C# code.
27645         * loader.c: mono_field_from_memberref () implementation.
27646         * mono-endian.c: thinko (s/struct/union/g).
27647         * object.c, object.h: make the mono_string_* prototypes actually use
27648         MonoString instead of MonoObject.
27649         * reflection.c, reflection.h: updates for changes in the reflection
27650         code in corlib: we use C structures that map to the actual C# classes.
27651         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
27652         fat method header if needed and use the info from the ILGenerator for
27653         methods. Handle fields in types. Misc fixes.
27654
27655 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
27656
27657         * class.c (mono_class_metadata_init): bug fix: always allocate
27658         space for static class data
27659
27660 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
27661
27662         * class.c (mono_compute_relative_numbering): use relative
27663         numbering to support fast runtime type checks.
27664
27665 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
27666
27667         * class.c (mono_class_create_from_typeref): added debugging output
27668         to print class name when MonoDummy is returned instead of real class
27669
27670 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
27671
27672         * class.c (mono_class_metadata_init): interface offset table now
27673         contains pointers into the vtable - this is more efficient for the jit
27674
27675 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
27676
27677         * class.c (mono_class_metadata_init): use a temporary vtable (the
27678         old algorithm only worked for the interpreter, but not for the jit)
27679
27680 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
27681
27682         * loader.c (method_from_memberref): use mono_class_get to get the
27683         class of an array instead of using System.Array directly.
27684         (mono_get_method): also add MEMBERREF methods to the method cache
27685         which usefull for arrays.
27686
27687 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
27688
27689         * pedump.c (arch_compile_method): added to compute vtable entry
27690
27691         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
27692         number of interfaces.
27693         
27694         * class.h: merged MonoArrayClass into MonoClass
27695
27696         * class.c (mono_class_create_from_typedef): compute the vtable size and
27697         allocate space to include the vtable inside MonoClass
27698         (mono_class_metadata_init): initialize the vtable
27699
27700 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
27701
27702         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
27703         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
27704         * image.c: endian fixes by Laurent Rioux.
27705         * object.h, object.c: rename MonoStringObject to MonoString and
27706         MonoArrayObject to MonoArray. Change some function names to conform to
27707         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
27708         guint16* as first argument, so don't use char*.
27709         Provide macros to do the interesting things on arrays in a portable way.
27710         * threads-pthread.c: updates for the API changes and #include <sched.h>
27711         (required for sched_yield()).
27712         * icall.c: updates for the API changes above.
27713         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
27714         platforms that need them.
27715
27716 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
27717
27718         * class.c: set the correct type for all the fundamental
27719         type when loading the class.
27720
27721 2001-10-05  Dick Porter  <dick@ximian.com>
27722
27723         * threads-pthread.c (pthread_mutex_timedlock): Simple
27724         compatibility version for C libraries that lack this call.
27725
27726 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27727
27728         * class.c: MonoTypes stored in MonoClass are stored as
27729         fundamental MonoTypes when the class represents a
27730         fundamental type (System.Int32, ...).
27731         The TypeHandle return by ldtoken is a MonoType*.
27732         * icall.c: ves_icall_get_data_chunk () write out all the
27733         PE/COFF stuff. Implement ves_icall_define_method (),
27734         ves_icall_set_method_body (), ves_icall_type_from_handle ().
27735         * image.c: properly skip unknown streams.
27736         * loader.h, loader.c: add type_class to mono_defaults.
27737         * metadata.c, metadata.h: export compute_size () as
27738         mono_metadata_compute_size () with a better interface.
27739         Typo and C&P fixes.
27740         * pedump.c: don't try to print the entry point RVA if there is no entry point.
27741         * reflection.c, reflection.h: many cleanups, fixes, output method
27742         signatures and headers, typedef and typeref info, compress the metadata
27743         tables, output all the heap streams, cli header etc.
27744         * row-indexes.h: typo fixes.
27745
27746 2001-10-04  Dick Porter  <dick@ximian.com>
27747
27748         * object.h: Add a synchronisation mutex struct to MonoObject
27749
27750         * object.c (mono_new_object): Initialise the object
27751         synchronisation mutexes
27752
27753         * icall.c: System.Threading.Monitor internal calls
27754         
27755         * threads-pthread.h:
27756         * threads-pthread.c: System.Threading.Monitor internal calls
27757
27758         * threads-types.h: New file, includes the system-specific thread
27759         structures
27760         
27761         * threads-pthread-types.h:
27762         * threads-pthread-types.c: New files, handle pthread-specific
27763         synchronisation types
27764
27765         * threads-dummy-types.h: 
27766         * threads-dummy-types.c: New files of dummy support for
27767         thread-specific types
27768
27769         * metadata.c:
27770         * image.c:
27771         * pedump.c: include mono-endian.h not endian.h
27772         
27773         * Makefile.am: More threads files.
27774         Name mono-endian.h not endian.h
27775
27776 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
27777
27778         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
27779         stuff and implement a few more bits.
27780         * icall.c: a field needs to be dereferenced twice. Do not use the same
27781         name for two variables in the same scope.
27782         * image.c, image.h: cleanups.
27783
27784 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
27785
27786         * class.c (mono_class_metadata_init): bug fix: compute the right size
27787
27788 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
27789
27790         * icall.c: implemented some of the Reflection internalcalls.
27791         * image.c, image.h: start writing out the PE/COFF image.
27792         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
27793         that does the reverse than decode_blob_size ().
27794         * object.c: use mono_metadata_encode_value (). Move here
27795         temporary implementation of mono_string_to_utf8 ().
27796         * rawbuffer.c: make malloc_map static.
27797
27798 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27799
27800         * metadata.c: fix type comparison for arrays.
27801         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
27802         Added a couple of new classes to monodefaults.
27803         * icall.c: added a couple of Reflection-related internalcalls.
27804         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
27805         Added a byval_arg MonoType to MonoClass.
27806
27807 2001-09-28  Dick Porter  <dick@ximian.com>
27808
27809         * icall.c:
27810         * threads-pthread.h: 
27811         * threads-pthread.c: Implemented internal calls for
27812         LocalDataStoreSlot operations.  Applied mutexes around all shared
27813         data.  Reworked the thread creation and Start() operations to
27814         avoid a race condition.
27815         
27816         * threads-dummy.h:
27817         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
27818
27819 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
27820
27821         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
27822
27823 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
27824
27825         * class.c, loader.c: warn and return NULL instead of erroring out.
27826         * icall.c: added System.AppDomain::getCurDomain().
27827         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
27828
27829 2001-09-25  Dick Porter  <dick@ximian.com>
27830
27831         * threads-pthread.h:
27832         * threads-pthread.c: Implemented timed thread joining and added
27833         System.Threading.Thread::Join_internal internal call
27834
27835         * icall.c: Added System.Threading.Thread::Join_internal internal call
27836
27837         * threads-dummy.h:
27838         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
27839
27840 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
27841
27842         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
27843         mono_string_intern () to implement the semantics of the ldstr opcode
27844         and the interning of System.Strings.
27845         * icall.c: provide hooks to make String::IsIntern and String::Intern
27846         internalcalls.
27847
27848 2001-09-23  Dick Porter  <dick@ximian.com>
27849
27850         * threads-dummy.c: 
27851         * threads-dummy.h: New files of dummy threading routines
27852
27853         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
27854         support code based on system specifics
27855
27856         Rename PTHREAD_LIBS to THREAD_LIBS
27857         
27858 2001-09-23  Dick Porter  <dick@ximian.com>
27859
27860         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
27861         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
27862         internal calls.
27863         (mono_thread_init): Set up a Thread object instance to return when
27864         the main thread calls Thread.CurrentThread
27865         (mono_thread_cleanup): Wait for all subthreads to exit
27866
27867         * icall.c: New internal calls for System.Threading.Thread::Sleep
27868         (including Schedule) and CurrentThread
27869
27870         * threads.h: New file, to insulate thread-specific stuff from the
27871         rest of the code
27872
27873 2001-09-21  Dick Porter  <dick@ximian.com>
27874
27875         * threads-pthread.h: 
27876         * threads-pthread.c: New file, for handling pthreads-style
27877         threading support.  Start() now starts a new thread and executes
27878         the ThreadStart delegate instance.
27879
27880         * icall.c: Added the internalcall for
27881         System.Threading.Thread::Start_internal
27882
27883         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
27884
27885 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
27886
27887         * loader.c: work around the different signatures for delegates
27888         constructors csc generates in compiled code vs the ones compiled in mscorlib.
27889
27890 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
27891
27892         * class.h, class.c: add mono_class_get_field_from_name ().
27893         * *: Fix C comments and other ANSI C issues.
27894
27895 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
27896
27897         * endian.h, assembly.c: fix some endianness issues.
27898
27899 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
27900
27901         * loader.h, load.c: add delegate_class to mono_defaults.
27902         Handle runtime provided methods in mono_get_method ().
27903
27904 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
27905
27906         * loader.c (mono_get_method): use pinvoke for internal call
27907
27908         * icall.c: use pinvoke for internal call
27909
27910         * loader.c (method_from_memberref): set the method name
27911
27912 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
27913
27914         * metadata.c: help the compiler generate better code for
27915         mono_class_from_mono_type ().
27916
27917 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
27918
27919         * class.c (mono_class_metadata_init): delayed computing of the
27920         class size to mono_class_metadata_init ()
27921
27922 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
27923
27924         * class.c, class.h: add an interfaces member to MonoClass.
27925         * image.c, image.h: add assembly_name field to MonoImage
27926         from the assembly table.
27927         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
27928
27929 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
27930
27931         * class.c: Handle Array in mono_class_from_mono_type ().
27932         * metadata.c, pedump.c: some endian fixes.
27933
27934 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
27935
27936         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
27937         * metadata.c: fix small problem introduced with the latest commit.
27938
27939 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
27940
27941         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
27942         We don't need a MonoMetadata pointer anymore to compare signatures in
27943         mono_metadata_signature_equal (), update callers.
27944         Reduced memory usage an number of allocations for MonoMethodHeader and
27945         MonoMethodSignature.
27946
27947 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
27948
27949         * metadata.c: added compare for szarray.
27950
27951 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
27952
27953         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
27954         and add a couple more types to it and mono_defaults. Give an hint on
27955         classes that need implementing in our corlib and are referenced
27956         in mscorlib.
27957
27958 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
27959
27960         * class.h, class.c: keep track if a class is also an Enum.
27961         * loader.c: Implement a couple more types for use in libffi
27962         marshalling. Gives better diagnostics when failing to dlopen
27963         a library. Set method->klass for P/Invoke methods, too.
27964
27965 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
27966
27967         * class.c, class.h: add a MonoType this_arg to MonoClass that
27968         represents a pointer to an object of the class' type that
27969         can be used by the interpreter and later the type cache.
27970         Add best guess alignment info for valuetype objects.
27971
27972 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
27973
27974         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
27975         into MonoType: one less level of indirection and allocation and
27976         simplifies quite a bit of code. Added cache for MonoTypes that are
27977         used frequently, so that we don't need to allocate them all the time.
27978
27979 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
27980
27981         * class.c (mono_class_create_from_typedef): System.Enum is also a
27982         value type, although it does not derive from System.ValueType
27983         (maybe a bug in the ms compiler?)
27984
27985         * metadata.c (mono_type_size): return the right size for value types
27986
27987         * loader.c (mono_get_method): only initialize method header if not abstract
27988
27989         * class.c (mono_class_from_mono_type): use mono_default values. 
27990
27991 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
27992
27993         * *: use MonoClass pointers instead of <type_tokens>
27994         
27995         * class.h: new flag: metadata_inited.
27996
27997         * class.c (mono_class_metadata_init): impl.
27998         (mono_class_instance_size): impl.
27999         (mono_class_data_size): impl.
28000
28001 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
28002
28003         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
28004         MonoClass now has the name and name_space fields. 
28005         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
28006         mono_get_method () takes and optional MonoClass as argument.
28007         Removed mono_typedef_from_name() and added mono_class_token_from_name()
28008         instead that takes advantage of a map from class names to typedef
28009         tokens in MonoImage.
28010
28011 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
28012
28013         * metadata.c: zero is not a valid alignment boundary.
28014         Merge MONO_TYPE_VOID in default decoding code.
28015
28016 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
28017
28018         * image.h: merged MonoMetadata into MonoImage
28019
28020         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
28021         identify the type of elements.
28022
28023 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
28024
28025         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
28026         * cil-coff.h: split MonoMSDOSHeader and add size info.
28027         * image.c: add some consistency checks.
28028         * metadata.c: fix row size computation: one programmer
28029         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
28030         add explanation for the locator routine.
28031         Fix decoding of size in method header.
28032         
28033 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
28034
28035         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
28036         (g_concat_dir_and_file): Bring g_concat_dir_and_file
28037         function from gnome-libs.  This uses the right path separator
28038         based on the OS, and also works around a bug in some systems where
28039         a double slash is not allowed. 
28040         (default_assembly_name_resolver): Use g_concat_dir_and_file
28041         (mono_assembly_open): ditto.
28042
28043 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
28044
28045         * metadata.c (mono_metadata_signature_equal): impl.
28046
28047         * *: void is now a realy MonoType (instead of using NULL)
28048         
28049         * metadata.c (do_mono_metadata_parse_type): use
28050         mono_metadata_parse_type to parse void value.
28051
28052 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
28053
28054         * metadata.c, metadata.h: in the signature and method header store
28055         only the space required for holding the loca vars and incoming arguments.
28056
28057 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
28058
28059         * metadata.c (do_mono_metadata_parse_type): treat void like any
28060         other type (instead of assigning NULL);
28061
28062 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
28063
28064         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
28065
28066 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
28067
28068         * image.c (do_mono_image_open): added a cache for arrays.
28069
28070 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28071
28072         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
28073         decode a single column from a row in a metadata table and changes
28074         to take advantage of it in the typedef locator (gives a nice speed up).
28075         Store offset info for function params.
28076
28077 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
28078
28079         * image.h (MONO_IMAGE_IS_CORLIB): removed 
28080
28081 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
28082
28083         * assembly.c: how could mono_assembly_close () had ever worked?
28084         * metadata.c, metadata.h: provide offset info for local vars.
28085         Implement mono_type_size () to take care of alignment as well
28086         as size (it was mono_field_type_size in cli/class.c before).
28087
28088 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
28089
28090         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
28091
28092         * assembly.h (CORLIB_NAME): set to corlib.dll
28093
28094         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
28095
28096 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
28097
28098         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
28099         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
28100         tokentype.h: massive namespace cleanup.
28101
28102 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
28103
28104         * metadata.h, metadata.c: decode exception clauses when parsing method header.
28105
28106 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
28107
28108         * metadata.c (mono_metadata_free_type): added check for type !=
28109         NULL (void) before calling mono_metadata_free_type()
28110
28111 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
28112
28113         * metadata.h, row_indexes.h: added header with enumerations to use
28114         to index in the columns from tables in metadata and to decode coded
28115         tokens: we should start using this instead of embedding magic numbers
28116         all over the code.
28117
28118 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
28119
28120         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
28121         Move metadata_t info from cli_image_info_t to MonoImage, where
28122         it's easily accessible. Changed all the uses accordingly.
28123         Added the method and class caches to MonoImage.
28124         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
28125         and mono_metadata_decode_value () signature to be more consistent
28126         with the other parse functions (and simplify code). Taken advantage
28127         of zero-length array allocation with GCC. Removed reduntant (and
28128         wrong) MonoFieldType struct and use MonoParam instead. Changed
28129         mono_metadata_parse_field_type () to use common code for parsing.
28130         Added mono_metadata_typedef_from_field () and
28131         mono_metadata_typedef_from_method () to lookup a typedef index from a
28132         field or method token.
28133         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
28134
28135 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
28136
28137         * metadata.c (mono_metadata_parse_field_type): Implement. 
28138         (do_mono_metadata_parse_type): Split engine from
28139         mono_metadata_parse_type, so that we can create smaller structures
28140         for things that just have one pointer to the MonoType (look at
28141         the MonoFieldType)
28142
28143 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
28144
28145         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
28146         as Jan Gray found out, it is incorrect. 
28147
28148 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
28149
28150         * assembly.c: Implement asssembly loading.  This loads an image
28151         and loads all the referenced assemblies.  Come to think of it, we
28152         could always do lazy loading of the assemblies. 
28153
28154         * image.c (mono_image_open): Keep loaded images in a hashtable.
28155
28156         * image.h (MonoImage): Add reference count.
28157
28158 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
28159
28160         * assembly.c (mono_assembly_open): Keep track of the file name in
28161         case the assembly has no ASSEMBLY table.
28162
28163         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
28164         from get.c here.
28165
28166 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
28167
28168         * metadata.c, metadata.h: decode local vars in method header
28169         parse function. Change callers accordingly.
28170
28171 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
28172
28173         * metadata.h, cil-coff.h: protect against multiple inclusion.
28174         Added some new structures to hold information decoded from metadata:
28175         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
28176         and relevant decoding/free functions.
28177         * metadata.c: implement decoding functions. Add warning for out of bounds
28178         index in mono_metadata_locate(). Implement mono_get_method () to retreive
28179         all the info about a method signature and invocation. Remove check on
28180         uninitialized local var in parse_mh() and fix memory leak.
28181
28182 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
28183
28184         * metadata.h: More macros.
28185
28186         * tokentype.h: New file.
28187
28188 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
28189
28190         * assembly.c: added a consistency check and initialize
28191         some structures with g_new0().
28192         * metadata.c: fixed a couple more bugs in table size computation
28193         and add other checks for out-of bound access to metadata.
28194
28195 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
28196
28197         * metatada.c: fix bugs computing table sizes. Spew a
28198         warning when index in string heap is out of bounds.
28199
28200 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
28201
28202         * metadata.h: Add a couple of macros to manipulate tokens. 
28203
28204 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
28205
28206         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
28207         cli_section_tables).
28208
28209 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
28210
28211         * metadata.c (mono_metadata_user_string): New function, provides
28212         access to the UserString heap. 
28213
28214 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
28215
28216         * metadata.c: Add inline documentation.
28217
28218 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
28219
28220         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
28221         files. 
28222
28223 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
28224
28225         * typeattr.h: New file, TypeAttribute flags. 
28226
28227 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
28228
28229         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
28230         mono_assembly_ensure_section): Section loading code.
28231         (load_section_tables): Load the sections.
28232
28233         * mono/metadata/metadata.c (mono_metadata_locate_token,
28234         mono_metadata_locate): Functions to locate the information
28235         definition given a token or a table and an index.
28236         (mono_metadata_compute_table_bases): New.
28237         (compute_size): New function to compute the sizes of the various
28238         tables.
28239
28240         * mono/metadata/metadata.h: Finish listing the different index
28241         types. 
28242
28243         * mono/metadata/pedump.c: Improve to dump new information.
28244
28245 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
28246
28247         * mono/metadata/metadata.c: Entered all the tables matching
28248         Beta2. 
28249
28250         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
28251
28252
28253