3651c4934aa3c72ca2b94388a2968afd51116e5d
[mono.git] / mono / metadata / ChangeLog
1 2010-07-09 Rodrigo Kumpera  <rkumpera@novell.com>
2
3         * class.c (mono_method_can_access_method_full): Handle type
4         accessibility with very deep nested types.
5
6         * class.c (mono_method_can_access_field_full): Ditto.
7
8         Fixes #619300.
9
10 2010-07-10  Mark Probst  <mark.probst@gmail.com>
11
12         * sgen-gc.c, sgen-los.c, sgen-major-copying.c, sgen-marksweep.c,
13         sgen-scan-object.h: Use a macro for rounding up sizes and
14         addresses to ALLOC_ALIGN.
15
16 2010-07-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
17
18         * file-io.c: fix GetFileSystemEntries for patterns containing
19         directories.
20
21 2010-07-09  Mark Probst  <mark.probst@gmail.com>
22
23         * sgen-marksweep.c (major_finish_major_collection): Don't free
24         major heap blocks on 32 bit platforms because it can lead to
25         address space fragmentation.  We'll figure this out later.
26
27 2010-07-09  Mark Probst  <mark.probst@gmail.com>
28
29         * sgen-marksweep.c, sgen-gc.c, sgen-major-copying.c: Free major
30         heap blocks for mark&sweep eventually.
31
32 2010-07-09  Mark Probst  <mark.probst@gmail.com>
33
34         * sgen-protocol.c: Fix build when binary protocol is disabled.
35
36 2010-07-09  Mark Probst  <mark.probst@gmail.com>
37
38         * sgen-protocol.c, sgen-gc.c: Make binary protocol lock-freely
39         thread-safe.
40
41 2010-07-08 Neale Ferguson <neale@sinenomine.net>
42
43         * sgen-archdep.h: Add support for s390x
44         * domain.c: Use gsize so that 64-bit big endian systems produce 
45         bitmap.
46
47 2010-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
48
49         * pedump.c (verify_image_file): Initialize the vtable as well.
50
51 2010-07-07  Geoff Norton  <gnorton@novell.com>
52
53         * sgen-gc.h:  Not every system has sys/signal.h.  Prefer the posix
54         header.
55
56 2010-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
57
58         * assembly.c (mono_assembly_load_reference): Replace a g_warning
59         with a mono_trace calls. This makes compiling MD a lot less scary.
60
61 2010-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
62
63         * verify.c (do_stobj): Improve error message.
64
65 2010-07-08  Mark Probst  <mark.probst@gmail.com>
66
67         * sgen-gc.c (OBJ_COMPLEX_ARR_FOREACH_PTR): Don't load the vtable
68         from the object because it might have pinned/forwarding bits set.
69
70 2010-07-06  Zoltan Varga  <vargaz@gmail.com>
71
72         * Makefile.am (sgen_sources): Add missing sgen files.
73
74 2010-06-07  Martin Baulig  <martin@ximian.com>
75
76         * mono-debug-debugger.c (mono_debugger_get_thread_abort_signal):
77         New helper function since mono_thread_get_abort_signal() is now
78         internal.
79
80 2010-06-07  Martin Baulig  <martin@ximian.com>
81
82         * mono-debug.h, debug-mono-symfile.h: Kill glib dependencies.
83
84 2010-07-02  Michael Hutchinson  <mhutchinson@novell.com>
85
86         * object-internals.h, object.h: Make mono_string_to_utf_8_checked 
87         public, as mono_string_to_utf_8 is deprecated.
88
89         * object.(c|h): Added mono_object_to_string, a public helper function 
90         that calls ToString on a MonoObject and returns a MonoString.
91
92         * object.c (mono_print_unhandled_exception): Use mono_object_to_string.
93
94 2010-07-01  Zoltan Varga  <vargaz@gmail.com>
95
96         * filewatcher.h filewatcher.h decimal.c threads-types.h: Applied patch
97         from Elijah Taylor (elijahtaylor@google.com). Fix some definitions to
98         match their declarations and vice-versa.
99
100
101 Wed Jun 30 12:08:36 CEST 2010 Paolo Molaro <lupus@ximian.com>
102
103         * class-internals.h, domain-internals.h: mark functions that are
104         needed by the llvm module.
105
106 2010-06-30 Rodrigo Kumpera  <rkumpera@novell.com>
107
108         * assembly.c (framework_assemblies): Add 3.5 assemblies.
109
110         * domain-internals.h (MonoRuntimeInfo): Increase version_sets
111         by one to have room to remap 3.5 assemblies.
112
113         * domain.c (supported_runtimes): Add 3.5 remapping information.
114
115 2010-06-30 Rodrigo Kumpera  <rkumpera@novell.com>
116
117         * reflection.c (mono_image_create_token): Handle a
118         FieldBuilder from a different assembly.
119
120         Fixes #611836.
121
122 2010-06-30 Rodrigo Kumpera  <rkumpera@novell.com>
123
124         * verify.c (do_store_static_field): Improve error
125         message.
126
127 2010-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
128
129         * assembly.c: Revert r159692 since it breaks loading 3.5
130         assemblies under 2.0.
131
132 2010-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
133
134         * icall.c (ves_icall_Type_make_array_type): Raise a TLE if a
135         TypedByRef is passed.
136
137         * icall.c (ves_icall_Type_make_byref_type): Ditto.
138
139         * icall.c (ves_icall_Type_MakePointerType): Ditto.
140
141         Fixes #612780.
142
143 2010-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
144
145         * assembly.c: Add a few more assemblies to the list of framework
146         assemblies.
147
148         Fixes #617714.
149
150 2010-06-28  Zoltan Varga  <vargaz@gmail.com>
151
152         * class.c (mono_class_get_vtable_entry): Avoid a crash if mono_class_setup_vtable ()
153         fails.
154
155 2010-06-25  Mark Probst  <mark.probst@gmail.com>
156
157         * class.c (mono_class_inflate_generic_method_full_checked): Added
158         a comment regarding a hack in mini-trampolines.c.
159
160 2010-06-26  Zoltan Varga  <vargaz@gmail.com>
161
162         * sgen-gc.c (mono_gc_wbarrier_value_copy_bitmap): Use SIZEOF_VOID_P instead of
163         sizeof(SIZEOF_VOID_P) which is 4.
164
165         * gc.c (mono_gc_init): Move the GC disabled check to *-gc.c.
166
167 2010-06-25  Zoltan Varga  <vargaz@gmail.com>
168
169         * null-gc.c boehm-gc.c: Define the mono_gc_ pthread wrapper functions for these
170         GCs too.
171
172         * *-gc.c (mono_gc_wbarrier_value_copy_bitmap): Implement this for all GCs.
173
174         * sgen-gc.c (mono_gc_is_moving): New function returning whenever this GC can move
175         objects.
176
177         * *-gc.c (mono_gc_set_desktop_mode): New function setting up the GC to work in
178         desktop mode.
179
180 2010-06-25  Zoltan Varga  <vargaz@gmail.com>
181
182         * *-gc.c (mono_gc_get_description): New function returning a human readable
183         description of the current GC.
184
185 2010-06-24  Miguel de Icaza  <miguel@novell.com>
186
187         * mono-hash.c: Moved here from mono/utils as this file is
188         GC-aware, and the utils directory is not.
189
190 2010-06-23  Miguel de Icaza  <miguel@novell.com>
191
192         * Makefile.am: Add support for building a sgen-aware versions of
193         the libraries: libmonoruntimesgen.la libmonoruntimesgen-static.la,
194         they share all the components of the default, but use a differen
195         set of CFLAGS to enable SGEN instead.
196
197         Put the BOEHM defines in the CFLAGS definition. 
198
199         * domain-internals.h (MonoJitInfo): this structure used to have
200         different sizes depending on the GC that was configured (Boehm vs
201         SGen).   I have removed this difference for the sake of avoiding
202         the complexity of dealing with the mono/arch directory requiring
203         GC-specific changes to their Makefiles.
204
205 2010-06-23  Mark Probst  <mark.probst@gmail.com>
206
207         * sgen-gc.c, sgen-los.c, sgen-marksweep.c: Fix warnings.
208
209 2010-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
210
211         * metadata.c (mono_metadata_type_hash): Don't hash
212         the type kind for dynamic types since it can change.
213
214 2010-06-22 Geoff Norton  <gnorton@novell.com>
215
216         * sgen-os-mach.c: We cannot call malloc from the gc, so we need to use
217         alloca instead to prevent a deadlock.
218
219 2010-06-22  Geoff Norton  <gnorton@novell.com>
220
221         * domain.c: Allow gettings the tls key, since we need it for
222         cross thread tls poking in sgen-mach
223         * sgen-gc.(c|h), gc-internal.h: Rework sgen into having some functions
224         in external files for platform specific STW support.
225         * sgen-os-mach.c: Add a new mach kernel backend implementation of STW.
226         * sgen-os-posix.c: Move the existing posix signal based STW here.
227
228 2010-06-21  Zoltan Varga  <vargaz@gmail.com>
229
230         * marshal.c (mono_array_to_lparray): Allow MONO_TYPE_PTR. Fixes #615952.
231
232 2010-06-21 Rodrigo Kumpera  <rkumpera@novell.com>
233
234         * object-internals.h: Map new PropertyBuilder fields.
235
236         * reflection.c (property_encode_signature): Emit an instance
237         signature if property's callconv is hasthis.
238
239         * appdomain.c: Bump corlib version.
240
241 2010-06-20  Jb Evain  <jbevain@novell.com>
242
243         * metadata-verify.c: do not consider the assembly invalid if it
244         doesn't have a #Blob stream as resource assemblies don't
245         necessarily have one.
246
247 2010-06-17  Geoff Norton  <gnorton@novell.com>
248
249         * sgen-archdep.h: sgen support for arm linux and darwin.
250
251 2010-06-17  Zoltan Varga  <vargaz@gmail.com>
252
253         * loader.c (mono_method_get_header): Avoid a crash if the declaring method
254         has a faulty header.
255
256 2010-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
257
258         * sgen-gc.c (mono_gc_wbarrier_value_copy_bitmap): Work in a similar
259         way to mono_gc_wbarrier_value_copy but takes a bitmap that
260         indicates which slots need a write barrier.
261
262 2010-06-14  Jonathan Pryor <jpryor@novell.com>
263
264         * Makefile.am (EXTRA_DIST): Add runtime.h.
265
266 2010-06-14  Zoltan Varga  <vargaz@gmail.com>
267
268         * object.c (build_imt_slots): Don't crash if callbacks.get_imt_trampoline is not set.
269
270 2010-06-11  Zoltan Varga  <vargaz@gmail.com>
271
272         * object.c (mono_method_add_generic_virtual_invocation): Fix the computation of the
273         IMT slot which is passed to callbacks.get_imt_trampoline.
274
275 2010-06-11  Zoltan Varga  <vargaz@gmail.com>
276
277         * object.c: Use a callback to create IMT trampolines, allowing the usage of one
278         imt trampoline per imt slot when using LLVM.
279
280 2010-06-10  Jonathan Pryor <jpryor@novell.com>
281
282         * object.c (mono_runtime_run_main): Move fire_process_exit_event() into
283           runtime.c:mono_runtime_shutdown().
284         * runtime.c: Added; adds mono_runtime_shutdown(), which invokes the
285           AppDomain.ProcessExit event in all AppDomains.
286
287 2010-06-06  Zoltan Varga  <vargaz@gmail.com>
288
289         * marshal.c (mono_marshal_get_runtime_invoke): Don't set *exc to NULL, it is now
290         done by the caller.
291
292 2010-06-05  Mark Probst  <mark.probst@gmail.com>
293
294         * sgen-los.c: Keep bitmaps on chunk usage in LOS sections to speed
295         up freeing.
296
297 2010-06-05  Mark Probst  <mark.probst@gmail.com>
298
299         * sgen-gc.c, sgen-los.c: New LOS allocator that allocates large
300         segments of memory at once, to reduce the number of mmap/munmap
301         calls.
302
303 2010-06-05  Mark Probst  <mark.probst@gmail.com>
304
305         * sgen-gc.c, sgen-protocol.c, sgen-protocol.h: Protocol degraded
306         allocations and distinguish between normal, degraded and pinned
307         allocations.
308
309 2010-06-05  Mark Probst  <mark.probst@gmail.com>
310
311         * sgen-gc.c, sgen-major-copying.c, sgen-marksweep.c: Make degraded
312         allocations count toward major collections and trigger major
313         collections from degraded allocations if appropriate.
314
315 2010-06-05  Mark Probst  <mark.probst@gmail.com>
316
317         * sgen-marksweep.c (ms_get_empty_block): Update heap boundaries.
318
319 2010-06-05  Mark Probst  <mark.probst@gmail.com>
320
321         * sgen-gc.c: Enable mark&sweep again.
322
323 2010-06-05  Mark Probst  <mark.probst@gmail.com>
324
325         * sgen-gc.c: Increase the maximum small object size to 8000 bytes.
326
327 2010-06-05  Mark Probst  <mark.probst@gmail.com>
328
329         * sgen-gc.c, sgen-major-copying.c, sgen-marksweep.c: Have only one
330         major heap allowance for minor collections, instead of two
331         separate ones for small and large objects.  This reduces the
332         number of major collections.
333
334 2010-06-04  Marek Habersack  <mhabersack@novell.com>
335
336         * icall.c (ves_icall_MonoType_GetEvent): be case insensitive is
337         the BFLAGS_IgnoreCase is raised
338
339 2010-06-03  Zoltan Varga  <vargaz@gmail.com>
340
341         * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Rewrite this so it returns
342         all information in a single structure. Return information about scopes as well.
343
344         * mono-debug.c (mono_debug_lookup_locals): Ditto.
345
346 2010-06-02  Geoff Norton  <gnorton@novell.com>
347
348         * appdomain.c: If we are running with IOMAP we might
349         have been provided a string that isn't case-aware for our file-
350         system, so we need to use io-portability to check if the file 
351         exists, rather than a simple glib test.
352
353         Fixes #608849
354
355 2010-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
356
357         * verify.c (verify_generic_parameters): Verify if
358         there are not loops in constraints.
359
360 2010-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
361
362         * verify.c (is_compatible_boxed_valuetype): Constaints
363         must be recursively checked if one generic argument
364         has a constraint on another.
365
366         Fixes #610625.
367
368 2010-05-31  Miguel de Icaza  <miguel@novell.com>
369
370         * console-unix.c (terminal_get_dimensions): Fix my previous
371         botched commit and return the actual value obtained from the ioctl.
372
373 2010-05-29  Mark Probst  <mark.probst@gmail.com>
374
375         * sgen-gc.c: Always use DESC_TYPE_RUN_LENGTH for objects without
376         references so that we don't have to do the cache-cold fetch of the
377         class in copy_object_no_checks().
378
379 2010-05-29  Robert Jordan  <robertj@gmx.net>
380
381         * marshal.c (mono_marshal_asany): marshal LPWSTRs using
382         mono_marshal_string_to_utf16_copy () to avoid memory allocation
383         mismatches under Windows. Fixes pinvoke2:test_0_asany.
384
385 2010-05-28  Mark Probst  <mark.probst@gmail.com>
386
387         * sgen-gc.c: Change default nursery size to 4MB, because it
388         improves performance on many applications and benchmarks.
389
390 2010-05-28  Mark Probst  <mark.probst@gmail.com>
391
392         * sgen-gc.c, sgen-scan-object.h: Value types in arrays are not
393         always aligned to ALLOC_ALIGN.  To handle this, shift the size in
394         the GC descriptor by one bit, and don't encode the size for value
395         types not containing references.  Also get rid of
396         DESC_TYPE_STRING.
397
398 2010-05-28  Mark Probst  <mark.probst@gmail.com>
399
400         * sgen-gc.c: Don't depend on the size encoded in a GC descriptor
401         other than for remset processing.
402
403 2010-05-28  Mark Probst  <mark.probst@gmail.com>
404
405         * sgen-gc.c: More and better remset consistency checks.
406
407 2010-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
408
409         * sgen-gc.c: Add a note about the int[] trick to avoid some
410         memset.
411
412 2010-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
413
414         * sgen-gc.c (sort_addresses): Use heap sort since it has better
415         performance.
416
417         This helps programs with lots of threads or thread with big stacks
418         since the bottleneck the pin queue can get quite big.
419
420 2010-05-26 Rodrigo Kumpera  <rkumpera@novell.com>
421
422         * sgen-gc.c (search_fragment_for_size): Move fragment setup into
423         a separate function called setup_fragment.
424
425         * sgen-gc.c (search_fragment_for_size_range): Variant of
426         search_fragment_for_size that does search for a secondary smaller
427         size.
428
429         * sgen-gc.c (mono_gc_alloc_obj_nolock): Use search_fragment_for_size_range
430         for tlab allocation so small fragments are used.
431
432         This patch uses small fragments for tlab allocation when possible in order
433         to improve nursery utilization. With a fixed size tlab this patch is not very
434         usefull but once size gets dynamically adjusted, this will be invaluable.
435
436         Performance under pystone 500k is unchanged. Nursery utilization improves by
437         3.5% and 18 more fragments are used per minor GC.
438
439         Performance under modified binary-tree is unchanged. Nursery utilization
440         improves by 0.5% and 3 more fragments are used per minor GC.
441
442         These numbers make sense since as more pinning happens, more fragments are
443         created and so are the chances of having a bunch of small ones.
444
445 2010-05-26 Rodrigo Kumpera  <rkumpera@novell.com>
446         * sgen-gc.c (mono_gc_alloc_obj_nolock): Avoid wasting space     from
447         the current fragment when allocating a TLAB.
448
449         Reduces number of pystone 500k minor collections by 7%.
450
451 2010-05-25  Martin Baulig  <martin@ximian.com>
452
453         Applying a patch from Lucas Meijer <lucas@lucasmeijer.com>.
454
455         * debug-mono-symfile.c: Release memory from symfiles that were
456         loaded from memory.
457
458 2010-05-24  Zoltan Varga  <vargaz@gmail.com>
459
460         * marshal.c (mono_marshal_free_dynamic_wrappers): Avoid an assert when this is called
461         during shutdown.
462
463 2010-05-22  Zoltan Varga  <vargaz@gmail.com>
464
465         * marshal.c (mono_marshal_get_runtime_invoke): Simplify the code computing the
466         target class and remove some dead code.
467
468 2010-05-22  Zoltan Varga  <vargaz@gmail.com>
469
470         * metadata.c: Add a 'transient' argument to the MonoType creation functions, so
471         the MonoTypes inside method headers can be freed when the header is freed.
472
473 2010-05-21  Zoltan Varga  <vargaz@gmail.com>
474
475         * threadpool.c: Fix the DISABLE_SOCKETS build.
476
477 2010-05-19 Martin Baulig  <martin@novell.com>
478
479         Fix #604911.
480
481         * threads.c (wait_for_tids_or_state_change): Use an
482         alertable WaitForMultipleObjectsEx().
483         (wait_for_tids): Likewise.
484
485 2010-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
486
487         * marshal.c (mono_marshal_init): Register mono_gchandle_get_target
488         icall.
489
490         * marshal.c (mono_delegate_to_ftnptr): Use a gchandle instead of
491         gc tracked memory.
492
493         * marshal.c (mono_marshal_emit_managed_wrapper): Retrieve the first
494         argument from a gchandle.
495
496         * marshal.c: Get rid of the delegate_target_locations hash table.
497
498         Fixes #605295.
499
500 2010-05-17 Rodrigo Kumpera  <rkumpera@novell.com>
501
502         * sgen-gc.c: Use _fast variants for string and array length.
503
504 2010-05-17 Rodrigo Kumpera  <rkumpera@novell.com>
505
506         * sgen-gc.c: Fix counters to be 64 bits.
507
508         * sgen-gc.c (dump_heap): Fix formating strings.
509
510 2010-05-17 Rodrigo Kumpera  <rkumpera@novell.com>
511
512         * sgen-gc.c (global_remset_location_was_not_added): New
513         function that implements a 2 element LRU cache for just
514         added remsets. It is used to avoid adding duplicate ones.
515
516         * sgen-gc.c (add_to_global_remset): Check cache before
517         adding new entry.
518
519         * sgen-gc.c (scan_from_remsets): Don't process global remsets
520         that fail the cache test.
521
522         * sgen-gc.c (scan_from_remsets): Simplify the global remset
523         loop removing one condtion that is not possible.
524
525         A 2 element LRU cache was chosen by profiling IronPython 2.6
526         pytones with 1M passes and corlib compilation.
527
528         For the ipy test duplication was originally 940.92, measured
529         by "Store remsets" divided by "Unique store remsets".
530
531         With a 2-element LRU, duplication went to 1.007. Without the
532         check in scan_from_remsets 1.438.
533
534         With a 16-elements LRU, duplication reduction was negligibe.
535         A single element cache was basically of no use.
536
537         With corlib compilation duplication went from  1.4 to 1.02.
538
539         Performance results is a 20% time decrease for ipy and 2%
540         with corlib.
541 2010-05-16  Zoltan Varga  <vargaz@gmail.com>
542
543         * mono-debug.c (mono_debug_cleanup): Fix a crash in the previous change.
544
545 2010-05-15  Geoff Norton  <gnorton@novell.com>
546
547         * mono-debug.c: Fix a leak of the global table on shutdown.
548
549 2010-05-15  Geoff Norton  <gnorton@novell.com>
550
551         * debug-mono-symfile.(c|h): Add mono_debug_symfile_free_location
552         to clean up MonoDebugSourceLocation's.
553
554 2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
555
556         * class.c (mono_class_create_from_typedef): Fail a class
557         if there is a loop with its parent.
558
559         Fixes #598239.
560
561 2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
562
563         * loader.c (mono_loader_set_error_type_load): Convert
564         a g_warninig to mono_trace_warning.
565
566 2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
567
568         * class.c (mono_class_get_full): Release strings on failure
569         to avoid leaking them.
570
571 2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
572
573         * class.c (mono_class_create_from_typedef): Only return
574         the class if no exceptions were detected.
575
576         * class.c (mono_class_create_from_typedef): Don't remove
577         broken classes from class_cache. Just set failure and
578         bail out.
579
580         This fixes a memory a memory leak where resolving the same
581         broken class multiple times resulted in a memory leak.
582
583         The right behavior would be to actually return the class
584         a let the caller figure it out.
585
586 2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
587
588         * mono-ptr-array.h: Add mono_ptr_array_sort.
589
590         * reflection.c (mono_image_build_metadata): Replace that ugly
591         qsort call with mono_ptr_array_sort.
592
593 2010-05-13  Mark Probst  <mark.probst@gmail.com>
594
595         * sgen-gc.c: Switch to the copying major collector, because
596         Mark&Sweep is still buggy.
597
598 2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
599
600         * reflection.c (mono_image_build_metadata): Don't put managed
601         references on non-tracked memory.
602
603 2010-05-13  Zoltan Varga  <vargaz@gmail.com>
604
605         * sgen-archdep.h (ARCH_COPY_SIGCTX_REGS): Fix this for amd64.
606
607 2010-05-12 Rodrigo Kumpera  <rkumpera@novell.com>
608
609         * icall.c: Switch to mono-ptr-array.h.
610
611 2010-05-12 Rodrigo Kumpera  <rkumpera@novell.com>
612
613         * Makefile.am: Add mono-ptr-array.h.
614
615         * mono-ptr-array.h: New header that implements
616         a GC tracked equivalent of g_ptr_array. 
617
618 2010-05-12 Rodrigo Kumpera  <rkumpera@novell.com>
619
620         * icall.c (ves_icall_Type_GetInterfaces): Rewrite this
621         method to avoid initializing the class.
622
623         Fixes #605115.
624
625 2010-05-12 Rodrigo Kumpera  <rkumpera@novell.com>
626
627         * icall.c (ves_icall_System_MonoType_getFullName): It
628         doesn't require to init the class.
629
630 2010-05-11  Miguel de Icaza  <miguel@novell.com>
631
632         * console-unix.c: Signal handlers now save and restore errno.   We
633         have never had a bug report about this, ioctl does change errno. 
634
635         Hide the unused method.   
636
637         Remove internal declarations from public headers.
638
639         Document what the signal handler is doing
640
641 2010-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
642
643         * sgen-gc.c (clear_unreachable_ephemerons): Clear
644         unreachable keys with a tombstone.
645
646         * sgen-gc.c (mark_ephemerons_in_range): Ignore
647         tombstone keys.
648
649 2010-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
650
651         * icall-def.h:
652         * gc-internals.h:
653         * gc.c: New GC:get_ephemeron_tombstone.
654
655 2010-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
656
657         * appdomain.c (create_exceptions): Rename to
658         create_domain_objects. Create the ephemeron tombstone object.
659
660         * domains-internals.h (MonoDomain): Add new field for the
661         ephemeron tombstone.
662
663         * domain.c (mono_domain_free): Set ephemeron_tombstone to
664         NULL.
665
666 2010-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
667
668         * sgen-gc.c (mono_gc_clear_domain): Both ephemerons
669         and dislinks must be processed before LOS since they
670         could end up with pointers to memory returned to the
671         OS.
672
673 2010-05-11  Zoltan Varga  <vargaz@gmail.com>
674
675         * class.c (mono_class_alloc): New helper function to centralize memory allocation
676         for classes, allocates either from the image mempool or from the heap.
677
678         * class.c: Use mono_class_alloc to allocate memory owned by classes.
679
680         * metadata.c (free_generic_class_dependents): Free more items belonging to
681         generic classes.
682
683 2010-05-10  Zoltan Varga  <vargaz@gmail.com>
684
685         * reflection.c (mono_reflection_method_get_handle): Handle MonoGenericMethod
686         as well. Fixes #604054.
687
688 2010-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
689
690         * metadata-verify.c: MS doesn't mind duplicates in the
691         typeref table. Move it to full verification.
692
693         Fixes #600508.
694
695 2010-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
696
697         * image.c (do_mono_image_load): Report verification
698         errors when loading an image fails.
699
700 2010-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
701
702         * reflection.c (mono_type_get_object): Remove chunk of code
703         no longer in use.
704
705 2010-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
706
707         * icall-def.h
708         * icall.c: Delete some unused icalls.
709
710 2010-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
711
712         * appdomain.c (mono_domain_has_type_resolve): Check for
713         NULL domain objects to make pedump happy.
714
715         * object.c (mono_field_get_value): Assert on NULL object.
716         It's the caller resposibility to check for this.
717
718         * object.c (mono_field_get_value_object): Ditto.
719
720         Fixes #601384.
721
722 2010-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
723
724         * icall.c (ves_icall_type_is_subtype_of): Non iface subtype
725         checks can avoid doing a mono_class_init.
726
727         * icall.c: Remove mono_class_init from a bunch of icalls that
728         don't need it.
729
730         Hopefully we're now lazy enough to fix most victims of #601431.
731
732 2010-05-07  Mark Probst  <mark.probst@gmail.com>
733
734         * sgen-gc.c: Remove REMSET_ROOT_LOCATION.
735
736 2010-05-07  Mark Probst  <mark.probst@gmail.com>
737
738         * sgen-gc.c: Remove unnecessary checks in domain clearing code.
739
740 2010-05-07  Marek Habersack  <mhabersack@novell.com>
741
742         * culture-info-tables.h: updated to include en-TT culture. Fixes
743         bug #594035
744
745 2010-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
746
747         Move mono_class_init from mono_type_get_object to icalls.
748         This causes massive memory savings for Assembly::GetTypes () and
749         make it fail a lot less due to missing dependencies.
750
751         This is a conservative, naive change as it doesn't remove some
752         mono_class_init from places that might not need them. Carefull
753         review of those should follow.
754
755         * reflection.c (mono_type_get_object): Don't mono_class_init the
756         returning type.
757
758         * reflection.c:
759         * cominterop.c:
760         * icall.c:
761         * marshal.c: Call mono_class_init in functions receiving a MonoType
762         object.
763
764         First step into fixing #601431.
765
766 2010-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
767
768         * gc-internal.h: Add new functions required for ephemeron support.
769
770         * gc.c: Implement ves_icall_System_GC_register_ephemeron_array.
771
772         * icall-def.h: Add GC::register_ephemeron_array.
773
774         * object.c (compute_class_bitmap): sys.rt.cs.Ephemeronis an opaque type
775         under sgen. Its fields must not be marked.
776
777         * sgen-gc.c (mono_gc_clear_domain): Call cleanup function for ephemerons.
778
779         * sgen-gc.c (finish_gray_stack): Mark all reachable ephemerons before
780         handling finalizable objects. Clean dead ones after all finalizable
781         handling.
782
783         * sgen-gc.c (dump_heap): Add new kind of internal memory.
784
785         * sgen-gc.c (null_ephemerons_for_domain): Remove from the list ephemeron
786         arrays from the dead domain.
787
788         * sgen-gc.c (clear_unreachable_ephemerons): Clear dead ephemerons entries.
789
790         * sgen-gc.c (mark_ephemerons_in_range): Mark/Copy all ephemeron values
791         whose keys are reachable.
792
793         * sgen-gc.c (mono_gc_ephemeron_array_add): Register the array into the
794         list of live ephemeron arrays.
795
796 2010-05-05 Rodrigo Kumpera  <rkumpera@novell.com>
797
798         * class.c (mono_class_layout_fields): Don't perform alignment
799         if align is zero.
800
801         * class.c (mono_class_layout_fields): Init field related information
802         to sane defaults.
803
804 2010-05-05 Rodrigo Kumpera  <rkumpera@novell.com>
805
806         * verify.c (mono_verifier_verify_class): Verify the constraint
807         of generic type definitions.
808
809 2010-05-04  Mark Probst  <mark.probst@gmail.com>
810
811         * sgen-marksweep.c: Simplify free list maintenance in sweep.
812
813 2010-05-02  Mark Probst  <mark.probst@gmail.com>
814
815         * sgen-gc.c, sgen-marksweep.c, sgen-major-copying.c: Unify
816         major_do_collection() across the two major collectors.
817
818 2010-05-02  Mark Probst  <mark.probst@gmail.com>
819
820         * sgen-gc.c: Add heavy statistics counter for re-added global
821         remsets.
822
823 2010-05-02  Mark Probst  <mark.probst@gmail.com>
824
825         * sgen-marksweep.c, sgen-gc.c: Use one mark bit per ALLOC_ALIGN to
826         get rid of a division in critical code.
827
828 2010-04-29  Mark Probst  <mark.probst@gmail.com>
829
830         * sgen-gc.c, sgen-marksweep.c, sgen-major-copying.c: Have separate
831         blocks for objects without references in mark&sweep, to improve
832         performance.
833
834 2010-04-28  Mark Probst  <mark.probst@gmail.com>
835
836         * sgen-gc.c, sgen-marksweep.c, sgen-major-copying.c: Bring heavy
837         statistics up-to-date.
838
839 2010-04-27  Mark Probst  <mark.probst@gmail.com>
840
841         * sgen-gc.c, sgen-marksweep.c, sgen-major-copying.c: Support
842         heap-dump for mark&sweep.
843
844 2010-04-27  Zoltan Varga  <vargaz@gmail.com>
845
846         * loader.c (mono_method_get_header): Move the is_inflated case before the
847         wrapper case, as a method can be both.
848
849 2010-04-27  Mark Probst  <mark.probst@gmail.com>
850
851         * sgen-gc.c, sgen-marksweep.c, sgen-major-copying.c: Don't do a
852         separate pass to scan pinned and large object but use the gray
853         queue like for regular objects.
854
855 2010-04-26  Zoltan Varga  <vargaz@gmail.com>
856
857         * boehm-gc.c: Applied patch from Robert Nagy (robert@openbsd.org). Include
858         string.h for memmove.
859
860         socket-io.c: Applied patch from Robert Nagy (robert@openbsd.org).
861         ipaddress_to_struct_in6_addr() is only needed when
862         defined(HAVE_STRUCT_IP_MREQN) || defined(HAVE_STRUCT_IP_MREQ).
863
864 2010-04-25  Mark Probst  <mark.probst@gmail.com>
865
866         * sgen-gc.c, sgen-marksweep.c, sgen-major-copying.c: Properly
867         separate copy_object functions for major vs nursery.  Allows us to
868         get rid of a few checks and the start and end parameters for many
869         functions.
870
871 2010-04-25  Mark Probst  <mark.probst@gmail.com>
872
873         * sgen-marksweep.c, sgen-gc.c, sgen-major-copying.c,
874         sgen-protocol.c, sgen-protocol.h, Makefile.am: Major Mark&Sweep
875         collector.
876
877 2010-04-25  Zoltan Varga  <vargaz@gmail.com>
878
879         * class.c (mono_class_create_from_typedef): Initialize class->nested_in after
880         calling setup_mono_type () since the nested parent could recursively reference
881         the nested class using generic constraints. Fixes #599469.
882
883 2010-04-24  Mark Probst  <mark.probst@gmail.com>
884
885         * sgen-gc.c, sgen-pinning.c, sgen-major-copying.c: Major collector
886         abstraction.
887
888 2010-04-24  Mark Probst  <mark.probst@gmail.com>
889
890         * sgen-gc.c: Remove more unneeded code.
891
892 2010-04-24  Mark Probst  <mark.probst@gmail.com>
893
894         * sgen-gc.c: Disable managed allocator and wbarrier when the
895         binary protocol is enabled.
896
897 2010-04-24  Mark Probst  <mark.probst@gmail.com>
898
899         * sgen-gc.c: Put nursery-fragment-cleaning into its own function.
900
901 2010-04-24  Mark Probst  <mark.probst@gmail.com>
902
903         * sgen-gc.c: Remove a few commented out and unneeded bits.
904
905 2010-04-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
906
907         * threadpool.c: patch from Robert Nagy that fixes a nullref and
908         uses mono_sem_wait instead of mono_sem_timedwait for openbsd.
909
910 2010-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
911
912         * icall.c (ves_icall_type_is_assignable_from): Properly handle byref
913         types.
914
915         Fixes #331126
916
917 2010-04-21  Mark Probst  <mark.probst@gmail.com>
918
919         * sgen-gc.c: Turn off semi-precise stack mark.
920
921 2010-04-20  Sebastien Pouliot  <sebastien@ximian.com>
922
923         * reflection.c (mono_custom_attrs_from_index): Use right function
924         to free 'list' (i.e. g_list_free) if the verifier fails.
925
926 2010-04-19 Rodrigo Kumpera  <rkumpera@novell.com>
927
928                 * verify.c: Handle the case where mono_type_get_underlying_type_any
929                 returns NULL. Remove duplicated code between MONO_TYPE_GENERICINST
930                 and MONO_TYPE_VALUETYPE in those case.
931
932                 Based on a slightly modified patch by Sebastien Pouliot  <sebastien@ximian.com>
933
934                 Hopefully Fixes #564253.
935
936 2010-04-19 Gonzalo Paniagua Javier <gonzalo@novell.com>
937
938         * domain-internals.h: made threadpool_jobs volatile.
939         * mono-wsq.c: add an assert to verify that the threadpool cleaned up
940         all local jobs.
941         * threadpool.c:
942                 -When two threads try to initialize the socket IO pool,
943                 the second one waits until the intialization is finished
944                 instead of continuing right away.
945                 -Add checks for domain unload: no items added in this case.
946                 -Only measure the time every 10 elements added to the queue.
947                 This is an experiment since linux x86 gettimeofday() sucks.
948                 -Create new thread if there are none waiting for work items.
949                 -There was a missing decrement of the busy threads.
950                 -Make sure the local queue is cleaned up before exiting the
951                 thread when the program ends.
952
953 2010-04-19 Rodrigo Kumpera  <rkumpera@novell.com>
954
955         * reflection.c (mono_type_get_object): Normalize generics types
956         as to how managed code expect them to be. A generic instance over
957         the GTD arguments must have the same mirror as the GTD itself.
958
959         Fixes #473289.
960
961 2010-04-19  Zoltan Varga  <vargaz@gmail.com>
962
963         * locales.c: Implement support for DISABLE_NORMALIZATION.
964
965 2010-04-16  Zoltan Varga  <vargaz@gmail.com>
966
967         * marshal.c (mono_marshal_get_native_func_wrapper): Set the marshal info to NULL,
968         since it is not a MonoMethod.
969
970 2010-04-16  Sebastien Pouliot  <sebastien@ximian.com>
971
972         * icall-def.h: Add get_RequiresElevatedPermissions icall to
973         System.Security.SecurityManager - used only by Moonlight
974         * security-core-clr.c|h: Add Elevated Trust/Permission support
975         for CoreCLR / Moonlight
976
977 2010-04-16  Zoltan Varga  <vargaz@gmail.com>
978
979         * boehm-gc.c (mono_gc_base_init): Applied patch from Robert Nagy
980         (robert@openbsd.org). Fix GC_stackbottom calculation on OpenBSD.
981
982 2010-04-16  Marek Habersack  <mhabersack@novell.com>
983
984         * mono-perfcounters.c: added code for the "Mono
985         Memory/Total Physical Memory" performance counter.
986
987         * mono-perfcounters-def.h: added definition of the "Mono
988         Memory/Total Physical Memory" performance counter.
989
990 2010-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
991
992         * class.c (mono_class_get_method_by_index): Return NULL
993         on type load failures.
994
995 2010-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
996
997         * class.c (mono_class_from_typeref): Check if the supplied
998         image has an assembly bound to it.
999
1000         Fixes #567884.
1001
1002 2010-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1003
1004         * loader.c (mono_method_get_signature_full): Use new function
1005         inflate_generic_signature_checked to check for errors.
1006
1007         Fixes #560839.
1008
1009 2010-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1010
1011         * loader.c (inflate_generic_signature): Add _checked variant
1012         and move this function to use it.
1013
1014 2010-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1015
1016         * class.c (mono_class_setup_vtable_general): Use error checking
1017         version of mono_class_inflate_generic_method_full.
1018
1019         Fixes #596975.
1020
1021 2010-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1022
1023         * class.c (mono_class_inflate_generic_type_no_copy): Do proper
1024         error handling passing MonoError around.
1025
1026         Fixes #560336.
1027
1028 2010-04-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
1029
1030         * socket-io.c: make GetHostByName ("") work on windows.
1031         Fixes bug #456723.
1032
1033 2010-04-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
1034
1035         * object-internals.h:
1036         * threads.c: use a spin lock when accesing the per-thread appdomain
1037         list.
1038
1039 2010-04-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
1040
1041         * threads.c: no need to take the threads lock in push/pop appdomain.
1042
1043 2010-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1044
1045         * reflection.c (_mono_reflection_parse_type): MS supports
1046         non-assembly-qualified types in a generic type parameter list
1047         when enclosed in '[]' (which signals that they should be a fqn).
1048
1049         This breaks ECMA specs for how type names are encoded in cattr
1050         blobs but F# does it.
1051
1052         Fixes #576342.
1053
1054 2010-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1055
1056         * icall.c (ves_icall_InternalInvoke): Check if the vtable is sane
1057         for instance methods/ctors.
1058
1059         Fixes #422113.
1060
1061 2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1062
1063         * reflection.c: Use the new verifier support for checking
1064         custom attributes.
1065
1066         Fixes #595306.
1067
1068 2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1069
1070         * metadata-verify.c: Implement structural verification
1071         of custom attributes. This check requires access to the
1072         loader since to resolve the size of an enum we have to
1073         look it up.
1074         We don't check if named argumenments are encoded in a
1075         compatible fashion to their underlying field/prop.
1076         Maybe we should?
1077
1078         * verify-internals.h: Add two new cattr verification API.
1079
1080 2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1081
1082         * metadata-verify.c (decode_signature_header): Fix signature.
1083
1084 2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1085
1086         * verify.c (mono_verifier_is_enabled_for_method): Handle
1087         assembly less images.
1088
1089         * verify.c (mono_verifier_is_class_full_trust): Ditto.
1090
1091 2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1092
1093         * loader.c (mono_method_signature_checked): Properly
1094         init MonoError.
1095
1096         * loader.c (mono_method_signature): It's the calee
1097         resposibility to init the error object.
1098
1099 2010-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
1100
1101         * metadata-verify.c (decode_signature_header): Do proper
1102         overflow checking.
1103
1104 Tue Apr 13 12:36:29 CEST 2010 Paolo Molaro <lupus@ximian.com>
1105
1106         * reflection.c: maintain the invariants required by
1107         mono_class_layout_fields() also in typebuilder_setup_fields ().
1108
1109 2010-04-11  Sebastien Pouliot  <sebastien@ximian.com>
1110
1111         * security-core-clr.c: Call mono_class_setup_methods in 
1112         get_default_ctor before checking klass->methods. Fix typo in
1113         comment
1114
1115 2010-04-10  Jb Evain  <jbevain@novell.com>
1116
1117         * domain.c (supported_runtimes): remove .net 4.0 beta 2 and
1118         add .net 4.0 RTM version.
1119
1120 2010-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1121
1122         * reflection.c (resolve_object): Properly inflate generic
1123         methods when a context is supplied.
1124
1125         Fixes #591226.
1126
1127 2010-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1128
1129         * verify.c (mono_method_verify): A switch op don't empty
1130         the stack for the next one. Fixes a bug when running fsi
1131         under --verify-all.
1132
1133 2010-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1134
1135         * metadata-verify.c (is_valid_standalonesig_blob): Accept
1136         fields as valid standalone sig too. F# does generate them.
1137
1138         * metadata-verify.c (verify_typedef_table_full): Ignore
1139         what <module> extends.
1140
1141 2010-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1142
1143         * verify.c (do_invoke_method): It's ok to do use call with
1144         virtual, non-final methods if their class is sealed.
1145
1146 2010-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1147
1148         * icall.c (ves_icall_MonoField_GetValueInternal): This function
1149         is a near identical copy of mono_field_get_value_object. So simply
1150         call it.
1151
1152         * object.c (mono_field_get_value_object): Handle literal fields
1153         on open generic classes.
1154
1155         Fixes #594942.
1156
1157 2010-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1158
1159         * reflection.c (mono_reflection_create_runtime_class): Setup
1160         parent/supertype information again since it can be changed
1161         without notice.
1162
1163 2010-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1164
1165         * verify.c (verify_type_compatibility_full): Properly handle
1166         stores between arrays of primitives.
1167
1168         Fixes the verifier side of #555950.
1169
1170 2010-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1171
1172         class.c (mono_bounded_array_class_get): Properly init
1173         cast_class to take the fact that uint[] and int[] can be
1174         casted between each other.
1175
1176         Fixes #555950.
1177
1178 2010-04-07  Geoff Norton  <gnorton@novell.com>
1179
1180         * domain.c: Avoid a deadlock on osx.  Fixes #565765
1181
1182 2010-04-08  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * icall.c (ves_icall_System_Enum_ToObject): Avoid a crash for unfinished type
1185         builders. Fixes #594464.
1186
1187 2010-04-08  Zoltan Varga  <vargaz@gmail.com>
1188
1189         * icall.c (ves_icall_System_Environment_Exit): Shutdown the threadpool before
1190         waiting for all threads to suspend, as those threads can't be suspended.
1191
1192 2010-04-08  Zoltan Varga  <vargaz@gmail.com>
1193
1194         * threads.c (mono_thread_suspend_all_other_threads): Call ensure_synch_cs_set ()
1195         to avoid crashes on newly created threads.
1196
1197 2010-04-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
1198
1199         * file-io.c: reset the MonoIOStat structure in case of error.
1200         Fixes bug #582667.
1201
1202 2010-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
1203
1204         * class.c (print_implemented_interfaces): Print proper type name.
1205
1206         * class.c (mono_class_setup_vtable): Don't try that hard to produce
1207         the override map for generic instances since it later ignored.
1208
1209         * class.c (mono_class_implement_interface_slow): Don't break for
1210         dynamic generic instances.
1211
1212         * object.c (mono_runtime_invoke_array): Add an assert for allocation.
1213
1214         * reflection.c (mono_reflection_method_get_handle): New method that
1215         resolves a method handle.
1216
1217         * reflection.c (mono_reflection_get_dynamic_overrides): Handle the
1218         case when we override methods from a dynamic generic instance interface.
1219
1220         Fixes #575941.
1221
1222 2010-04-05 Gonzalo Paniagua Javier <gonzalo@novell.com>
1223
1224         * threadpool.c: don't attempt to close the pipe when it has not been
1225         created.
1226
1227 2010-04-05 Gonzalo Paniagua Javier <gonzalo@novell.com>
1228
1229         * threadpool.c: if there are no waiting threads, try to start a new
1230         one. This fixes the not-so-random hangs in System.ServiceModel tests.
1231         No need to use InterlockedCompareExchange to read volatile variables.
1232
1233 2010-04-05 Rodrigo Kumpera  <rkumpera@novell.com>
1234
1235         * verify.c (verify_type_compatibility_full): Fail mixed valuetype
1236         and reference types that point to the same class.
1237
1238         Fixes #565598.
1239
1240 2010-04-05 Rodrigo Kumpera  <rkumpera@novell.com>
1241
1242         * verify.c (verify_stack_type_compatibility_full): Ignore constraints
1243         when verifying compatibility between a generic instance and a generic
1244         parameter.
1245
1246         * verify.c (check_is_valid_type_for_field_ops): Improve error message.
1247
1248         * verify.c (stack_slot_stack_type_full_name): Improve verification type
1249         name.
1250
1251         Fixes #587849.
1252
1253 2010-04-04  Mark Probst  <mark.probst@gmail.com>
1254
1255         * sgen-gc.c: Remove superfluous scanning of alloc-pinned objects.
1256
1257 2010-04-04  Zoltan Varga  <vargaz@gmail.com>
1258
1259         * threads.c Applied some openbsd changes from Robert Nagy <robert@openbsd.org>.
1260
1261 2010-04-03  Marek Habersack  <mhabersack@novell.com>
1262
1263         * process.c: when cross-compiling with MinGW, force GetProcessId
1264         lookup using GetProcAddress.
1265
1266 2010-04-02  Mark Probst  <mark.probst@gmail.com>
1267
1268         * sgen-gc.c: parse_environment_string_extract_number() must be
1269         static.
1270
1271 2010-04-02  Mark Probst  <mark.probst@gmail.com>
1272
1273         * sgen-gc.c, sgen-gray.c: Macros for gray_object_enqueue() and
1274         gray_object_dequeue(), to make sure they're inlined.
1275
1276 2010-04-02  Mark Probst  <mark.probst@gmail.com>
1277
1278         * sgen-gc.c, sgen-gray.c: Fix a few debug levels, put a few
1279         asserts in inner loops into DEBUG and lower MAX_DEBUG_LEVEL.
1280
1281 2010-04-02  Jb Evain  <jbevain@novell.com>
1282
1283         * exception.c: remove dead code.
1284
1285 2010-04-02  Zoltan Varga  <vargaz@gmail.com>
1286
1287         * *-gc.c: Fix the signature of mono_gc_get_used/heap_size () to be consistent
1288         with mono-gc.h.
1289
1290 2010-04-01  Sanjoy Das <sanjoy@playingwithpointers.com>
1291
1292         * sgen-gc.c: Make the nursery size adjustable by the
1293         MONO_GC_PARAMS environment variable.
1294
1295         Code is contributed under MIT/X11 license.
1296
1297 2010-04-01 Gonzalo Paniagua Javier <gonzalo@novell.com>
1298
1299         * threadpool.c: threadpool threads wait is alertable.
1300         Fixes bug #592964.
1301         Reduced the stack size of the *poll_wait thread.
1302
1303 2010-04-01  Sebastien Pouliot  <sebastien@ximian.com>
1304
1305         * exception.c|metadata-internals.h: Add new mono_get_exception_
1306         field_access_msg and mono_get_exception_method_access_msg 
1307         functions that accept a const char* parameter to provide more 
1308         details when the exception is thrown.
1309         * security-core-clr.c|h: Rework code to allow logging exceptions
1310         (export MONO_LOG_MASK="security") and to supply more details in
1311         [TypeLoad|MethodAccess|FieldAccess]Exception thrown. Also added
1312         mono_security_core_clr_is_field_access_allowed and 
1313         mono_security_core_clr_is_call_allowed to return an exception,
1314         with messages and logging, that can be emitted by method-to-ir.c
1315
1316 2010-04-01  Mark Probst  <mark.probst@gmail.com>
1317
1318         * sgen-gc.c, sgen-pinning-stats.c: In the heap-dump, dump each
1319         pinned object.
1320
1321 2010-04-01  Zoltan Varga  <vargaz@gmail.com>
1322
1323         * appdomain.c (mono_domain_assembly_postload_search): Avoid a crash/assert if
1324         the assembly name is not well formed utf8. Fixes #567882.
1325
1326 2010-04-01  Zoltan Varga  <vargaz@gmail.com>
1327
1328         * reflection.c (mono_reflection_create_generic_class): Set the flags field of
1329         the generic parameters from the builder. Fixes #473298.
1330
1331 2010-03-31  Miguel de Icaza  <miguel@novell.com>
1332
1333         * object.c (mono_class_proxy_vtable): Eliminate warning. 
1334
1335         * marshal.c (emit_marshal_boolean): Eliminate possible
1336         uninitialized local warning. 
1337
1338 2010-03-30  Sebastien Pouliot  <sebastien@ximian.com>
1339
1340         * class.c (mono_class_init): Postpone coreclr inheritance check
1341         until the end of the initialization (so we can check up the 
1342         default ctor manually for the core-clr inheritance rules).
1343         * security-core-clr.c: Add the missing (undocumented) checks on
1344         default constructors when verifying inheritance rules.
1345
1346 2010-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
1347
1348         * domain-internals.h (MonoJitExceptionInfo): Add new field
1349         handler_end to the data union. To be used to point the end
1350         of a finally block.
1351
1352 2010-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
1353
1354         * reflection.c: Add support for new v4 type
1355         System.Reflection.MonoModule that is the concrete version
1356         of Module which is abstract unver v4.
1357
1358 2010-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
1359
1360         * class.c (mono_class_init): Don't set class failure after
1361         inited = 1 is set. It must be done before.
1362
1363 2010-03-30  Andreas Färber  <andreas.faerber@web.de>
1364
1365         * mono-config.c: Add support for OS "haiku"
1366         * ChangeLog: Fix UTF-8 encoding
1367
1368         Code is contributed under MIT/X11 license.
1369
1370 Tue Mar 30 15:53:06 CEST 2010 Paolo Molaro <lupus@ximian.com>
1371
1372         * console-unix.c: fixed include logic for sys/ioctl.h.
1373
1374 2010-03-30  Mark Probst  <mark.probst@gmail.com>
1375
1376         * threads.c: Fix bitmap generation for TLS marking on 64 bit
1377         systems.
1378
1379 2010-03-30  Zoltan Varga  <vargaz@gmail.com>
1380
1381         * icall.c (ves_icall_System_Enum_get_underlying_type): Don't crash on
1382         unfinished/broken typebuilders.
1383
1384 2010-03-29  Mark Probst  <mark.probst@gmail.com>
1385
1386         * sgen-gc.c: Use the same heuristic for the LOS target that we use
1387         for the minor section allowance.
1388
1389 2010-03-29  Raja R Harinath  <harinath@hurrynot.org>
1390
1391         * metadata-verify.c (INVALID_METHOD_IMPLFLAG_BITS): Allow bit 6
1392         "NoOptimization".
1393
1394 2010-03-29  Mark Probst  <mark.probst@gmail.com>
1395
1396         * sgen-gc.c: Count bytes allocated with heavy statistics.
1397
1398 2010-03-29  Mark Probst  <mark.probst@gmail.com>
1399
1400         * sgen-gc.c: More detailed time statistics.
1401
1402 Mon Mar 29 11:52:34 CEST 2010 Paolo Molaro <lupus@ximian.com>
1403
1404         * gc-internal.h, sgen-gc.c, threads.c, utils/mono-hash.c:
1405         fix the user defined mark interface to pass a pointer
1406         to the object location and not the object itself.
1407
1408 2010-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
1409
1410         * reflection.c (mono_method_body_get_object): Release
1411         the method header before the call to CACHE_OBJECT since
1412         this is a macro that returns.
1413
1414 2010-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1415
1416         * class.c (inflate_generic_type): mono_metadata_type_dup
1417         already dupes array information, the g_memdup was just
1418         leaking memory.
1419
1420 2010-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1421
1422         * verify.c: Add stack_peek function. Fix CEE_DUP
1423         to not read from invalid memory if push did expand
1424         the stack.
1425
1426 2010-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1427
1428         * verify.c: Remove old table verification code that has
1429         been superseeded by the new metadata verifier.
1430
1431         * verify.h: Remove mono_image_verify_tables from the public
1432         API.
1433
1434         * pedump.c: Fix for removed bits.
1435
1436 2010-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
1437
1438         * verify.c: Allocate stack slows lazily to reduce stack usage
1439         in case of methods with huge stacks. Reduces memory consumption
1440         for mcs yyparse from 459Mb to 1.8Mb.
1441
1442 2010-03-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1443
1444         * threadpool.c: don't try executing items from domains being
1445         unloaded. Fixes appdomain-async-invoke test.
1446
1447 2010-03-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1448
1449         * threadpool.c: spin while the threadpool initializes.
1450         * mono-wsq.c: if the WSQ has not been initialized or has been shut
1451         down, don't do anything.
1452
1453 2010-03-26  Zoltan Varga  <vargaz@gmail.com>
1454
1455         * threads.c (mono_thread_create_internal): Set the GC type of the
1456         threads_starting_up hash table.
1457
1458 2010-03-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1459
1460         * threadpool.c: reset 'state' to avoid returning non-null when the
1461         event type is not found.
1462
1463 Fri Mar 26 19:03:09 CET 2010 Paolo Molaro <lupus@ximian.com>
1464
1465         * sgen-gc.c: make copy_object () take the address of the
1466         slot holding the reference. This allows saving memory stores
1467         when not needed and it allows keeping track of oldspace->nursery
1468         references for the card table code.
1469
1470 2010-03-26  Andreas Färber  <andreas.faerber@web.de>
1471
1472         * null-gc.c (mono_gc_invoke_with_gc_lock): Fix function name.
1473
1474         Code is contributed under MIT/X11 license.
1475
1476 Fri Mar 26 11:33:17 CET 2010 Paolo Molaro <lupus@ximian.com>
1477
1478         * object.c, threads.c, threads-types.h, threads.h: make the
1479         managed thread local storage references precisely tracked.
1480
1481 2010-03-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
1482
1483         * threadpool.[ch]: reworked the threadpool:
1484                 -Threadpool threads use a work-stealing queue. Adding a work
1485                 item from a threadpool thread will queue it in the thread
1486                 local queue without locking (in most cases).
1487                 -epoll events are coalesced before being added to the IO
1488                 queue.
1489                 -Dynamically change the number of active threads
1490                 -Changed the global queue to be more GC friendly
1491
1492         * class-internals.h: add 2 new performance counters for the number of
1493         threads in the threadpool and the IO threadpool.
1494
1495         * object-internals.h: new field in MonoAsyncResult.
1496         * icall-def.h: new internal call for queueing work items.
1497
1498         * Makefile.am: add 2 new files.
1499
1500         * appdomain.c: bump up corlib version.
1501
1502         * mono-wsq.[ch]: an implementation of a work-stealing queue.
1503
1504         * mono-perfcounters-def.h:
1505         * mono-perfcounters.c: added 2 new performance counters.
1506
1507 2010-03-26  Mark Probst  <mark.probst@gmail.com>
1508
1509         * sgen-gc.c: More FIXME/TODO updates.
1510
1511 2010-03-25  Mark Probst  <mark.probst@gmail.com>
1512
1513         * gc-internal.h, sgen-gc.c, sgen-gc.h, boehm-gc.c, null-gc.c: New
1514         function mono_gc_invoke_with_gc_lock() which invokes a function
1515         with the guarantee that no collection will occur during its execution.
1516
1517 2010-03-25  Mark Probst  <mark.probst@gmail.com>
1518
1519         * sgen-gc.c: Update a few comments.
1520
1521 2010-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1522
1523         * reflection.c: Add support for new v4 type
1524         System.Reflection.MonoAssembly that is the concrete version
1525         of Assembly which is abstract unver v4.
1526
1527 2010-03-24  U-anarquia\miguel  <miguel@anarquia>
1528
1529         * reflection.c (mono_reflection_get_custom_attrs_info): Protect
1530         code that uses System.Reflection.Emit in DISABLE_REFLECTION_EMIT.
1531
1532         Expose a few macros that are needed for SR but not SRE to the
1533         world (previous inside the SRE ifdef)
1534
1535 2010-03-24  Mark Probst  <mark.probst@gmail.com>
1536
1537         * sgen-gc.c (gc_register_current_thread): We need
1538         stack_start_limit as well in the non-attribute pthread case.
1539
1540 2010-03-23 Rodrigo Kumpera  <rkumpera@novell.com>
1541
1542         * threads.c: Fix windows build.
1543
1544 2010-03-22 Rodrigo Kumpera  <rkumpera@novell.com>
1545
1546         * thread-types.h: Add mono_thread_resume_interruption.
1547
1548         * threads.c: Add mono_thread_resume_interruption, this
1549         function should be called after the last protected handler
1550         found at interruption time has finished.
1551
1552 2010-03-22 Rodrigo Kumpera  <rkumpera@novell.com>
1553
1554         * threads.c (ves_icall_System_Threading_Thread_ResetAbort):
1555         Check MonoInternalThread's ::state instead of ::abort_exc
1556         since the later can be lazily created.
1557
1558         This is specially problematic when running a finally block
1559         under AbortRequested state. ResetAbort must work, but the
1560         abort_exc object has not been created because interruption
1561         has not began.
1562
1563 2010-03-22  Geoff Norton  <gnorton@novell.com>
1564
1565         * locales.c: Its possible for CFStringGetCStringPtr
1566         to return null and not convert encodings.  Use
1567         CFStringGetCString instead.
1568
1569 Mon Mar 22 18:06:38 CET 2010 Paolo Molaro <lupus@ximian.com>
1570
1571         * class-internals.h, class.c, object.c: introduce compressed
1572         interface bitmaps (for now only under small config): this saves
1573         about 600 KB of runtime memory on gmcs bootstraps or monodevelop
1574         startups.
1575
1576 Mon Mar 22 16:03:34 CET 2010 Paolo Molaro <lupus@ximian.com>
1577
1578         * mono-debug.c: don't try to get the method header, it causes a
1579         deadlock and it is not used for anything anymore.
1580
1581 2010-03-22  Zoltan Varga  <vargaz@gmail.com>
1582
1583         * loader.c (mono_method_get_marshal_info): Fix the handling of dynamic methods
1584         broken by the last change.
1585
1586 2010-03-21  Andreas Färber  <andreas.faerber@web.de>
1587
1588         * socket-io.c: Don't depend on AF_SNA, AF_DECnet,
1589         SOCK_RDM.
1590         
1591         Code is contributed under MIT/X11 license.
1592
1593 2010-03-20  Sanjoy Das <sanjoy@playingwithpointers.com>
1594
1595         * sgen-gc.c (mono_gc_get_write_barrier): Handle non-aligned
1596         nursery.
1597
1598         Code is contributed under MIT/X11 license.
1599
1600 2010-03-19  Martin Baulig  <martin@ximian.com>
1601
1602         * mono-debug.c (MonoDebugWrapperData): Replace `cil_code' with a
1603         dummy field, containing an empty string.
1604         (mono_debug_add_method): Don't call mono_disasm_code() for wrappers.
1605
1606
1607 Fri Mar 19 17:26:43 CET 2010 Paolo Molaro <lupus@ximian.com>
1608
1609         * class.c: setup_interface_offsets() refactor to not call
1610         mono_class_get_implemented_interfaces () more times than needed and
1611         to reduce the runtime memory requirements to be O(num_interfaces)
1612         instead of O(max_interface_id).
1613
1614 2010-03-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
1615
1616         * mono-mlist.[ch]: add mono_mlist_set_next ().
1617
1618 2010-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
1619
1620         * domain-internals.h: Add MonoTryBlockHoleJitInfo struct and
1621         associated changes to support holes in the protected range of a
1622         try block.
1623
1624         * domain.c: Add mono_jit_info_get_try_block_hole_table_info, which
1625         retrieves the holes table from a given MonoJitInfo.
1626
1627 Tue Mar 16 13:11:15 CET 2010 Paolo Molaro <lupus@ximian.com>
1628
1629         * object.h, object-internals.h, object.c, icall.c, gc-internal.h,
1630         debug-helpers.c, cominterop.c, process.c, sgen-gc.c, socket-io.c:
1631         hide the contents of the MonoString and MonoArray structs from the
1632         public API. Change the accessor macros to accessors functions where
1633         needed. Adjusted the array API to allow for pointer-sized lengths and
1634         starting positions, so 64 bit arrays can be optionally provided in an
1635         API compatible way if needed on 64 bit systems.
1636
1637 Tue Mar 16 10:18:07 CET 2010 Paolo Molaro <lupus@ximian.com>
1638
1639         * class-internals.h, class.c, loader.c, marshal.c, metadata.c,
1640         reflection.c: the MonoMethodNormal struct is now unused, so remove it.
1641
1642 Mon Mar 15 18:28:00 CET 2010 Paolo Molaro <lupus@ximian.com>
1643
1644         * class-internals.h: remove the method header from MonoMethod since
1645         from now on it will be transient. We have a header pointer for method
1646         wrappers, since in that case we need to keep track of it. For this
1647         reason, all the Reflection.Emit generated methods use MonoMethodWrapper
1648         structs now. The same happens with MonoMethodInflated.
1649         * class.c: reset the sre_method flag for inflated method structures:
1650         this makes the code that cares look at the header in the MonoMethodInflated
1651         structure.
1652         * loader.c: lookup the method header in the appropriate field now that
1653         it is removed from MonoMethod.
1654         * metadata-internals.h: add a flag to the method header to know if it
1655         can be freed inside mono_metadata_free_mh ().
1656         * method-builder.c: updates after moving the header field from
1657         MonoMethod to MonoMethodWrapper.
1658         * reflection.c: MonoMethods generated from Reflection.Emit use
1659         MonoMethodWrapper structs if they need a method header now (later take
1660         advantage of this and remove all the current unsafe uses of method_aux_hash).
1661         * metadata.c: make method header parsing not leak when verification
1662         fails. Alloc it with g_malloc() and free it in mono_metadata_free_mh().
1663         These changes save a few hundred KB of runtime memory in a mcs
1664         bootstrap or a monodevelop startup.
1665
1666 2010-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1667
1668         * verify.c: Improve error message.
1669
1670 2010-03-12  Jb Evain  <jbevain@novell.com>
1671
1672         * reflection.c (add_exported_type): populate the exported
1673         table with the type's nested type.
1674
1675 2010-03-10  Mark Probst  <mark.probst@gmail.com>
1676
1677         * sgen-gc.c (STRING_SIZE): Semi-revert r153342.  I'm an idiot who
1678         can't read parentheses.
1679
1680 2010-03-10  Mark Probst  <mark.probst@gmail.com>
1681
1682         * threads.c (thread_cleanup): Add a guard to dereferencing
1683         "thread" to avoid an unlikely race condition.
1684
1685 2010-03-09  Sebastien Pouliot  <sebastien@ximian.com>
1686
1687         * assembly.c: Fix crash in moon-unit when aname->culture is NULL
1688         instead of an empty string.
1689
1690 2010-03-09  Zoltan Varga  <vargaz@gmail.com>
1691
1692         * object-internals.h (_G_BOOLEAN_EXPR): Fix the definition of this to explicitly
1693         convert to a boolean, recent gcc versions compile this differently.
1694
1695 2010-03-09  Zoltan Varga  <vargaz@gmail.com>
1696
1697        * sgen-gc.c (safe_object_get_size): Avoid a function call so this can really be
1698        inlined.
1699
1700 2010-03-09  Mark Probst  <mark.probst@gmail.com>
1701
1702         * sgen-gc.c (STRING_SIZE): Off by one.
1703
1704 2010-03-09  Mark Probst  <mark.probst@gmail.com>
1705
1706         * sgen-archdep.h: Fix the signal context register access for
1707         AMD64.
1708
1709 2010-03-09  Zoltan Varga  <vargaz@gmail.com>
1710
1711         * sgen-gray.c: Get rid of the unused 'start' field in GrayQueueSection.
1712
1713 2010-03-08  Rodrigo Kumpera  <rkumpera@novell.com>
1714
1715         * verify.c: Store the initial basic block returned by mono_basic_block_split
1716         so we can release the whole list and not just the first one.
1717
1718 Mon Mar 8 17:30:44 CET 2010 Paolo Molaro <lupus@ximian.com>
1719
1720         * verify.c, debug-helpers.c, profiler.c, loader.c,
1721         mono-basic-block.c, mono-debug.c, reflection.c: prepare to make
1722         MonoMethodHeader a transient entity.
1723
1724 2010-03-08  Zoltan Varga  <vargaz@gmail.com>
1725
1726         * sgen-gc.c (scan_needed_big_objects): Call drain_gray_stack () to avoid
1727         uncontrolled growth of the gray stack.
1728
1729         * sgen-gray.c: Rewrite this so it behaves like a stack, not a queue, so recently
1730         added items are removed first, improving cache locality. Avoid freeing queue
1731         segments in the fast path, use the list of segments as the free list, truncate
1732         it to its max size at the start of collection.
1733
1734 Mon Mar 8 10:13:52 CET 2010 Paolo Molaro <lupus@ximian.com>
1735
1736         * metadata-internals.h: more memory savings, both with small config and without.
1737
1738
1739 Sat Mar 6 19:12:12 CET 2010 Paolo Molaro <lupus@ximian.com>
1740
1741         * appdomain.c, domain-internals.h, domain.c, object.c:
1742         make class_vtable_hash into an array to reduce memory usage.
1743
1744 Sat Mar 6 18:16:35 CET 2010 Paolo Molaro <lupus@ximian.com>
1745
1746         * mempool.c, class-internals.h, class.c, icall.c, metadata.c,
1747         object-internals.h, object.c, reflection.c, threadpool.c:
1748         reduce resource usage when the small config is selected.
1749         In particular, up to 64K of methods/fields/properties/events
1750         are allowed and "other" methods in events are ignored.
1751
1752 Fri Mar 5 19:05:47 CET 2010 Paolo Molaro <lupus@ximian.com>
1753
1754         * threads.c: reduce resource usage when compiled for a small config.
1755
1756 2010-03-05  Mark Probst  <mark.probst@gmail.com>
1757
1758         * sgen-gc.c: Also collect number of degraded-alloced objects with
1759         heavy statistics.
1760
1761 2010-03-04  Geoff Norton  <gnorton@novell.com>
1762
1763         * assembly.c: Only support OSX bundling if the bundle is 
1764         actually detectable.
1765
1766 2010-03-04  Geoff Norton  <gnorton@novell.com>
1767
1768         * loader.c: The marshal specs are freed at the end of the call
1769         but it explicitly frees the strings as well as the container,
1770         so we need to dup them too to avoid referencing free'd memory.
1771
1772 2010-03-04  Geoff Norton  <gnorton@novell.com>
1773
1774         * icall-def.h:
1775         * icall.c: Add a new private internal icall to construct
1776         an object from its type without running the ctor.
1777
1778 Thu Mar 4 15:37:09 CET 2010 Paolo Molaro <lupus@ximian.com>
1779
1780         * profiler.c: allow multiple profiler engines to be loaded
1781         at the same time.
1782
1783 Wed Mar 3 20:19:45 CET 2010 Paolo Molaro <lupus@ximian.com>
1784
1785         * profiler-private.h, profiler.c, profiler.h, sgen-gc.c: introduce
1786         profiler event to track object moves.
1787
1788 Wed Mar 3 19:20:39 CET 2010 Paolo Molaro <lupus@ximian.com>
1789
1790         * object.c, profiler.c, profiler.h, string-icalls.c:
1791         remove the reduntant MONO_PROFILE_STRING_ALLOC profiler event.
1792
1793 2010-03-03  Miguel de Icaza  <miguel@novell.com>
1794
1795         * decimal.c (mono_double2decimal): Add support for reducing the
1796         scale of a decimal.  It turns the 0.6000000000000 into 0.6 as
1797         expected.
1798
1799 2010-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1800
1801         * icall-def.h:
1802         * icall.c: Implement System.MonoType::get_core_clr_security_level icall.
1803
1804 2010-03-03  Marek Habersack  <mhabersack@novell.com>
1805
1806         * mono-config.c (mono_config_parse_assembly_bindings): added -
1807         parses assembly binding redirections from appdomain's config
1808         file.
1809
1810         * metadata-internals.h: added definition of a new function -
1811         mono_config_parse_assembly_bindings - to support parsing assembly
1812         binding redirections defined in appdomain's config file.
1813
1814         * domain-internals.h: added two new fields to _MonoDomain - a list
1815         of assembly bindings and a flag to parse the config file only
1816         once.
1817
1818         * assembly.c (assembly_binding_maps_name): empty culture name and
1819         NULL culture name are considered equal.
1820         (mono_assembly_apply_binding): added support for domain specific
1821         assembly binding redirections, read from the appdomain's
1822         configuration file. Fixes bug #580185
1823
1824 Wed Mar 3 11:46:06 CET 2010 Paolo Molaro <lupus@ximian.com>
1825
1826         * appdomain.c, domain.c, icall.c, image.c, marshal.c, object.c,
1827         reflection.c, socket-io.c, threadpool.c, threads.c: removed 1.1/1.0
1828         support.
1829
1830 2010-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
1831
1832         * reflection.c (mono_image_get_memberref_token): Extract mono_image_add_memberef_row
1833         from this function. The new function receive the parent token instead of a type.
1834
1835         * reflection.c (mono_image_get_methodref_token_for_methodbuilder):
1836         * reflection.c (mono_image_get_ctorbuilder_token): Use new function to encode
1837         typebuilders. This make it possible to properly encode generic type builders since
1838         their unmanaged type don't have generics data while unfinished.
1839
1840         Fixes #583655.
1841
1842 2010-03-02  Mark Probst  <mark.probst@gmail.com>
1843
1844         * sgen-gc.c, sgen-protocol.c, sgen-protocol.h: New facility for
1845         writing binary log files (can be enabled by #define'ing
1846         BINARY_PROTOCOL) for better debugging of timing-dependent bugs or
1847         bugs in longer running programs.
1848
1849 Mon Mar 1 19:35:32 CET 2010 Paolo Molaro <lupus@ximian.com>
1850
1851         * metadata.c: added some API documentation.
1852
1853 2010-03-01  Robert Jordan  <robertj@gmx.net>
1854
1855         * filewatcher.h: Include glib.h to fix the MSVC build.
1856
1857 2010-03-01  Zoltan Varga  <vargaz@gmail.com>
1858
1859         * class-internals.h (MonoClass): Get rid of the reflection_info field, add
1860         a GC handle instead. This is a bit slower to access, but avoids burdening the
1861         GC with 100s of individual roots.
1862
1863         * reflection.c (mono_class_get_ref_info):
1864         (mono_class_set_ref_info):
1865         (mono_class_free_ref_info): New internal helper fuctions.
1866
1867         * reflection.c appdomain.c icall.c class.c: Use the new helper functions instead
1868         of accessing klass->reflection_info directly.
1869
1870         * sgen-gc.c (alloc_complex_descriptor): Fix the computation of the number of
1871         words.
1872
1873         * gc.c (alloc_handle): Create a GC descriptor for the 'entries' array, free
1874         the previous array.
1875
1876 2010-02-28  Zoltan Varga  <vargaz@gmail.com>
1877
1878         * marshal.c (get_runtime_invoke_type): Avoid sharing byref with I, as the latter
1879         needs an indirection.
1880
1881 2010-02-26  Zoltan Varga  <vargaz@gmail.com>
1882
1883         * generic-sharing.c: Removed, moved its contents to mini/mini-generic-sharing.c,
1884         so all generic sharing code is in one place.
1885
1886         * class.c (get_implicit_generic_array_interfaces): Fix the last change so
1887         we don't call setup_interface_offsets () for unfinished types.
1888
1889 2010-02-26  Zoltan Varga  <vargaz@gmail.com>
1890
1891         * class.c (mono_class_generic_sharing_enabled): Move this to
1892         generic-sharing.c.
1893
1894         * image.c: Add an unload hook which is called before an image is unloaded.
1895
1896         * generic-sharing.c: Use the unload hook to unregister per-image data, to avoid
1897         metadata.c having to depend on generic sharing.
1898
1899 Fri Feb 26 19:23:18 CET 2010 Paolo Molaro <lupus@ximian.com>
1900
1901         * class.c: reduce size of ridiculously large cache.
1902
1903 2010-02-26  Martin Baulig  <martin@ximian.com>
1904
1905         * mono-debug.h
1906         (MONO_DEBUGGER_MINOR_VERSION): Bump to 5.
1907
1908         * threads.c (mono_thread_internal_reset_abort): New method; resets
1909         the abort, but doesn't throw any exception if no abort was requested.
1910
1911 2010-02-26  Zoltan Varga  <vargaz@gmail.com>
1912
1913         * class.c (get_implicit_generic_array_interfaces): Call
1914         mono_class_setup_interface_offsets () before accessing
1915         eclass->interface_offsets_count. This only shows up on platforms without IMT for
1916         some reason.
1917
1918 Thu Feb 25 12:12:44 CET 2010 Paolo Molaro <lupus@ximian.com>
1919
1920         * environment.c, environment.h, icall.c: make the GetOSVersionString()
1921         icall internal.
1922
1923 Thu Feb 25 11:37:50 CET 2010 Paolo Molaro <lupus@ximian.com>
1924
1925         * metadata.c, metadata.h: make MONO_TYPE_IS* functional without
1926         direct access to the MonoType fields.
1927
1928 2010-02-25  Zoltan Varga  <vargaz@gmail.com>
1929
1930         * threads.h: Move some internal functions which were added to this header by
1931         mistake to threads-types.h.
1932
1933         * class.c (mono_class_init): Get rid of mono_setup_vtable_in_class_init.
1934
1935 Wed Feb 24 17:45:27 CET 2010 Paolo Molaro <lupus@ximian.com>
1936
1937         * class-internals.h, class.h, object.h: make MonoRemoteClass
1938         and mono_remote_class() internal.
1939
1940 Wed Feb 24 17:05:18 CET 2010 Paolo Molaro <lupus@ximian.com>
1941
1942         * metadata-internals.h, class-internals.h, metadata.h: make the
1943         MonoType guts internal as well.
1944
1945 Wed Feb 24 16:02:42 CET 2010 Paolo Molaro <lupus@ximian.com>
1946
1947         * reflection.h: the MonoTypeNameParse guts are internal now.
1948         * assembly.c, assembly.h, image.h: the MonoAssemblyName guts
1949         are internal now, provide accessors as needed.
1950         * metadata.h, metadata-internals.h: the MonoMethodSignature
1951         guts are internal now.
1952         * Makefile.am: mempool.h is an internal header now.
1953         * *.h, *.c: remove glib.h usage from the public headers.
1954
1955 2010-02-24  Atsushi Enomoto  <atsushi@ximian.com>
1956
1957         * culture-info-table.h : regenerated.
1958
1959 2010-02-22  Rodrigo Kumpera  <rkumpera@novell.com>
1960
1961         * metadata.c: Add mono_method_get_header_summary which returns minimal
1962         information about the header of a method. This is the information used
1963         by the inline oracle to reject methods.
1964
1965         This method doesn't decode local variables and doesn't cache it's result,
1966         so it should cause a minimal reduction in memory usage.
1967
1968         * metadata-internals.h: Add MonoMethodHeaderSummary structure and
1969         mono_method_get_header_summary.
1970
1971 2010-02-22  Jeffrey Stedfast  <fejj@novell.com>
1972
1973         * threads.c (mono_thread_exit): Make sure that the main thread is
1974         non-null before dereferencing it.
1975
1976 2010-02-21  Geoff Norton  <gnorton@novell.com>
1977
1978         * Makefile.am: Add CoreFoundation linkage on darwin to properly get the current
1979         locale.
1980         * locaes.c: When running on darwin, try to get the local from CoreFoundation 
1981         before falling back to the posix lookup.
1982
1983 2010-02-19  Zoltan Varga  <vargaz@gmail.com>
1984
1985         * threads.c (mono_thread_suspend_all_other_threads): Ignore threads which have
1986         the DONT_MANAGE flag set.
1987
1988 2010-02-19  Rodrigo Kumpera  <rkumpera@novell.com>
1989
1990         * domain.c: Remove old v1 version strings. Let the runtime
1991         default to 2.0 instead of failing because it can't find a
1992         working 1.0 instalation.
1993
1994 2010-02-19  Rodrigo Kumpera  <rkumpera@novell.com>
1995
1996         * domain.c: Add v4 RC version string.
1997
1998 2010-02-19  Rodrigo Kumpera  <rkumpera@novell.com>
1999
2000         * mono-basic-block.c (mono_opcode_value_and_size): Use pointer variant
2001         of overflow checking function.
2002
2003 2010-02-18  Rodrigo Kumpera  <rkumpera@novell.com>
2004
2005         * reflection.c (mono_reflection_method_on_tb_inst_get_handle): Handle non
2006         generic methods.
2007
2008         * reflection.c (mono_reflection_get_custom_attrs_info): Handle compiler context
2009         cases for ParameterInfo.
2010
2011         Fixes #579493.
2012
2013 2010-02-18  Zoltan Varga  <vargaz@gmail.com>
2014
2015         * class.c (mono_class_get_cctor): Fix support for dynamic classes, which doesn't
2016         have has_cctor set. Fixes #575946.
2017
2018 2010-02-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
2019
2020         * appdomain.c: display a warning if the parsing the config file
2021         produces any error.
2022         Skip the BOM in UTF-8 files.
2023         Copy the AppDomainSetup before setting the privateBinPath so that the
2024         correct configuration file is read.
2025
2026 2010-02-15  Zoltan Varga  <vargaz@gmail.com>
2027
2028         * object.c: Instead of using one vtable trampoline, allow the JIT to use one
2029         vtable trampoline per vtable slot index. Not used yet.
2030
2031 2010-02-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
2032
2033         * icall-def.h:
2034         * icall.c: add internal call that returns the system page size.
2035
2036 2010-02-13  Zoltan Varga  <vargaz@gmail.com>
2037
2038         * debug-helpers.c (mono_method_desc_search_in_image): Handle short names like
2039         'int' for system classes.
2040
2041 Fri Feb 12 18:36:02 CET 2010 Paolo Molaro <lupus@ximian.com>
2042
2043         * icall.c, icall-def.h: new icall to check for sufficient
2044         stack space.
2045
2046 2010-02-12  Mark Probst  <mark.probst@gmail.com>
2047
2048         * reflection.c (ensure_complete_type): Check that reflection_info
2049         is set, too.  Fixes crash of corlib testsuite with -O=-all.
2050
2051 2010-02-11  Rodrigo Kumpera  <rkumpera@novell.com>
2052
2053         * attrdefs.h:
2054         * tabledefs.h: Add NoOptimization flag.
2055
2056 2010-02-10  Mark Probst  <mark.probst@gmail.com>
2057
2058         * sgen-gc.c: Don't consider it a missing remset if the target
2059         object is pinned - we might have done the store but not added the
2060         remset yet.
2061
2062 2010-02-10  Mark Probst  <mark.probst@gmail.com>
2063
2064         * sgen-gc.c: When checking for missing remsets, don't assert on
2065         the first one, but print them all and then assert.
2066
2067 2010-02-10  Mark Probst  <mark.probst@gmail.com>
2068
2069         * sgen-gc.c (find_in_remset_loc): Handle the small bitmap case.
2070
2071 2010-02-09  Miguel de Icaza  <miguel@novell.com>
2072
2073         * console-unix.c: On OSX Control-Y is assigned to
2074         VDSUSP (non-Posix), the
2075         suspend-program-next-time-it-tries-to-read-input command (this is
2076         different than C-z, which suspends immediately).
2077
2078         Do the same thing that bash does and ignore this setting,
2079         making our repl/getline support pasting.
2080
2081 2010-02-10  Mark Probst  <mark.probst@gmail.com>
2082
2083         * sgen-gc.c: Simple plausibility check for scan_starts.
2084
2085 2010-02-10  Mark Probst  <mark.probst@gmail.com>
2086
2087         * sgen-gc.c: Round up when calculating the number of scan starts.
2088
2089 2010-02-10  Rodrigo Kumpera  <rkumpera@novell.com>
2090
2091         * reflection.c: Export mono_get_object_from_blob.
2092
2093         * object-internals.h: Ditto.
2094
2095         * icall.c: New icall property_info_get_default_value to get the default
2096         value of a property. Since using this is not common, no caching is done.
2097
2098         * icall-def.h: Add new icall.
2099
2100 2010-02-10  Rodrigo Kumpera  <rkumpera@novell.com>
2101
2102         * class.c: Add mono_class_get_property_default_value.
2103
2104         * class-internal.h: Export mono_class_get_property_default_value.
2105
2106 2010-02-10  Rodrigo Kumpera  <rkumpera@novell.com>
2107
2108         * reflection.c (mono_image_get_property_info): Encode the default value of a property.
2109
2110 Wed Feb 10 14:48:45 CET 2010 Paolo Molaro <lupus@ximian.com>
2111
2112         * sgen-gc.c: introduced critical regions to allow some lockless
2113         operations and increase scalability.
2114
2115 2010-02-10  Geoff Norton  <gnorton@novell.com>
2116
2117         * reflection.c: Support building with DISABLE_REFLECTION
2118
2119 2010-02-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
2120
2121         * threadpool.c: Fixes for SetMinThreads and SetMaxThreads.
2122         Closes bug #566057.
2123
2124         * exception.c: fix typo in comment.
2125
2126 2010-02-09  Rodrigo Kumpera  <rkumpera@novell.com>
2127
2128         * icall.c (param_info_get_type_modifiers): Handle the case when the member object is a
2129         property. This happens which instances returned by PropertyInfo::GetIndexParameters ().
2130
2131         * reflection.c (mono_reflection_get_custom_attrs_info): Ditto.
2132
2133         * object-internals.h: Export mono_class_is_reflection_method_or_constructor as part of
2134         the internal API.
2135
2136         Fixes #574434.
2137
2138 2010-02-09  Mark Probst  <mark.probst@gmail.com>
2139
2140         * threads.c: Removed two assertions that were too strict.  Added a
2141         clarifying comment.  Fixes #577090.
2142
2143 2010-02-08  Zoltan Varga  <vargaz@gmail.com>
2144
2145         * domain.c (mono_jit_info_table_find): Avoid looking in the root domain, since
2146         the caller has no way of knowing the domain which owns the returned MonoJitInfo.
2147
2148         * appdomain.c (create_exceptions): Call mono_thread_push/popappdomain_ref ().
2149
2150         * verify.c (mono_type_get_stack_name): Fix a warning.
2151
2152 2010-02-07  Zoltan Varga  <vargaz@gmail.com>
2153
2154         * marshal.c (mono_marshal_get_wrapper_info): Rename from
2155         mono_marshal_wrapper_info_from_wrapper.
2156
2157         * marshal.c (mono_marshal_set_wrapper_info): Rename from
2158         mono_marshal_method_set_wrapper_data, and export.
2159
2160         * boehm-gc.c sgen-gc.c null-gc.c: Get rid of mono_gc_get_allocator_type, store
2161         the allocator type in a AllocatorWrapperInfo structure instead, which is accesible
2162         by calling mono_marshal_get_wrapper_info ().
2163
2164         * sgen-gc.c (mono_gc_get_managed_allocator): Add a specialized allocator for
2165         small objects which does no size checks.
2166
2167 2010-02-05  Rodrigo Kumpera  <rkumpera@novell.com>
2168
2169         * icall-def.h: Rename get_MetadataToken to GetMetadataToken.
2170
2171 2010-02-04  Rodrigo Kumpera  <rkumpera@novell.com>
2172
2173         * verify.c (mono_method_verify): Use the new basic block formation pass
2174         to avoid verifying dead basic blocks. This is the same behavior as the
2175         runtime MS verifier.
2176
2177 2010-02-04  Rodrigo Kumpera  <rkumpera@novell.com>
2178
2179         * mono-basic-block.c:
2180         * mono-basic-block.h: New implementation of a basic block formation pass.
2181         The formation pass does static liveness analysis as well to detect dead
2182         basic blocks.
2183
2184 2010-02-04  Zoltan Varga  <vargaz@gmail.com>
2185
2186         * marshal.c (mono_marshal_get_native_wrapper): Emit a null check for the
2187         'this' argument in icalls.
2188
2189 2010-02-02  Zoltan Varga  <vargaz@gmail.com>
2190
2191         * reflection.c (resolve_object): Handle MonoArrayMethod. Fixes #575955.
2192
2193 2010-02-01  Mark Probst  <mark.probst@gmail.com>
2194
2195         * object.c, domain.c: When using SGen, we must register
2196         vtable->type as a root if it's not a MonoType, because then it
2197         wasn't pin-alloced.
2198
2199 2010-02-01  Mark Probst  <mark.probst@gmail.com>
2200
2201         * sgen-gc.c: Reset to_space_bumper to to_space_section->next_data
2202         at the start of nursery collections, because we might have had
2203         degraded allocations which changed next_data.
2204
2205 2010-01-30  Zoltan Varga  <vargaz@gmail.com>
2206
2207         * marshal.c (mono_marshal_get_managed_wrapper): Avoid constructing the
2208         custom attr so this function works in cross-compiling mode.
2209
2210 2010-01-29  Zoltan Varga  <vargaz@gmail.com>
2211
2212         * class.c (make_generic_param_class): Initialize interface offsets since we
2213         set klass->inited. Fixes #574819.
2214
2215 2010-01-28  Zoltan Varga  <vargaz@gmail.com>
2216
2217         * domain.c (mono_domain_free): Send the END_UNLOAD profiler event before
2218         calling the JIT domain cleanup hook.
2219
2220 2010-01-28  Rodrigo Kumpera  <rkumpera@novell.com>
2221
2222         * pedump.c (main): Properly set the verifier mode when running the metadata
2223         verifier.
2224
2225 2010-01-28  Rodrigo Kumpera  <rkumpera@novell.com>
2226
2227         * verify.c (verify_class_for_overlapping_reference_fields): Properly verify
2228         overlapping fields now that we're called before has_references is set.
2229
2230         * pedump.c (dump_verify_info): Clear any loader error before verifying another
2231         method. Otherwise all sort of weird stuff happens.
2232
2233 2010-01-27  Zoltan Varga  <vargaz@gmail.com>
2234
2235         * object.c (mono_field_get_value_object): Handle nullable types correctly.
2236         Fixes #572874.
2237
2238 2010-01-25  Zoltan Varga  <vargaz@gmail.com>
2239
2240         * icall.c (ves_icall_System_Array_SetValueImpl): Handle nullable types correctly.
2241         Fixes #573322.
2242
2243 2010-01-23  Mark Probst  <mark.probst@gmail.com>
2244
2245         * sgen-pinning.c (evacuate_pin_staging_area): Don't assume
2246         pin_staging_area_index is greater than 0.
2247
2248 2010-01-22 Miguel de Icaza (miguel@novell.com)
2249
2250         * loader.c: Since we do nothing with the error returned, pass NULL
2251         to ignore the error.
2252
2253 2010-01-21  Rodrigo Kumpera  <rkumpera@novell.com>
2254
2255         * reflection.c (typebuilder_setup_fields): Pretend field setup already
2256         happened before starting to encode the actual fields. This avoid ciclic
2257         dependencies and eventual crashes.
2258
2259         Fixes #572660.
2260
2261 2010-01-21  Mark Probst  <mark.probst@gmail.com>
2262
2263         * sgen-gc.c, gc-internal.h, object.c: Make string allocation
2264         atomic and remove the half-constructed hack in SGen.
2265
2266 2010-01-21  Rodrigo Kumpera  <rkumpera@novell.com>
2267
2268         * metadata-verify.c (parse_generic_inst): Fail a type signature if it 
2269         has a recursive reference to itself.
2270
2271         Fixes #571863.
2272
2273 2010-01-21  Rodrigo Kumpera  <rkumpera@novell.com>
2274
2275         * loader.c (mono_method_signature): Fix error message.
2276
2277 2010-01-21  Mark Probst  <mark.probst@gmail.com>
2278
2279         * sgen-gc.c: Reuse to-space sections between nursery collections.
2280
2281 2010-01-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
2282
2283         * icall.c: don't raise AppDomain.TypeResolve when the type is loaded
2284         from the current assembly or mscorlib. Fixes bug #322957.
2285
2286 2010-01-20  Zoltan Varga  <vargaz@gmail.com>
2287
2288         * marshal.c: Calculate the target class of the delegete invoke wrappers using
2289         get_wrapper_target_class.
2290
2291 2010-01-19  Mark Probst  <mark.probst@gmail.com>
2292
2293         * sgen-gc.c: Fix warnings.
2294
2295 2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
2296
2297         * verify.c (store_local): Better error message.
2298
2299 2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
2300
2301         * object.c (mono_object_get_virtual_method): Handle generic interfaces with variant
2302         arguments.
2303
2304 2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
2305
2306         * icall.c (ves_icall_Remoting_RemotingServices_GetVirtualMethod): This
2307         function is generics variance aware.
2308
2309 2010-01-19  Sebastien Pouliot  <sebastien@ximian.com>
2310
2311         * security-core-clr.c (mono_security_core_clr_can_access_internals):
2312         Handle the case where 'basedir' can be NULL (e.g. SRE assemblies)
2313
2314 2010-01-19  Sylvain Dupont <duposyl@gmail.com>
2315
2316         * cominterop.c marshal.c: Added support for marshalling in, in/byref,
2317           in/out, in/out/byref parameters of type SAFEARRAY[VARIANT].
2318
2319         Code is contributed under MIT/X11 license.
2320
2321 2010-01-19  Rodrigo Kumpera  <rkumpera@novell.com>
2322
2323         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Handle inflated generic methods
2324         on a GTD.
2325
2326 2010-01-19  Zoltan Varga  <vargaz@gmail.com>
2327
2328         * marshal.c (mono_marshal_wrapper_info_from_wrapper): New helper function to
2329         return a point to a wrapper specific info structure describing the wrapper.
2330         (mono_marshal_get_array_address): Store the rank+elem_size in the wrapper info.
2331  
2332 2010-01-18  Mark Probst  <mark.probst@gmail.com>
2333  
2334         * sgen-gc.c: Make minor collection section allowance adaptive,
2335         depending on the amount of memory reclaimed in the last major
2336         collection.  If more memory was reclaimed (i.e. more garbage
2337         produced), do the next collection earlier.
2338
2339 2010-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2340
2341         * metadata-verify.c (parse_type): Fail a type signature if it has a recursive reference
2342         to itself.
2343
2344         * metadata-verify.c (mono_verifier_verify_typespec_signature): Change signature to take
2345         the token as parameter.
2346
2347         * verify-internals.h: Ditto.
2348
2349         * metadata.c (mono_type_create_from_typespec): Pass token to verifier.
2350
2351         Fixes #571460.
2352
2353 2010-01-18  Mark Probst  <mark.probst@gmail.com>
2354
2355         * sgen-gc.c: Make store_remset_buffer_index long.
2356
2357 2010-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2358
2359         * class.c (mono_class_from_typeref): Fail loading of self-referencing typeref tokens.
2360
2361         Fixes #569579.
2362
2363 2010-01-18  Zoltan Varga  <vargaz@gmail.com>
2364
2365         * sgen-gc.c (mono_gc_base_init): Add 'conservative_stack_mark' option to turn
2366         off precise marking if it is available.
2367         (mono_gc_get_bitmap_for_descr): Fix the handling of run length descriptors.
2368
2369 2010-01-17  Zoltan Varga  <vargaz@gmail.com>
2370
2371         * sgen-gc.c (mono_gc_conservatively_scan_area): Resurrect this.
2372
2373         * sgen-pinning.c (evacuate_pin_staging_area): Don't assert if there are no
2374         pinned objects.
2375
2376         * sgen-gc.c (create_allocator): Add the missing n > MONO_ARRAY_MAX_INDEX check
2377         to the array allocator.
2378
2379 2010-01-16  Zoltan Varga  <vargaz@gmail.com>
2380
2381         * generic-sharing.c (instantiate_other_info): Don't create ftnptr's from the
2382         result of mono_compile_method (), it already includes an ftnptr.
2383
2384 2010-01-16  Zoltan Varga  <vargaz@gmail.com>
2385
2386         * metadata.c (get_image_set): Remove an assert which can happen in normal use.
2387
2388 2010-01-15  Zoltan Varga  <vargaz@gmail.com>
2389
2390         * metadata.c (mono_metadata_str_hash): New helper function to compute a stable
2391         hash value which doesn't depend on glib/eglib versions.
2392         (mono_metadata_type_hash): Use it.
2393
2394         * object.c (mono_method_get_imt_slot): Ditto.
2395
2396 2010-01-14  Rodrigo Kumpera  <rkumpera@novell.com>
2397
2398         * class.c (mono_type_has_exceptions): Check the generic instance. It can fail
2399         independently of the GTD.
2400
2401         * class.c (mono_class_setup_fields): Fail if field has negative offset.
2402
2403         * class.c (mono_class_setup_fields): Fail if valuetype has zero size. Add sizeof(MonoObject)
2404         to the upper limit since instance_size includes this amount.
2405
2406         * class.c (mono_class_layout_fields): Check if the types of the static fields have failed.
2407
2408         Fixes #569544.
2409
2410 2010-01-14  Zoltan Varga  <vargaz@gmail.com>
2411
2412         * object.c (build_imt_slots): Compute the vtable slot correctly for interfaces
2413         with static methods.
2414
2415         * object.c (build_imt_slots): Avoid asserting when static methods are
2416         encountered in an interface.
2417
2418 2010-01-13  Mark Probst  <mark.probst@gmail.com>
2419
2420         * sgen-gc.c (to_space_expand): Fix assertion.
2421
2422 Wed Jan 13 15:42:28 CET 2010 Paolo Molaro <lupus@ximian.com>
2423
2424         * string-icalls.c: missing declaration fixes.
2425         * sgen-gc.c: portability fixes.
2426
2427 2010-01-12  Rodrigo Kumpera  <rkumpera@novell.com>
2428
2429         * class.c (mono_class_get_implemented_interfaces): Now take a MonoError argument.
2430
2431         * class.c:
2432         * cominterop.c:
2433         * icall.c:
2434         * object.c: 
2435         * class-internals.h: Adjust for new signature of mono_class_get_implemented_interfaces.
2436
2437 2010-01-12  Rodrigo Kumpera  <rkumpera@novell.com>
2438
2439         * class.c (mono_class_setup_interfaces): Now take a MonoError argument and
2440         it can fail loading the type.
2441
2442         * class.c: Add mono_class_inflate_generic_class_checked.
2443
2444         * class.c:
2445         * verify.c:
2446         * class-internals.h: Adjust for new signature of mono_class_setup_interfaces.
2447
2448 2010-01-11  Zoltan Varga  <vargaz@gmail.com>
2449
2450         * loader.c (mono_method_signature_checked): New internal function taking an
2451         MonoError argument.
2452
2453         * socket-io.c (AI_ADDRCONFIG): Applied patch from John Lightsey (jd@cpanel.net).
2454         Fixes build on rh 7.3.
2455
2456 2010-01-10  Aaron Bockover  <abockover@novell.com>
2457
2458         * assembly.c (mono_set_rootdir): Support finding the mono paths on OS X
2459         at runtime in the same way as on Windows, which yields a relocatable
2460         Mono. Uses dyld's _NSGetExecutablePath and realpath to resolve the path
2461         of the running mono process.
2462
2463         On TARGET_ARM, fallback () will always be executed.
2464
2465 2010-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
2466
2467         * icall.c (ves_icall_Type_GetInterfaceMapData): This function is generics variance aware.
2468
2469 2010-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
2470
2471         * class.c (mono_class_is_assignable_from_slow): Support variant
2472         generic delegates.
2473
2474         * class.c (mono_class_implement_interface_slow): Support types with
2475         variant generic arguments.
2476
2477 2010-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
2478
2479         * verify.c: Remove some code duplication.
2480
2481 2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2482
2483         * object.c: Update docs.
2484
2485 2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2486
2487         * object.c (add_imt_builder_entry): Improve DEBUG_IMT spew.
2488
2489         * object.c (build_imt_slots): Interfaces with variant generic arguments use the
2490         fallback trampoline as well.
2491
2492         * class.c (mono_class_interface_offset_with_variance): Add new non_exact_match
2493         out argument that is set to TRUE if the match was direct. 
2494
2495         * class.c (mono_class_is_assignable_from): Delegates require variance testing as well.
2496
2497         * class-internal.h: Update prototype of mono_class_interface_offset_with_variance.
2498
2499 2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2500
2501         * class.c: Add mono_class_interface_offset_with_variance function that does same
2502         as mono_class_interface_offset but takes variance into account.
2503
2504         * class-internal.h: Export mono_class_interface_offset_with_variance.
2505
2506         * object.c: Fix and improve DEBUG_IMT. Added an assert for IMT thunk building.
2507
2508 2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2509
2510         * object.c:
2511         * icall.c:
2512         * class.c: Add some FIXME for due to variant generic arguments.
2513
2514         object.c (mono_object_isinst_mbyref): Interfaces with variant generic arguments
2515         can't use the simple bitfield check, so call mono_class_is_assignable_from if
2516         the bitfield check fails.
2517
2518 2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2519
2520         * class.c (mono_class_is_assignable_from): Rework the generics variance code
2521         to be easier to read and fix bugs in the case a non generic type implements a variant
2522         interface.
2523
2524         * class.c (mono_class_has_variant_generic_params): Make non static.
2525
2526         * class-internals.h: Export mono_class_has_variant_generic_params as part of
2527         the private API.
2528
2529 2010-01-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
2530
2531         * assembly.c: fix MONO_PATH debug output.
2532
2533 2010-01-06  Atsushi Enomoto  <atsushi@ximian.com>
2534
2535         * culture-info-table.h : regenerated.
2536
2537 2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
2538
2539         * verify.c (mono_verifier_verify_class): Properly check for broken parent. Ignore
2540         types that are meant to not have a parent.
2541
2542 2010-01-04  Zoltan Varga  <vargaz@gmail.com>
2543
2544         * marshal.c (mono_marshal_get_runtime_invoke): Make a copy of the signature
2545         from the image mempool, so it is not leaked.
2546
2547 2010-01-04  Zoltan Varga  <vargaz@gmail.com>
2548
2549         * metadata-internals.h (_MonoImage): Remove unused generic_class_cache field.
2550
2551 2010-01-04  Sebastien Pouliot  <sebastien@ximian.com>
2552
2553         * verify.c (verify_valuetype_layout_with_target): Fix case
2554         that can lead to infinite recursion. Fix bug #567861
2555
2556 2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
2557
2558         * pedump.c: Run code verifier even if image verification fails
2559         due to a failed type we. This allows more errors to be shown.
2560
2561 2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
2562
2563         * class.c (count_virtual_methods): Remove the assert and now
2564         fail properly.
2565         
2566         * class.c (setup_interface_offsets): This can fail now.
2567
2568         * class.c (mono_class_setup_vtable_general): Check for parent vtable
2569         errors. Check setup_interface_offsets errors.
2570
2571         * class.c (setup_interface_offsets): Simplify the return error logic
2572         and remove class_init_ok.
2573
2574         Fixes #560327.
2575
2576 2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
2577
2578         * class.c (mono_class_init): Do class verification at the beginning. Add
2579         some asserts to avoid tripping into invalid memory.
2580
2581         * object.c (compute_class_bitmap): Replace a g_assert_not_reached with a
2582         g_error and a decent message.
2583
2584         * verify.c (mono_verifier_verify_class): Verify for invalid super type.
2585
2586         Fixes #567548.
2587
2588 2010-01-03  Zoltan Varga  <vargaz@gmail.com>
2589
2590         * mempool-internals.h (g_list_prepend_mempool): Define this and related functions
2591         as inline functions instead of defining them in mempool.c.
2592
2593         * metadata-internals.h (MonoImageSet): New structure representing a set of
2594         MonoImages, which own a collection of generic instances.
2595
2596         * metadata.c: Get rid of the global generic caches, instead assign each generic
2597         instance to the image set which consists of all the images referenced by the
2598         instance. This greatly speeds up mono_metadata_clean_for_image (), and allows
2599         the memory used by generic instances to be allocated from a per image-set mempool
2600         later.
2601
2602 2010-01-03  Zoltan Varga  <vargaz@gmail.com>
2603
2604         * marshal.c (mono_marshal_get_runtime_invoke): Fix a memory leak.
2605
2606 2010-01-03  Zoltan Varga  <vargaz@gmail.com>
2607
2608         * appdomain.c (zero_static_data): Fix a warning.
2609
2610         * locales.c (construct_culture_from_specific_name): Applied patch from
2611         José Antonio Sánchez Lázaro <jasl@darcysoft.es>. Fix a crash if a culture was
2612         not found. Fixes #567900.
2613
2614 2009-12-31  Sebastien Pouliot  <sebastien@ximian.com>
2615
2616         * loader.c (mono_method_get_signature_full): Remove two asserts.
2617         Return NULL instead so that the verifier can handle both cases 
2618         gracefully.
2619
2620 2009-12-30  Rodrigo Kumpera  <rkumpera@novell.com>
2621
2622         * class.c (mono_class_setup_methods): Use checked version of mono_class_inflate_generic_method_full
2623         so we can properly fail types instead of crashing.
2624
2625         Fixes #567676.
2626
2627 2009-12-30  Rodrigo Kumpera  <rkumpera@novell.com>
2628
2629         * reflection.c (reflection_methodbuilder_to_mono_method): Assert in case of a broken
2630         generic method.
2631
2632 2009-12-30  Rodrigo Kumpera  <rkumpera@novell.com>
2633
2634         * marshal.c (mono_mb_emit_restore_result): Properly handle generic enums.
2635
2636 2009-12-26  Zoltan Varga  <vargaz@gmail.com>
2637
2638         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait): Don't close the
2639         wait handle if the wait is interrupted, since it is still in mon->wait_list, and
2640         we can't remove it from it since we don't hold the lock.
2641         (mon_new): Free the orphaned events here when a mon structure is added to the
2642         freelist. Fixes #561239. Thanks to Mike Rieker <wmrieker@nii.net> for tracking
2643         this down.
2644
2645 2009-12-26  Rodrigo Kumpera  <rkumpera@novell.com>
2646
2647         * verify.c (init_stack_with_value_at_exception_boundary): Do stack overflow checking here
2648         as max stack might be zero.
2649
2650         Fixes #562320.
2651
2652 2009-12-26  Rodrigo Kumpera  <rkumpera@novell.com>
2653
2654         Rework all uses of mono_class_setup_methods to accept that it can fail now.
2655
2656         * class.c (mono_class_setup_methods): This function now can fail the class. Do so for generic
2657         instances if the GTD did.
2658
2659         * class.c (mono_class_setup_properties): Ditto.
2660
2661         * class.c (mono_class_setup_events): Ditto.
2662
2663         * class.c (mono_class_setup_vtable): Fail early if the type is already broken.
2664
2665         * class.c (mono_class_setup_vtable_general): Add a few more missing broken type checks. Sanitize
2666         error setting.
2667
2668         * class.c (mono_class_init): Fail if GTD did.
2669
2670         * cominterop.c:
2671         * generic-sharing.c:
2672         * icall.c:
2673         * loader.c:
2674         * object.c:
2675         * verify.c: Properly handle failure of mono_class_setup_methods.
2676
2677 2009-12-26  Rodrigo Kumpera  <rkumpera@novell.com>
2678
2679         * class-internals.c: Add mono_class_inflate_generic_method_full_checked and make
2680         mono_class_inflate_generic_method_full internal.
2681
2682         * class.c (inflate_generic_context): Now takes a MonoError argument.
2683
2684         * class.c (mono_class_inflate_generic_method_full): Now calls the _checked and abort on
2685         errors.
2686
2687 2009-12-26  Zoltan Varga  <vargaz@gmail.com>
2688
2689         * generic-sharing.c (instantiate_other_info): Avoid creating jump trampolines since
2690         they cannot be patched. Partly fixes #564408.
2691
2692 2009-12-24  Mark Probst  <mark.probst@gmail.com>
2693
2694         * metadata-internals.h, reflection.c: Use the
2695         MonoDynamicImage.handleref hash table only with unmanaged keys,
2696         and add a managed hash table handleref_managed for managed keys.
2697
2698 2009-12-24  Mark Probst  <mark.probst@gmail.com>
2699
2700         * sgen-gc.c: Unset to-space bumper between collections.  It might
2701         become invalid due to degraded allocations.
2702
2703 2009-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
2704
2705         * loader.c (mono_method_get_signature_full): Check if the returned signature is compatible
2706         with the one from the original method.
2707
2708         * metadata-verify.c (mono_verifier_is_sig_compatible): New function to verify signature
2709         compatibility.
2710
2711         * verify-internals.h: Add new function to the internal API.
2712
2713 2009-12-18  Dimitar Dobrev  <dpldobrev@yahoo.com>
2714
2715         * culture-info-tables.h: regenerated it to include the Georgian culture.
2716
2717 2009-12-18  Zoltan Varga  <vargaz@gmail.com>
2718
2719         * sgen-gc.c: Include mono/utils/memcheck.h.
2720
2721         * reflection.c (mono_reflection_get_type_internal_dynamic): Use assembly->domain
2722         instead of the current domain, since the two might not match if this is called
2723         from the debugger.
2724
2725         * metadata-internals.h (MonoDynamicAssembly): Add a 'domain' field to specify the
2726         domain which created this assembly.
2727
2728 2009-12-18  Zoltan Varga  <vargaz@gmail.com>
2729
2730         * debug-helpers.c (dis_one): Avoid a glib assert on empty strings.
2731
2732 2009-12-17  Mark Probst  <mark.probst@gmail.com>
2733
2734         * sgen-gc.c: Managed implementation of the specialized generic
2735         store write barrier.
2736
2737 2009-12-17  Rodrigo Kumpera  <rkumpera@novell.com>
2738
2739         * icall.c (ves_icall_Type_GetMethodsByName): Don't pin virtual methods if they are newslot.
2740         A private virtual newslot method is used to implement an interface method without exposing
2741         it to users. When querying for public instance methods, such method would hide a public one
2742         on a parent type.
2743
2744         Fixes #564379.
2745
2746 2009-12-17  Zoltan Varga  <vargaz@gmail.com>
2747
2748         * reflection.c (resolve_object): Fix the encoding of unmanaged calling
2749         conventions.
2750
2751 2009-12-16  Rodrigo Kumpera  <rkumpera@novell.com>
2752
2753         * reflection.c (mono_type_get_object): Guard against NULL generic param owner.
2754
2755 2009-12-16  Rodrigo Kumpera  <rkumpera@novell.com>
2756
2757         * class-internals.h (MonoDynamicGenericClass): Kill property and event related fields
2758         as they are no longer used.
2759         
2760          * metadata.c (free_generic_class_dependents): Remove reference to previous fields
2761
2762         * reflection.c (mono_reflection_generic_class_initialize): Ditto.
2763
2764 2009-12-16  Rodrigo Kumpera  <rkumpera@novell.com>
2765
2766         * reflection.c (mono_type_get_object): If the type is VAR or MVAR check
2767         if the owner class has not been finished before returning reflection_info.      
2768
2769         Fixes #565127.
2770
2771 2009-12-16  Zoltan Varga  <vargaz@gmail.com>
2772
2773         * reflection.c (mono_custom_attrs_from_param): Avoid a crash if a dynamic
2774         param doesn't have custom attributes. Fixes #565117.
2775
2776         * class.c (mono_bounded_array_class_get): Make these classes PUBLIC. Fixes
2777         #565120.
2778
2779 2009-12-15  Rodrigo Kumpera  <rkumpera@novell.com>
2780
2781         * class.c (mono_class_setup_fields): Fail valuetypes that are bigger than 1Mb.
2782
2783 2009-12-15  Rodrigo Kumpera  <rkumpera@novell.com>
2784
2785         * pedump.c: Add partial-md mode that doesn't perform full metadata verification. It does the
2786         same amount done by a core-clr enabled runtime.
2787
2788 2009-12-15  Marek Habersack  <mhabersack@novell.com>
2789
2790         * appdomain.c (mono_make_shadow_copy): make sure access mode of
2791         the target files is reset to writable by owner and readable by
2792         everyone else to prevent problems when updating shadow copies of
2793         files whose source is read-only. Fixes bug #556884
2794
2795 2009-12-15  Mark Probst  <mark.probst@gmail.com>
2796
2797         * class.c (mono_generic_class_get_class): Allocate the generic
2798         class via malloc again, so that it can be freed when any one of
2799         the images of its constituent types is closed.
2800
2801         * metadata.c: When closing an image, don't free generic insts and
2802         generic classes right away, but put them into a list for later
2803         freeing.
2804
2805         * image.c, metadata-internals.h: Store the free list and in the
2806         second pass of closing an image, free it.
2807
2808 2009-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
2809
2810         * reflection.c (mono_generic_class_get_object): Assert if this is ever called.
2811
2812         * reflection.c (mono_reflection_register_with_runtime): Only register dynamic
2813         types in type_hash.
2814
2815         * reflection.c (resolve_object): Call ensure_complete_type on the inflated field.
2816
2817 2009-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
2818
2819         * reflection.c (mono_reflection_type_get_handle): Properly fail in case of a broken
2820         user type.
2821
2822         * reflection.c (mono_reflection_register_with_runtime): Throws in case a bad user type
2823         is used.
2824
2825 2009-12-14  Miguel de Icaza  <miguel@novell.com>
2826
2827         * verify.c (mono_method_verify): The Unused opcodes produce an
2828         InvalidProgramException on .NET
2829
2830 2009-12-14  Sebastien Pouliot  <sebastien@ximian.com>
2831
2832         * loader.c (mono_method_get_header): Move assert after the verifier
2833         has been called on the method header.
2834
2835 2009-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
2836
2837         * object-internals.h: Remove useless field from MonoReflectionGenericClass.
2838
2839         * appdomain.c: Bump corlib version.
2840
2841 2009-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
2842
2843         To properly support user types, MonoGenericClass has to be used for regular, non SRE,
2844         types as well since otherwise generic instances would not return UT as arguments but
2845         their undelying system type.
2846
2847         * object-internals.h: Change field types of MonoGenericClass and *OnTypeBuilderInst
2848         to reflect the fact that they can have now multiple different types.
2849
2850         * reflection.c (mono_image_get_field_on_inst_token): Handle MonoField.
2851
2852         * reflection.c (mono_image_get_ctor_on_inst_token): Handle MonoCMethod.
2853
2854         * reflection.c (mono_image_get_method_on_inst_token): Handle MonoMethod.
2855
2856         * reflection.c (mono_reflection_register_with_runtime): Init super types
2857         if the image is not dynamic.
2858
2859         * reflection.c (mono_reflection_bind_generic_parameters): In case of a MonoGenericClass,
2860         check if the generic type definition is a TypeBuilder.
2861
2862         * reflection.c (mono_reflection_generic_class_initialize): If the generic type definition
2863         doesn't belong to a dynamic image, skip initialization.
2864
2865         * reflection.c (resolve_object): Properly handle *OnTypeBuilderInst types where their
2866         base definition is not a dynamic type.
2867
2868 2009-12-11  Marek Habersack  <mhabersack@novell.com>
2869
2870         * object.c (mono_ldstr, mono_ldstr_metadata_sig): added calls to
2871         mono_profiler_string_allocation
2872
2873         * string-icalls.c (ves_icall_System_String_InternalAllocateStr):
2874         if string profiling is enabled, call
2875         mono_profiler_string_allocation
2876
2877         * profiler.h: added two MonoProfileFlags -
2878         MONO_PROFILE_IOMAP_EVENTS and MONO_PROFILE_STRING_ALLOC as well as
2879         installation functions for the hooks below.
2880
2881         * profiler-private.h, profiler.c: added two hooks:
2882         mono_profiler_string_allocation called whenever a string is
2883         allocated by InternalAllocateStr and mono_profiler_iomap called
2884         whenever IOMAP code performs an adjustement on a file path.
2885
2886 Fri Dec 11 18:24:04 CET 2009 Paolo Molaro <lupus@ximian.com>
2887
2888         * boehm-gc.c: fixed race condition while getting the target of a
2889         disappearing link (bug #522233).
2890
2891 2009-12-10  Rodrigo Kumpera  <rkumpera@novell.com>
2892
2893         * class.c (mono_type_get_full): Produce warning instead of simply swallowing
2894         the error.
2895
2896 2009-12-10  Rodrigo Kumpera  <rkumpera@novell.com>
2897
2898         * reflection.c: Add mono_reflection_register_with_runtime icall to
2899         allow a MonoGenericClass to register itself as the managed mirror of
2900         a given generic instance.
2901         This is a temporary workaround until all MGC instantiation happens in
2902         managed code.
2903
2904         * object-internals.h: Ditto.
2905
2906         * icall-def.h: Ditto.
2907
2908 2009-12-10  Mark Probst  <mark.probst@gmail.com>
2909
2910         * sgen-gc.c (find_in_remsets): Also search the generic store
2911         remsets.
2912
2913 2009-12-10  Mark Probst  <mark.probst@gmail.com>
2914
2915         * sgen-gc.c: Don't access class names in debugging code when
2916         unloading a domain, because they might not be valid anymore.
2917
2918 2009-12-10  Mark Probst  <mark.probst@gmail.com>
2919
2920         * domain.c, domain-internals.h: New function mono_domain_unset().
2921
2922         * appdomain.c (unload_thread_main): Detach the thread again at the
2923         end.
2924
2925         * threads.c: When a thread exists or is detached, unset its domain
2926         so that it's NULL when, for example, a pthread destructor runs.
2927
2928         * sgen-gc.c: Assert that there is no domain set after a thread is
2929         done.
2930
2931 2009-12-10  Mark Probst  <mark.probst@gmail.com>
2932
2933         * class.c (mono_generic_class_get_class),
2934         metadata.c (free_generic_class): Allocate generic MonoClass's from
2935         the image mempool, not via malloc.  The problem with malloc is
2936         that when unloading a domain those classes are freed before
2937         clearing the heap and SGen needs the classes.  Rewriting the
2938         unloading code to do the free later would be more work and there's
2939         no point in using malloc anyway.
2940
2941 2009-12-09  Sebastien Pouliot  <sebastien@ximian.com>
2942
2943         * loader.c (mono_method_signature): Always call mono_loader_unlock 
2944         before returning.
2945
2946 2009-12-09  Rodrigo Kumpera  <rkumpera@novell.com>
2947
2948         * metadata-verify.c: Add mono_verifier_verify_string_signature to check
2949         user string blobs.
2950
2951         * verify-internals.h: Add new function to the internal API.
2952
2953         * verify.c (do_ldstr): Call into mono_verifier_verify_string_signature to
2954         check if it's a valid string.
2955
2956         * object.c (mono_ldstr): Ditto.
2957
2958         Fixes #561943.
2959
2960 2009-12-09  Rodrigo Kumpera  <rkumpera@novell.com>
2961
2962         * icall.c (ves_icall_GetCurrentMethod): Drop all generic arguments
2963         from a method before returning it. This is the expected behavior.
2964
2965 2009-12-08  Rodrigo Kumpera  <rkumpera@novell.com>
2966
2967         * reflection.c (inflate_method): Handle the case of a regular system type.
2968
2969 2009-12-08  Mark Probst  <mark.probst@gmail.com>
2970
2971         * sgen-gc.c, sgen-pinning-stats.c, sgen-gray.c: More statistics
2972         gathering code.
2973
2974         * mempool.c, mempool-internals.h: New function
2975         mono_mempool_get_bytes_allocated().
2976
2977         * Makefile.am: sgen-pinning-stats.c added.
2978
2979 2009-12-08  Mark Probst  <mark.probst@gmail.com>
2980
2981         * sgen-gc.c (create_allocator): Only use the fast path if the
2982         object size is within the small object size limit.
2983
2984 2009-12-07  Mark Probst  <mark.probst@gmail.com>
2985
2986         * sgen-gc.c: Make sure section->data is aligned to 8 bytes by
2987         possibly adding padding to sizeof (GCMemSection).
2988
2989 2009-12-07  Mark Probst  <mark.probst@gmail.com>
2990
2991         * sgen-gc.c (mono_gc_wbarrier_nostore): Skip the remset if the
2992         reference is not in the nursery.
2993
2994 2009-12-07  Rodrigo Kumpera  <rkumpera@novell.com>
2995
2996         * class.c (mono_class_from_typeref): Bounds check idx against the 
2997         assemblyref table.
2998
2999 2009-12-07  Mark Probst  <mark.probst@gmail.com>
3000
3001         * sgen-gc.c, sgen-pinning.c: When pinning, make only one pass
3002         through the potential roots, then sort the results and find the
3003         pinned objects from there.
3004
3005         * Makefile.am: sgen-pinning.c added.
3006
3007 2009-12-07  Mark Probst  <mark.probst@gmail.com>
3008
3009         * sgen-gc.c: Record generic stores in specialized remset buffers.
3010
3011 2009-12-06  Mark Probst  <mark.probst@gmail.com>
3012
3013         * sgen-gc.c: Make pinned chunks the same size as major heap
3014         sections, and align them as well, so that we can check whether an
3015         object is in a pinned chunk or a major section in constant time.
3016
3017 2009-12-06  Mark Probst  <mark.probst@gmail.com>
3018
3019         * sgen-gc.c (build_nursery_fragments): Don't leak fragments.
3020
3021 2009-12-06  Mark Probst  <mark.probst@gmail.com>
3022
3023         * sgen-gc.c: Make all major heap sections the same size (currently
3024         128k) and allocate them on aligned addresses.  Small heap sections
3025         give us better granularity with pinned objects - we can free up
3026         much more memory.
3027
3028 2009-12-06  Mark Probst  <mark.probst@gmail.com>
3029
3030         * string-icalls.c (ves_icall_System_String_GetLOSLimit): Debug
3031         output removed.
3032
3033 2009-12-05  Zoltan Varga  <vargaz@gmail.com>
3034
3035         Applied patch from Laurent Etiemble (laurent.etiemble@gmail.com).
3036
3037         * mono/metadata/assembly.c: When opening an assembly image, pass the real
3038         names in addition to the runtime generated one.
3039
3040         * mono/metadata/image.h: Add a function to take the real name of the assembly
3041         image.
3042
3043         * mono/metadata/image.c: If a real name has been passed to load an assembly,
3044         use it instead of the runtime generated one.
3045
3046         Code is contributed under MIT/X11 license.
3047
3048 2009-12-05  Zoltan Varga  <vargaz@gmail.com>
3049
3050         * marshal.c (emit_marshal_vtype): Do the klass == date_time_class checks
3051         before the other checks to prevent problems if the DateTime class is blittable.
3052         Hopefully fixes #559600.
3053
3054 2009-12-05  Mark Probst  <mark.probst@gmail.com>
3055
3056         * string-icalls.c, string-icalls.h, icall-def.h: New icall that
3057         returns the largest string length that will not be put into the
3058         LOS.
3059
3060         * sgen-gc.c, gc-internal.h: New function that returns the largest
3061         object size that will not be put into the LOS.
3062
3063         * appdomain.c: Bump corlib version.
3064
3065 2009-12-05  Zoltan Varga  <vargaz@gmail.com>
3066
3067         * class-internals.h: Add MONO_RGCTX_INFO_METHOD_DELEGATE_CODE.
3068
3069         * generic-sharing.c: Handle MONO_RGCTX_INFO_METHOD_DELEGATE_CODE.
3070
3071 2009-12-04  Rodrigo Kumpera  <rkumpera@novell.com>
3072
3073         * reflection.c (inflate_method): Fix signature.
3074
3075         * object-internals.h (MonoReflectionMethodOnTypeBuilderInst): Reflect change
3076         in managed code.
3077
3078 2009-12-04  Rodrigo Kumpera  <rkumpera@novell.com>
3079
3080         * reflection.c (inflate_method): Make this method work with TypeBuilder as well.
3081
3082 2009-12-03  Mark Probst  <mark.probst@gmail.com>
3083
3084         * sgen-gc.c: Abstract to-space handling.
3085
3086 2009-12-03  Rodrigo Kumpera  <rkumpera@novell.com>
3087
3088         * loader.c (find_method_in_class): Ignore methods with broken signatures.
3089
3090         Fixes #559906.
3091
3092 2009-12-03  Mark Probst  <mark.probst@gmail.com>
3093
3094         * sgen-gc.c: Only add references from outside the nursery to
3095         within the nursery to the global remset list.
3096
3097 2009-12-03  Mark Probst  <mark.probst@gmail.com>
3098
3099         * appdomain.c (create_exceptions): Set the domain temporarily if
3100         necessary to avoid cross-domain references.
3101
3102 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3103
3104         * verify.c (get_stack_type): Return that the type is invalid instead of
3105         asserting.
3106
3107         * verify.c (mono_method_verify): Verify that all locals and arguments
3108         have valid stack types.
3109
3110         Fixes #559913.
3111
3112 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3113
3114         * verify.c (mono_method_verify): Bounds check the filter offset. Make all
3115         bounds checking overflow aware.
3116
3117         Fixes #559910.
3118
3119 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3120
3121         * verify.c (do_invoke_method): Check for invalid method signatures.
3122
3123         Fixes #553450.
3124
3125 2009-12-02  Jb Evain  <jbevain@novell.com>
3126
3127         * appdomain.c (MONO_CORLIB_VERSION): bump.
3128         * icall-def.h (get_base_definition): renamed to get_base_method
3129         and add a boolean argument indicating we want the original
3130         method definition, or the immediate base method.
3131         * icall.c: apply the get_base_definition to get_base_method change.
3132
3133 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3134
3135         * class.c (mono_class_setup_fields): Fail an enum without an instance field.
3136
3137         Fixes #558042.
3138
3139 Wed Dec 2 16:35:49 CET 2009 Paolo Molaro <lupus@ximian.com>
3140
3141         * class.c: remove asserts for invalid type token in
3142         mono_class_name_from_token(), mono_assembly_name_from_token() and
3143         mono_class_create_from_typedef () (fixes bug #553318).
3144
3145 Wed Dec 2 15:48:19 CET 2009 Paolo Molaro <lupus@ximian.com>
3146
3147         * metadata.c, class.c, loader.c: remove assert after bsearch() for
3148         incorrect assemblies (bug #553322).
3149
3150 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3151
3152         * metadata.c (mono_metadata_inflate_generic_inst): Add MonoError parameter.
3153
3154         * metadata-internals.h: Change signature of mono_metadata_inflate_generic_inst. 
3155
3156         * class.c (inflate_generic_type): Use new version of mono_metadata_inflate_generic_inst.
3157
3158         * class.c (inflate_generic_context): Ditto.
3159
3160         * loader.c (method_from_methodspec): Ditto.
3161
3162         Fixes #558230.
3163
3164 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3165
3166         * class.c (mono_type_retrieve_from_typespec): Use MonoError machinery to report errors.
3167
3168         * class.c (mono_class_create_from_typespec): Ditto.
3169
3170         * class.c (mono_class_get_full): Fix for change on the above 2 functions.
3171
3172         * class.c (mono_type_get_full): Fix for change on the above 2 functions.
3173
3174         Fixes #558184.
3175
3176 2009-12-02  Rodrigo Kumpera  <rkumpera@novell.com>
3177
3178         * verify.c (mono_class_has_default_constructor): Check fror broken signatures.
3179
3180         * verify.c (verify_delegate_compatibility): Ditto.
3181
3182         * verify.c (do_newobj): Ditto.
3183
3184         Fixes #558046.
3185
3186 2009-12-02  Mark Probst  <mark.probst@gmail.com>
3187
3188         * sgen-gc.c: Use a gray queue instead of requiring that gray
3189         objects are in a contiguous region.
3190
3191         * sgen-gray.c: The gray queue implementation.
3192
3193         * Makefile.am: sgen-gray.c added.
3194
3195 2009-12-02  Mark Probst  <mark.probst@gmail.com>
3196
3197         * appdomain.c: When unloading a domain, zero its static data and
3198         perform a minor collection when using SGen.  That will get rid of
3199         all the remsets pointing into that domain's static data.
3200
3201         * sgen-gc.c: Allow remsets into static data.  By doing this we
3202         need less checks so we're more efficient.
3203
3204 2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
3205
3206         * verify.c (mono_method_verify): Check for catch clauses with broken
3207         types.
3208
3209         Fixes #558465.
3210
3211 2009-12-01  Jb Evain  <jbevain@novell.com>
3212
3213         * class.c (make_generic_param_class): set the namespace of
3214         the generic parameter class from its owner, if available.
3215
3216 2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
3217
3218         * verify.c (code_bounds_check): Do proper overflow checking.
3219
3220         * verify.c (mono_method_verify): The number of switch entries is
3221         an unsigned int. Properly bounds check it.
3222
3223         Fixes #558594.
3224
3225 2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
3226
3227         * metadata.c: Kill mono_metadata_get_param_attrs_checked. Add
3228         mono_metadata_method_has_param_attrs which only checks if a given param
3229         list has a non zero flags entry.
3230
3231         * metadata.c (mono_metadata_get_param_attrs): Add param_count parameter
3232         to inform how many params should we expect to decode.
3233
3234         * loader.c (mono_method_signature): Use mono_metadata_method_has_param_attrs
3235         as it's faster than mono_metadata_get_param_attrs.
3236
3237         * metadata-internals.h: Fix mono_metadata_get_param_attrs signature and
3238         add mono_metadata_method_has_param_attrs.
3239
3240 2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
3241
3242         * class.c (mono_class_setup_vtable_general): Check for mono_method_get_vtable_slot
3243         failures.
3244
3245         * class.c (mono_method_get_vtable_slot): Don't assert if the computed method slot
3246         is -1 but its class is broken.
3247
3248         Fixes #558522.
3249
3250 2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
3251
3252         * metadata.c: Introduce mono_metadata_get_param_attrs_checked which checks
3253         for parameter overflow.
3254
3255         * metadata.c (mono_metadata_parse_method_signature_full): Use checked version
3256         of mono_metadata_get_param_attrs.
3257
3258         * metadata-internals.h: Add mono_metadata_get_param_attrs_checked to the internal
3259         API.
3260
3261         * loader.c (mono_method_signature): Use checked version of mono_metadata_get_param_attrs.
3262
3263 2009-12-01  Rodrigo Kumpera  <rkumpera@novell.com>
3264
3265         * class.c (mono_class_setup_fields): Check for fields with broken types.
3266
3267         Fixes #558741.
3268
3269 2009-11-28  Rodrigo Kumpera  <rkumpera@novell.com>
3270
3271         * reflection.c (ensure_generic_class_runtime_vtable): Split this function in 2
3272         so we can avoid calling ensure_runtime_vtable multiple times for the GTD during
3273         its TypeBuilder::CreateType ().
3274
3275         * reflection.c (ensure_generic_class_runtime_vtable): Avoid initializing interfaces
3276         if not needed.
3277
3278         * reflection.c: Every time we change the interface array, set interfaces_packed to NULL
3279         to make setup_interface_offsets happy.
3280
3281         * reflection.c (remove_instantiations_of_and_ensure_contents): Fix instances again as corlib
3282         compilation now works.
3283
3284 2009-11-28  Zoltan Varga  <vargaz@gmail.com>
3285
3286         * appdomain.c (create_exceptions): New helper function extracted from
3287         mono_runtime_init () to precreate objects used during exception handling.
3288         (mono_runtime_init): Call it.
3289         (mono_domain_create_appdomain_internal): Ditto. Fixes #555264.
3290
3291 2009-11-27  Rodrigo Kumpera  <rkumpera@novell.com>
3292
3293         * reflection.c (remove_instantiations_of_and_ensure_contents): Temp hack to fix corlib
3294         compilation until the proper one is found.
3295
3296 2009-11-27  Zoltan Varga  <vargaz@gmail.com>
3297
3298         * class.c (mono_class_setup_vtable_general): Cache the result of
3299         get_virtual_methods () since it can be slow because of the metadata
3300         optimization.
3301
3302         * metadata-internals.h (_MonoImage): Change 'method_cache' to a GHashTable
3303         from a MonoValueHashTable for now, since the later is based on an earlier
3304         version of hpj's internal probing code and seems to have serious collision
3305         issues.
3306
3307         * loader.c (mono_get_method_full): Update after the change above.
3308
3309 2009-11-26  Zoltan Varga  <vargaz@gmail.com>
3310
3311         * class-internals.h (MonoCachedClassInfo): Add 'is_generic_container' field.
3312
3313 2009-11-26  Rodrigo Kumpera  <rkumpera@novell.com>
3314
3315         * reflection.c (get_field_on_inst_generic_type): Try to fallback using the field from
3316         the GTD instead of the DGC instead of crashing.
3317
3318         * reflection.c (ensure_generic_class_runtime_vtable): Only reinflate stuff that is
3319         required. Inflate fields if needed.
3320
3321         * reflection.c (remove_instantiations_of): Ensure generic instances are properly
3322         finished. Renamed.
3323
3324 2009-11-26  Rodrigo Kumpera  <rkumpera@novell.com>
3325
3326         * class.c (check_interface_method_override): Check for NULL signatures and fail
3327         the type.
3328
3329         * debug-helpers.c (mono_signature_get_desc): Return a fixed string for NULL signatures.
3330
3331         Fixes #553428.
3332
3333 2009-11-26  Zoltan Varga  <vargaz@gmail.com>
3334
3335         * class.c (mono_class_get_virtual_methods): Call decode_row_col to obtain
3336         the MONO_METHOD_FLAGS column instead of decoding the whole row.
3337
3338 2009-11-25  Rodrigo Kumpera  <rkumpera@novell.com>
3339
3340         * loader.c (field_from_memberref): Resolve the class first then the field
3341         signature. Remove a lot of duplicated code and make sure we don't pass valid
3342         values to mono_loader_set_error_field_load.
3343
3344         Fixes #553306.
3345
3346 2009-11-25  Rodrigo Kumpera  <rkumpera@novell.com>
3347
3348         * class.c (inflate_generic_type): Change code to use new signature of
3349         mono_error_set_bad_image.
3350
3351         Fixes #558124.
3352
3353 2009-11-25  Sebastien Pouliot  <sebastien@ximian.com> 
3354
3355         * verify.c (mono_method_verify): Don't free ctx.params items if 
3356         we aborted while inflating the ctx.locals. Complete previous fix
3357
3358 2009-11-25  Sebastien Pouliot  <sebastien@ximian.com>
3359
3360         * verify.c (mono_method_verify): Use the uninflated type name, 
3361         when the inflated is null, to report errors. Also take care when
3362         freeing, not to free everything since, in case of an error, some
3363         stuff would be copies (i.e. not allocated by the function itself)
3364         Fix bug #558145
3365
3366 2009-11-24  Rodrigo Kumpera  <rkumpera@novell.com>
3367
3368         * verify.c (stack_push, stack_pop, stack_pop_safe): Assert if we underflow
3369         or overflow. The caller must have done this check explicitly. This guard us
3370         from accessing invalid memory.
3371
3372         * verify.c (do_push_static_field): Check for stack overflow.
3373
3374         Fixes #553333.
3375
3376 2009-11-24  Rodrigo Kumpera  <rkumpera@novell.com>
3377
3378         * loader.c (find_method_in_class): Don't crash if the signature cannot
3379         be resolved.
3380
3381         * metadata.c (mono_metadata_parse_generic_param): Return NULL instead
3382         of asserting for the case of invalid params.
3383
3384         Fixes #553304.
3385
3386 2009-11-24  Sebastien Pouliot  <sebastien@ximian.com>
3387
3388         * image.c (mono_image_load_module): Fix crash when a bad assembly
3389         has no module at all (fix bug #553412) and also replace the 
3390         g_assert with a return NULL (documented return value for failure)
3391
3392 2009-11-23  Zoltan Varga  <vargaz@gmail.com>
3393
3394         * debug-helpers.c (mono_type_get_desc): Handle typedbyref.
3395
3396 2009-11-23  Miguel de Icaza  <miguel@novell.com>
3397
3398         * file-io.c: Change FindFirst/FindNext/FindClose API to return the
3399         file attribute to managed code and avoid doing the mask/attribute
3400         checks here. 
3401
3402 2009-11-22  Miguel de Icaza  <miguel@novell.com>
3403
3404         * file-io.c: Surface a smart FindFirst/FindNext/FindClose API to
3405         the managed world.
3406
3407         * icall-def.h: New entry points.
3408         
3409 2009-11-19  Mark Probst  <mark.probst@gmail.com>
3410
3411         * process.c: Don't put references to managed objects into a
3412         g_ptr_array.
3413
3414 2009-11-18  Sebastien Pouliot  <sebastien@ximian.com>
3415
3416         * class.c (can_access_internals): Allow CoreCLR to participate in
3417         allowing (or not) [InternalsVisibleTo] between assemblies.
3418         * security-core-clr.c|h: Make sure that only trusted code (a 
3419         superset of platform code) can access the internals of platform
3420         code.
3421
3422 Mon Nov 16 16:28:11 CET 2009 Paolo Molaro <lupus@ximian.com>
3423
3424         * reflection.c: use the correct base class to get the virtual method
3425         "get_UnderlyingSystemType" and speed up the icall. Fixes bug #555013.
3426
3427 2009-11-16  Sebastien Pouliot  <sebastien@ximian.com>
3428
3429         * security-core-clr.c (get_caller_no_reflection_related): 
3430         [Mono]Type.InvokeMember is outside System.Reflection[.Emit] but
3431         it's still reflection and must be filtered correctly.
3432
3433 2009-11-16  Mark Probst  <mark.probst@gmail.com>
3434
3435         * object.c (compute_class_bitmap): Fix for large bitmaps.
3436
3437 2009-11-15  Zoltan Varga  <vargaz@gmail.com>
3438
3439         (mono_gc_get_suspend_signal): Fix the build with a system libgc.
3440
3441         * boehm-gc.c (mono_gc_base_init): Applied patch from DKoushik K. Dutta (
3442         koush@koushikdutta.com). Disable GC_no_dls on android.
3443
3444 2009-11-12  Mark Probst  <mark.probst@gmail.com>
3445
3446         * sgen-gc.c (find_tlab_next_from_address): Handle the case where
3447         tlab_next points outside the TLAB because the allocator was
3448         interrupted.
3449
3450 2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
3451
3452         * reflection.c (mono_image_module_basic_init): Handle exceptions correctly.
3453
3454 2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
3455
3456         * object-internals.h: Change signature for mono_string_to_utf8_image.
3457
3458         * object.c (mono_string_to_utf8_image): Change signature to take a MonoError
3459         argument.
3460
3461         * reflection.c: Take care of mono_string_to_utf8_image change and avoid raising
3462         exceptions due to mono_string_to_utf8.
3463
3464 2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
3465
3466         * object-internals.h: Change signature for mono_string_to_utf8_mp.
3467
3468         * object.c (mono_remote_class): Make sure all resources are released before
3469         raising an exception.
3470
3471         * object.c (mono_print_unhandled_exception): Avoid raising an exception.
3472
3473 2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
3474
3475         * mono-perfcounters.c (network_get_impl): Change variable initialization
3476         ordering to fix potential memory leak in case of exceptions.
3477
3478         * mono-perfcounters.c (mono_perfcounter_create): Properly handle badly
3479         encoded strings.
3480         
3481 2009-11-09  Rodrigo Kumpera  <rkumpera@novell.com>
3482
3483         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): Change
3484         variable initialization ordering to fix potential memory leak in case
3485         of exceptions.
3486
3487 2009-11-09  Zoltan Varga  <vargaz@gmail.com>
3488
3489         * icall.c (mono_ArgIterator_Setup): Remove the MONO_ARCH_REGPARMS stuff, its not
3490         needed.
3491
3492 2009-11-07  Rodrigo Kumpera  <rkumpera@novell.com>
3493
3494         * appdomain.c: Fix shadow path code to better deal with exceptions.
3495
3496 2009-11-07  Rodrigo Kumpera  <rkumpera@novell.com>
3497
3498         * appdomain.c: Use checked version of mono_string_to_utf8 to avoid raising an
3499         exception in the middle of the runtime code.
3500
3501 2009-11-07  Rodrigo Kumpera  <rkumpera@novell.com>
3502
3503         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): Don't
3504         leak memory with broken envvar value.
3505
3506 2009-11-06  Mark Probst  <mark.probst@gmail.com>
3507
3508         * reflection.c (mono_reflection_setup_internal_class): Because
3509         nested classes are not added to the name cache, we must put them
3510         in the reflection_info_unregister_classes list.
3511
3512 2009-11-05  Sebastien Pouliot  <sebastien@ximian.com>
3513
3514         * class.c: When CoreCLR is enabled don't call mono_init_com_types
3515         if MONO_CLASS_IS_IMPORT return true unless the type reside in 
3516         platform (trusted) code. Instead we return a TypeLoadException to
3517         be thrown later. This is the exception thrown by Silverlight 2 if
3518         a type, inside application (user) code is marked with [ComImport]
3519
3520 2009-11-05  Zoltan Varga  <vargaz@gmail.com>
3521
3522         * icall.c (ves_icall_System_Diagnostics_Debugger_IsAttached_internal): Call
3523         mono_is_debugger_attached () too.
3524
3525         * mono-debug.c (mono_is_debugger_attached): New helper function.
3526         (mono_set_is_debugger_attached): Ditto.
3527
3528 2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
3529
3530         * object-internals.h: Add mono_string_to_utf8_checked.
3531
3532         * object.c: Implement mono_string_to_utf8_checked.
3533
3534 2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
3535
3536         * class.c: Add missing check for load errors after every
3537         call to mono_class_setup_fields
3538
3539         Fixes #552282.
3540
3541 2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
3542
3543         metadata-verify.c (verify_tables_schema): Fix the error message.
3544
3545 2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
3546
3547         * metadata.c: Change event table schema to use TDOR for event type
3548         as this is what it's meant to be.
3549
3550         * metadata.c (mono_metadata_compute_size): Change MONO_TABLE_ASSEMBLYPROCESSOR
3551         to MONO_TABLE_ASSEMBLYREFPROCESSOR, which is table that has a MONO_MT_TABLE_IDX
3552         entry.
3553
3554         * metadata.c (mono_metadata_compute_size): Trim MT_TABLE_IDX of code that no
3555         longer makes sense: remove MONO_TABLE_EVENT and remove checks for non-existent
3556         rows in MONO_TABLE_GENERICPARAM.
3557
3558         Fixes #552289.
3559
3560 2009-11-05  Rodrigo Kumpera  <rkumpera@novell.com>
3561
3562         * class.c (mono_image_add_to_name_cache): Assert on duplicate
3563         insertion.
3564
3565         * reflection.c (mono_reflection_setup_internal_class): Avoid
3566         registering a gc root the same MonoClass multiple times.
3567         Don't register nested types on the global scope as they should
3568         not be available there.
3569
3570 2009-11-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3571
3572         * culture-info-tables.h: regenerated.
3573
3574 2009-11-04 Gonzalo Paniagua Javier <gonzalo@novell.com>
3575
3576         * debug-helpers.c: avoid g_strdup() in mono_type_full_name().
3577
3578 2009-11-04  Sebastien Pouliot  <sebastien@ximian.com>
3579
3580         * string-icalls.c|h: Remove string internal calls that are not 
3581         used anymore by the class libraries.
3582         * icall.c: Remove System_Reflection_FieldInfo_internal_from_handle
3583         which is not used in the class librairies.
3584         * icall-def.h: Update tables.
3585
3586 2009-11-04  Rodrigo Kumpera  <rkumpera@novell.com>
3587
3588         * class.h: Move mono_class_inflate_generic_type_checked...
3589
3590         * class-internals.h: to here and make it internal. We don't want to
3591         further expose MonoGenericContext. 
3592
3593 2009-11-04  Rodrigo Kumpera  <rkumpera@novell.com>
3594
3595         * verify.c (mono_method_verify): Improve error message.
3596
3597 2009-11-04  Rodrigo Kumpera  <rkumpera@novell.com>
3598
3599         * reflection.c (fieldref_encode_signature): If field_image is NULL then
3600         the token is already properly encoded. Fixs 4.0 build.
3601
3602 2009-11-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3603
3604         * locales.c (construct_number_format): Check if the number index is
3605         valid before trying to use it, if not, just return.
3606         
3607 2009-11-04  Zoltan Varga  <vargaz@gmail.com>
3608
3609         * marshal.c (mono_marshal_get_runtime_invoke): Don't reset abort exceptions,
3610         since that loses the abort state. Fixes #539394.
3611
3612 2009-11-03  Zoltan Varga  <vargaz@gmail.com>
3613
3614         * marshal.c (mono_marshal_get_native_wrapper): For icall wrappers, add an
3615         explicit this argument to the call signature.
3616         (mono_marshal_get_icall_wrapper): Ditto.
3617
3618 2009-11-03  Rodrigo Kumpera  <rkumpera@novell.com>
3619
3620         * reflection.c (fieldref_encode_signature): Add new field_image parameter
3621         to indicate which assembly to use when resolving a custom-mod.
3622
3623         Fixes handling of volatile fields used across assemblies as reported in #551513.
3624
3625 2009-11-03  Rodrigo Kumpera  <rkumpera@novell.com>
3626
3627         * loader.c: Improve error messages.
3628
3629 2009-11-03  Rodrigo Kumpera  <rkumpera@novell.com>
3630
3631         * class.c (mono_class_setup_methods): Only give a slot for virtual methods
3632         of interfaces. Fixes IKVM.
3633
3634         * class.c (mono_class_setup_vtable_general): Improve debug spew.
3635
3636 2009-11-03  Rodrigo Kumpera  <rkumpera@novell.com>
3637
3638         * verify.c (verifier_inflate_type): Return the inflated type on success.
3639
3640 2009-11-02  Zoltan Varga  <vargaz@gmail.com>
3641
3642         * debug-mono-symfile.c (check_line): Fix the handling of IL offset 0.
3643
3644         * threads.c (mono_thread_attach): Call the profiler thread start callback.
3645
3646         * object-internals.h (_MonoThreadInternal): Add a 'flags' field.
3647
3648         * threads.c (build_wait_tids): Ignore threads which have the DONT_MANAGE
3649         flag set.
3650
3651         * profiler.c: Add new profiler callbacks for runtime invoke.
3652
3653         * object.c (mono_runtime_invoke): Call the runtime invoke callbacks.
3654
3655 2009-11-01  Mark Probst  <mark.probst@gmail.com>
3656
3657         * sgen-gc.c: Keep track of the reason for a major collection and
3658         write it to the heap-dump file.
3659
3660 2009-10-31  Miguel de Icaza  <miguel@novell.com>
3661
3662         * threads.c: refactor the code that initializes the
3663         thread_start_args into a reusable function and use this in the two
3664         methods that start up threads.
3665
3666 2009-10-31  Zoltan Varga  <vargaz@gmail.com>
3667
3668         * appdomain.c (mono_domain_try_unload): Applied patch from Romain Tartière.
3669         Fix returning when WaitForSingleObjectEx returns WAIT_IO_COMPLETION.
3670
3671 2009-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
3672
3673         * mono-perfcounters.c: add the "_Total" instance for CPU counters.
3674         Until now, we only had the per-cpu(core) counters.
3675
3676 2009-10-28  Mark Probst  <mark.probst@gmail.com>
3677
3678         * gc-internal.h, boehm-gc, sgen-gc.c, null-gc: Add
3679         mono_gc_get_suspend_signal(), which returns the suspend signal
3680         number used by the GC.
3681
3682 2009-10-25  Zoltan Varga  <vargaz@gmail.com>
3683
3684         * threads.c (start_wrapper): Avoid an assert if thread_start_args () is NULL.
3685
3686         * threads.c (start_wrapper): Call mono_profiler_thread_start () later after
3687         signalling start_notify.
3688
3689 2009-10-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
3690
3691         * appdomain.c: do not test the st_mode field for shadow-copies.
3692         Fixes bug #545276.
3693
3694 2009-10-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
3695
3696         * threadpool.[ch]: added hooks for thread start/finish and item
3697         processing begin/end. For monotouch use only.
3698
3699 2009-10-24  Zoltan Varga  <vargaz@gmail.com>
3700
3701         * threads.c (mono_thread_get_name): New helper function.
3702
3703         * reflection.c (resolve_object): Set handle_class for strings too.
3704         (mono_reflection_create_custom_attr_data_args): New helper function to decode
3705         a cattr blob into a set of arrays and structures without creating the custom
3706         attributes themselves.
3707         (create_custom_attr_data): Simplify using create_custom_attr_data_args.
3708
3709         * mono-debug.c (mono_debug_il_offset_from_address): New helper function.
3710
3711         * debug-mono-symfile.c (mono_debug_symfile_get_line_numbers): New helper
3712         function.
3713
3714 2009-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
3715
3716         * verify.c: Replace calls to mono_class_inflate_generic_type with
3717         mono_class_inflate_generic_type_checked. Fixes #480005.
3718
3719 2009-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
3720
3721         * class.c (mono_class_inflate_generic_type_with_mempool): Clear the error
3722         object since not all paths lead to callees initing it.
3723
3724 2009-10-23  Alp Toker  <alp@nuanti.com>
3725
3726         Fix embedding API breakage from r144688. mono-compiler.h is an internal
3727         header and should not be shipped:
3728
3729         * class.h: Back out MONO_DEPRECATED change. Currently depends on config.h
3730         which is specific to the mono build. Not going to work.
3731
3732 2009-10-23  Sebastien Pouliot  <sebastien@ximian.com>
3733
3734         * security-manager.c: Report if core-clr is active from
3735         ves_icall_System_Security_SecurityManager_get_SecurityEnabled
3736         to allow Moonlight BCL to behave appropriately (both in browser
3737         and outside, e.g. smcs)
3738
3739 2009-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
3740
3741         * mono-config.c: ignore UTF-8 BOM and report parser errors.
3742         Fixes bug #549108.
3743
3744 2009-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
3745
3746         * class.c: fix typo.
3747
3748 2009-10-22  Rodrigo Kumpera  <rkumpera@novell.com>
3749
3750         * class-internals.h: Change signature of mono_class_inflate_generic_type_with_mempool to take
3751         a MonoError parameter.
3752
3753         * class.h: Mark mono_class_inflate_generic_type deprecated, add new mono_class_inflate_generic_type_checked
3754         version that can does proper error handling.
3755
3756         * class.c (inflate_generic_type): Add a MonoError parameter. Don't assert on error, use new mono error machinery.
3757
3758         * class.c (mono_class_inflate_generic_type_with_mempool): Add new MonoError parameter.
3759
3760         * class.c, generics-sharing.c: Changes to handle mono_class_inflate_generic_type_with_mempool new signature.
3761
3762 2009-10-20  Zoltan Varga  <vargaz@gmail.com>
3763
3764         * debug-helpers.c (dis_one): Fix the disassembly of empty strings when
3765         NO_UNALIGNED_ACCESS is defined.
3766
3767 2009-10-22  Zoltan Varga  <vargaz@gmail.com>
3768
3769         * marshal.c (mono_string_builder_to_utf16): Applied patch from
3770         Hib Eris  <hib@hiberis.nl>. Return empty string for empty string builders.
3771         Fixes #549173.
3772
3773 2009-10-22  Mark Probst  <mark.probst@gmail.com>
3774
3775         * sgen-gc.c: Shorten sections whenever possible.
3776
3777 2009-10-22  Mark Probst  <mark.probst@gmail.com>
3778
3779         * sgen-gc.c: Use our portable semaphore #defines.
3780
3781 2009-10-22  Mark Probst  <mark.probst@gmail.com>
3782
3783         * sgen-gc.c: A debug option for dumping the heap layout to a file
3784         after each collection.
3785
3786 2009-10-21  Mark Probst  <mark.probst@gmail.com>
3787
3788         * sgen-gc.c: Make managed write barriers atomic via
3789         thread-restarts.
3790
3791 2009-10-21  Rodrigo Kumpera  <rkumpera@novell.com>
3792
3793         * verify.c (verify_delegate_compatibility): Properly verify delegate creation of static
3794         methods. Fixes #543021.
3795
3796 2009-10-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
3797
3798         * socket-io.[ch]: fix VS build.
3799
3800 2009-10-21 Gonzalo Paniagua Javier <gonzalo@novell.com>
3801
3802         * icall-def.h:
3803         * socket-io.[ch]: implemented SendFile.
3804
3805 2009-10-20  Zoltan Varga  <vargaz@gmail.com>
3806
3807         * class.c (mono_class_create_from_typedef): Initialize class->element_class
3808         before the interfaces to avoid crashes later if class initialization fails.
3809         Fixes #548417.
3810
3811         * marshal.c (emit_marshal_vtype): Implement byref marshalling of DateTime.
3812         Fixes #548276.
3813
3814 2009-10-20  Marek Safar  <marek.safar@gmail.com>
3815
3816         * domain.c: Bump 4.0 version.
3817
3818 2009-10-19  Sebastien Pouliot  <sebastien@ximian.com>
3819
3820         * assembly.c (mono_assembly_load_reference): Fix leak when 'status'
3821         code is known. (parse_public_key) Remove duplicate (unneeded) NULL
3822         check since 'pubkey' can't be NULL at this stage
3823         * icall.c (ves_icall_System_Array_FastCopy): Add comment about
3824         the check. (ves_icall_Type_GetInterfaceMapData) Remove duplicate
3825         initialization of 'iter'
3826
3827 2009-10-16  Bill Holmes  <billholmes54@gmail.com>
3828
3829         * cominterop.c : Search the interface parts of vtable to find 
3830           method matches.  Fixes 547030.
3831
3832         Code is contributed under MIT/X11 license.
3833
3834 2009-10-15 Gonzalo Paniagua Javier <gonzalo@novell.com>
3835
3836         * marshal.c: BeginInvoke cannot be called on multicast delegates with
3837         multiple targets. Fixes bug #574426.
3838
3839 2009-10-14  Massimiliano Mantione  <massi@ximian.com>
3840
3841         * profiler.h: Put here the definition of
3842         MONO_PROFILER_MAX_STAT_CALL_CHAIN_DEPTH
3843         (and fix the build...).
3844
3845 2009-10-14  Massimiliano Mantione  <massi@ximian.com>
3846
3847         * profiler.c, profiler.h, profiler-private.h:
3848         Added support for different ways of getting call chains in stat mode.
3849
3850 2009-10-12  Mark Probst  <mark.probst@gmail.com>
3851
3852         * object.c, object-internals.h: New function for computing the
3853         size of an array, factored out of mono_array_new_full().  Use
3854         SGen's functions for allocating arrays and vectors.
3855
3856         * sgen-gc.c, gc-internal.h: Special functions for allocating
3857         arrays and vectors without race conditions.  A managed array
3858         allocator method.
3859
3860         * boehm-gc.c, null-gc.c: Don't provide a managed array allocator.
3861
3862 2009-10-12  Mark Probst  <mark.probst@gmail.com>
3863
3864         * object.c, object.h, icall.c: Write barriers do the copying now,
3865         as well, so no need for an additional memcpy.
3866
3867         * sgen-gc.c: Lock when storing remsets.  Do the memory
3868         copying/moving in the write barriers.
3869
3870         * null-gc.c, boehm-gc.c: Write barriers must copy here, too.
3871
3872         * reflection.c: Added an assert.
3873
3874 2009-10-12  Mark Probst  <mark.probst@gmail.com>
3875
3876         * threads.c, process.c: A few missing write barriers.
3877
3878 2009-10-12  Joel W. Reed <joelwreed@gmail.com>
3879
3880         * mono-perfcounters.c, mono-perfcounters-def.h: Add
3881         network performance counters for bytes sent per second, bytes
3882         received per second, and bytes total per second.
3883
3884         Code is contributed under MIT/X11 license.
3885
3886 2009-10-09  Mark Probst  <mark.probst@gmail.com>
3887
3888         * threads.c (ves_icall_System_Threading_Thread_GetAbortExceptionState):
3889         Fix warning.
3890
3891 2009-10-09  Mark Probst  <mark.probst@gmail.com>
3892
3893         * threads.c, object-internals.h, object.c: Move code for
3894         transferring an object to a different domain (via
3895         serialization/remoting) to object.c.
3896
3897         * object.c (call_unhandled_exception_delegate): If the exception
3898         is in a different domain than the delegate, transfer the exception
3899         to that domain.
3900
3901 2009-10-07  Zoltan Varga  <vargaz@gmail.com>
3902
3903         * marshal.c (emit_marshal_vtype): Emit marshalling of DateTime to OLE DATE.
3904         Fixes #322934.
3905
3906 2009-10-06  Zoltan Varga  <vargaz@gmail.com>
3907
3908         * domain.c (DEFAULT_RUNTIME_VERSION): Change this to v2.0.
3909
3910 2009-10-06  Mark Probst  <mark.probst@gmail.com>
3911
3912         * object.c (mono_method_return_message_restore): Handle the case
3913         where the argument is an instance of a generic type.  Fixes
3914         #544446.
3915
3916 2009-10-06  Mark Probst  <mark.probst@gmail.com>
3917
3918         * object.c (set_value): Write barrier fix - we must pass the
3919         count, not the size.
3920
3921 2009-10-05  Zoltan Varga  <vargaz@gmail.com>
3922
3923         * domain.c (mono_init_internal): Print a useful error message when encountering
3924         an old mscorlib, instead of crashing. Fixes #544307.
3925
3926 2009-10-04  Zoltan Varga  <vargaz@gmail.com>
3927
3928         * appdomain.c (copy_app_domain_setup): Fix a warning.
3929
3930         * debug-helpers.c (dis_one): Ditto.
3931
3932 2009-10-04  Mark Probst  <mark.probst@gmail.com>
3933
3934         * domain-internals.h, appdomain.c: The AppDomainSetup is copied
3935         into the new domain, instead of referencing the original one.
3936
3937         * marshal.c, marshal.h: Make mono_marshal_xdomain_copy_value()
3938         non-static.
3939
3940         * appdomain.c: Corlib version bump.
3941
3942 2009-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
3943
3944         * threadpool.c: one more...
3945
3946 2009-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
3947
3948         * threadpool.c: forgot a LeaveCriticalSection when telling the idle
3949         threads to die because we're shutting down. delgate5.exe works again.
3950
3951 2009-10-01  Bill Holmes  <billholmes54@gmail.com>
3952
3953         * cominterop.c (mono_marshal_free_ccw_entry): Updating the
3954           ccw_interface_hash table when a ccw is finalized.
3955
3956         Code is contributed under MIT/X11 license.
3957
3958 2009-09-30  Mark Probst  <mark.probst@gmail.com>
3959
3960         * assembly.c, domain.c, image.c, metadata-internals.h: Split
3961         domain and image unloading into two steps.  We must do this
3962         because clearing the domain in SGen requires the class metadata to
3963         be intact, but we need to free the mono_g_hash_tables in case a
3964         collection occurs during domain unloading and the roots would trip
3965         up the GC.
3966
3967 2009-09-30  Mark Probst  <mark.probst@gmail.com>
3968
3969         * object-internals.h: Remove serialized culture fields from
3970         MonoInternalThread.
3971
3972         * icall-def.h, thread-types.h, threads.c: Remove serialized
3973         culture icalls.
3974
3975         * appdomain.c: Corlib version bump.
3976
3977 2009-09-30  Zoltan Varga  <vargaz@gmail.com>
3978
3979         * marshal.c (emit_marshal_object): Emit out marshalling of stringbuilders.
3980         Fixes #543133.
3981
3982 2009-09-30  Mark Probst  <mark.probst@gmail.com>
3983
3984         * sgen-gc.c: Try to shorten the new section after a major
3985         allocation to avoid ever-growing sections.
3986
3987 2009-10-13  Martin Baulig  <martin@ximian.com>
3988
3989         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
3990         `MONO_DEBUGGER_EVENT_TRAMPOLINE' into
3991         `MONO_DEBUGGER_EVENT_OLD_TRAMPOLINE' and added a new
3992         `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
3993
3994         * mono-debug.h (MONO_DEBUGGER_MINOR_VERSION): Bump to 4.
3995
3996 2009-09-29 Gonzalo Paniagua Javier <gonzalo@novell.com>
3997
3998         * threadpool.c: fixed the order in which 'completed' and the wait
3999         handle, if any, are set.  Fixes bug #542933 and delegate2.exe
4000         No need to use the wait_handle field of ASyncCall. Make sure the
4001         threadpool is active when adding a job or queueing an idle thread.
4002
4003 2009-09-29  Zoltan Varga  <vargaz@gmail.com>
4004
4005         * object.c (mono_unhandled_exception): Fix a crash if there is no main thread.
4006
4007         * threads.c (build_wait_tids): Fix a crash if there is no main thread, like
4008         when using --compile-all.
4009
4010 2009-09-27  Mark Probst  <mark.probst@gmail.com>
4011
4012         * metadata.c (free_generic_class): Unregister the field_objects
4013         roots if we're using SGen.
4014
4015 2009-09-27  Mark Probst  <mark.probst@gmail.com>
4016
4017         * reflection.c (mono_dynamic_image_free): Deregister the GC root
4018         for GenericParamTableEntry.gparam.
4019
4020 2009-09-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
4021
4022         * marshal.c: don't create the handle when calling. It is created later
4023         if needed.
4024
4025 2009-09-26  Mark Probst  <mark.probst@gmail.com>
4026
4027         * sgen-gc.c: Warning fixes.
4028
4029 2009-09-26  Mark Probst  <mark.probst@gmail.com>
4030
4031         * sgen-gc.c: New debug option "xdomain-checks", which scans the
4032         whole heap for cross-domain references before each collection.
4033
4034         * sgen-scan-object.h: The scan action can now use SCAN to scan the
4035         object.
4036
4037         * threadpool-internals.h, threadpool.c: New function
4038         mono_thread_pool_is_queue_array() for checking whether a given
4039         array is used as a (cross-domain) queue by the thread pool code.
4040
4041 2009-09-26  Mark Probst  <mark.probst@gmail.com>
4042
4043         * sgen-gc.c: New function mono_gc_scan_for_specific_ref() which
4044         searches the whole heap for objects containing a specific
4045         reference.  Only for debugging.
4046
4047 2009-09-26  Mark Probst  <mark.probst@gmail.com>
4048
4049         * appdomain.c (MONO_CORLIB_VERSION): Bumped.
4050
4051         * icall-def.h, threads.c, threads-types.h: New icalls for copying
4052         byte arrays between domains.
4053
4054 2009-09-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
4055
4056         * threadpool.c:
4057         * class-internals.h:
4058         * mono-perfcounters-def.h:
4059         * mono-perfcounters.c:
4060         -There is a list of idle threads
4061         -Each of those idle threads wait on their own WaitHandle instead
4062         of all of them using the same semaphore. When a new work item is
4063         added, the job is assigned directly to an idle thread or a newly
4064         created one if possible and then the handle for that thread is
4065         signaled. Compare that to the current approach where all the
4066         threads in the pool compete to dequeue a job from the same
4067         queue.
4068         -New struct ThreadPool that brings together the bunch of static
4069         variable for each threadpool (IO and regular).
4070         -New performance counters: # of items added and its rate per
4071         threadpool. The rate will be used later, perhaps together with
4072         other perf. counters, to decide when idle threads should exit.
4073
4074 2009-09-25  Jonathan Chambers  <joncham@gmail.com>
4075
4076         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Receive_internal): 
4077         Fix typo on Windows build.      
4078         (ves_icall_System_Net_Sockets_Socket_Accept_internal): Fix typo on Windows build.
4079         
4080         Code is contributed under MIT/X11 license.
4081
4082 2009-09-25  Mark Probst  <mark.probst@gmail.com>
4083
4084         * object-internals.h: The Thread class is split up into Thread and
4085         InternalThread now.  We have exactly one InternalThread per
4086         thread, and at most one Thread per appdomain per thread.  Most
4087         data is stored in InternalThread.  All InternalThread objects live
4088         in the root domain.
4089
4090         * class-internals.h: Add internal_thread_class to MonoDefaults.
4091
4092         * appdomain.c (mono_domain_unload), attach.c (receiver_thread),
4093         domain.c, gc.c, icall-def.h, monitor.c, object.c, sgen-gc.c,
4094         socket-io.c, threadpool.c, thread-types.h, threads.c: Changes
4095         resulting from the split of the Thread class.
4096
4097         * gc-internal.h: Prototype for new function for checking whether a
4098         thread is the finalizer thread.
4099
4100         * appdomain.c: Corlib version bump.
4101
4102 2009-09-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4103
4104         * appdomain.c|h: Add a mono_domain_try_unload method which is
4105         equivalent to mono_domain_unload, except that it returns an exception
4106         instead of throwing it. Make mono_domain_unload use the
4107         mono_domain_try_unload method to avoid code-duplication.
4108
4109 2009-09-25  Zoltan Varga  <vargaz@gmail.com>
4110
4111         * debug-helpers.c (dis_one): Avoid unaligned accesses on platforms where that is
4112         a problem.
4113
4114 2009-09-24  Zoltan Varga  <vargaz@gmail.com>
4115
4116         * marshal.c (emit_ptr_to_object_conv): Generate an exception instead of
4117         aborting when a conversion is not implemented.
4118
4119 2009-09-23  Miguel de Icaza  <miguel@novell.com>
4120
4121         * verify.c: when comparing culture strings, use g_ascii_strcmp
4122
4123         * assembly.c (mono_public_tokens_are_equal): Change g_strcasecmp
4124         when comparing public key tokens to use memcmp on 16 bytes.   I do
4125         not believe this ever worked as advertised in the past.
4126
4127         The standard Public Key is 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00
4128         which would have always failed earlier.
4129
4130 2009-06-25  Miguel de Icaza  <miguel@novell.com>
4131
4132         * gc.c: Raise a NullArgumentException if the object passed is
4133         null.
4134
4135 2009-09-22  Zoltan Varga  <vargaz@gmail.com>
4136
4137         * image.c (mono_image_close): Atomically decrement the reference count and
4138         remove the image from the hash tables, to prevent another thread from seeing a
4139         dying MonoImage. Fixes #541194.
4140
4141 2009-09-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
4142
4143         * threadpool.c: actually use the minimum number of 'completion ports'
4144         (for us is just a potential worker thread).
4145
4146 2009-09-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
4147
4148         * threadpool.c: remove ares_htable. It does not make sense any more
4149         since the same objects are now stored in GC-tracked arrays while they are
4150         in the queue.
4151
4152 2009-09-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
4153
4154         * threadpool.c: increase the minimum length of the queues to 128.
4155         Remove warning.
4156
4157 2009-09-21  Zoltan Varga  <vargaz@gmail.com>
4158
4159         * marshal.c (mono_marshal_get_string_ctor_signature): New internal function to
4160         return the modified signature used by string ctors.
4161
4162 2009-09-20  Zoltan Varga  <vargaz@gmail.com>
4163
4164         * marshal.c (mono_marshal_get_runtime_invoke_dynamic): New internal function
4165         to return a runtime-invoke wrapper which uses DYN_CALL to call the wrapped
4166         method, to be used by full-aot.
4167
4168 2009-09-18  Rodrigo Kumpera  <rkumpera@novell.com>
4169
4170         Since the runtime supports lazy initialization of a type's vtable and this can cause a type
4171         to fail, we need to ensure that the vtable is properly initialized at spots were the type must
4172         be known to be good.
4173
4174         * class.c (mono_class_init): Fail array types if their element type fails initialization
4175         as well.
4176
4177         * object.c (mono_class_create_runtime_vtable): Fail array types if their element type fails
4178         initialization, additionally we request the element_type vtable to be initialized as well.
4179
4180         This is fine and should not increase the working set in any meaningful way since it's reasonable
4181         to assume       that most code will create an array and eventually populate it, which will require the
4182         type's vtable to be initialized.
4183
4184         * loader.c (field_from_memberref): Add a comment for a possibly useless mono_class_init call.
4185
4186 2009-09-17  Atsushi Enomoto  <atsushi@ximian.com>
4187
4188         * normalization-tables.h : regenerated.
4189
4190 2009-09-16  Zoltan Varga  <vargaz@gmail.com>
4191
4192         * mono-debug.c (mono_debug_add_method): Increase the size of the buffer,
4193         a leb128 encoding can take up to 5 bytes.
4194
4195 2009-09-15  Rodrigo Kumpera  <rkumpera@novell.com>
4196
4197         * class.c (verify_class_overrides): Remove useless argument.
4198
4199         * class.c (mono_class_setup_vtable_general): Move the overrides check to happen
4200         before interface enumeration as this is no longer required.
4201
4202 2009-09-15  Rodrigo Kumpera  <rkumpera@novell.com>
4203
4204         * class.c: New function mono_class_is_assignable_from_slow that is safe to be
4205         used under mono_class_init context. This functions avoid any code path that
4206         calls mono_class_init, which leads it to be slow as some things like the interface
4207         bitmap are not available.
4208
4209         * class.c (verify_class_overrides): Use mono_class_is_assignable_from_slow instead
4210         of it's own broken version. Fixes the verifier part of #538588.
4211
4212         * class-internals.h: Export mono_class_is_assignable_from_slow as part of the internal
4213         API.
4214
4215 2009-09-15  Mark Probst  <mark.probst@gmail.com>
4216
4217         * class.c (mono_class_init): Always set an exception in a class if
4218         vtable setup fails.  Fixes #538577.
4219
4220         * generic-sharing.c: Raise an exception if mono_class_vtable()
4221         returns NULL.
4222
4223 2009-09-13  Zoltan Varga  <vargaz@gmail.com>
4224
4225         * marshal.c (mono_marshal_get_runtime_invoke): Don't share instance 
4226         methods of vtypes, as they could be incorrectly shared with static methods
4227         taking an IntPtr argument.
4228
4229 2009-09-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
4230
4231         * domain.c:
4232         * object.c:
4233         * class-internals.h: renamed waithandle_class to
4234         manualresetevent_class.
4235         * marshal.c: propagate the exception if a remoting BeginInvoke call
4236         fails.
4237
4238 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4239
4240         * object.c: Properly handle vtable failures.
4241
4242 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4243
4244         * socket-io.c: Assert on vtable failure.
4245
4246         * mono-mlist.c: Assert on vtable failure.
4247
4248 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4249
4250         * marshal.c: Assert on vtable failure.
4251
4252 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4253
4254         * icall.c: Properly handle vtable failures.
4255
4256 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4257
4258         * debug-helpers.c (mono_class_describe_statics): Properly handle vtable failures.
4259
4260 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4261
4262         * cominterop.c (ves_icall_System_ComObject_CreateRCW): Property handle vtable failures.
4263
4264         * console-unix.c (do_console_cancel_event): Same.
4265
4266 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4267
4268         * class-internals.h: Add mono_class_vtable_full function that allows control
4269         if an exception should be raised or not.
4270
4271         * object.c (mono_class_vtable): Call into mono_class_vtable_full. Fix this function
4272         to do what its documentation say, that is to return NULL and set exception_type on
4273         failure.
4274
4275         * object.c (mono_class_create_runtime_vtable): Add new raise_on_error parameter
4276         and change the code to honor it.
4277
4278 2009-09-11  Rodrigo Kumpera  <rkumpera@novell.com>
4279
4280         * verify.c: Fix typo in error message.
4281
4282 2009-09-10  Sebastien Pouliot  <sebastien@ximian.com>
4283
4284         * security-core-clr.c: Fix default_platform_check so it can run
4285         the runtime coreclr tests (without an infinite recursion when
4286         throwing an exception).
4287
4288 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4289
4290         object.c (mono_delegate_ctor_with_method): Guard against null method.
4291
4292 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4293
4294         * marshal.c (mono_marshal_get_xappdomain_dispatch): Add an assert
4295         that should be replaced with error handling later.
4296
4297 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4298
4299         * marshal.c (mono_delegate_end_invoke): Fix warning.
4300
4301 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4302
4303         * loader.c (mono_field_from_token): Properly handle invalid
4304         dynamic tokens.
4305
4306 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4307
4308         * pedump.c (verify_image_file): Skip types that can't be
4309         decoded.
4310
4311 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4312
4313         * verify.c: Look for recursive valuetypes only against the
4314         type been initialized as this is a lot simpler and works.
4315
4316 2009-09-10  Rodrigo Kumpera  <rkumpera@novell.com>
4317
4318         * verify.c: Ensure that fields are properly loaded before
4319         checking them.
4320
4321 2009-09-10  Bill Holmes  <billholmes54@gmail.com>
4322
4323         * object.c (mono_object_get_virtual_method) : Call 
4324           mono_cominterop_get_invoke if the object is a COM object.
4325
4326         Code is contributed under MIT/X11 license.
4327
4328 2009-09-09  Rodrigo Kumpera  <rkumpera@novell.com>
4329
4330         * verify.c: Check for recursive valuetype definitions.
4331
4332 2009-09-08  Rodrigo Kumpera  <rkumpera@novell.com>
4333
4334         Use inheritance-aware interface offsets. Inherited types use the same offsets
4335         of their parents. This reduce offset duplication in case more than one type in
4336         the inheritance tree explicitly implements the same interface.
4337
4338         This also removes a source of vtable bubbles found in #532409. An abstract type
4339         isn't required to provide abstract methods to all interfaces it implements, which
4340         resulted in a bubble with the previous scheme as the child would get a non-full
4341         vtable from its parent. We fail all concrete types with vtable bubbles, so this
4342         should be fixed.
4343
4344         This change causes an increase of 1.7% in vtable memory usage for IronPython pystone but
4345         it's expected to not cause any significant increase beyond that.
4346
4347         * class.c (setup_interface_offsets): Compute super class iface offsets
4348         first to force sharing.
4349
4350         * class.c: Add VTABLE_SELECTOR macro to the vtable debug macros to help
4351         dumping only the relevant ones.
4352
4353         * class.c (mono_class_setup_vtable_general): Give newslot, non final, virtual
4354         methods a new slot regardless if they belong to an interface or not. This allows
4355         an inherited type to override the iface method separately from the class one.
4356
4357 2009-09-04 Gonzalo Paniagua Javier <gonzalo@novell.com>
4358
4359         * threadpool.c: make the Sleep() alertable to prevent delays exiting
4360         applications that take less than 2s to execute.
4361         Bug #524984 fixed.
4362
4363 2009-09-04  Zoltan Varga  <vargaz@gmail.com>
4364
4365         * object-internals.h (MonoRuntimeCallbacks): Add a 'get_runtime_build_info' callback.
4366
4367         * object.c (mono_get_runtime_callbacks): New helper function to return
4368         the runtime callbacks.
4369
4370         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Use the result of
4371         mono_get_runtime_build_info () as the display name.
4372         
4373 2009-09-03  Zoltan Varga  <vargaz@gmail.com>
4374
4375         * marshal.c (emit_marshal_array): Call conv.ovf.i on the array parameter
4376         argument, since NEWARR expects a native int. Fixes #481559.
4377
4378 2009-09-03  Rodrigo Kumpera  <rkumpera@novell.com>
4379
4380         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Guard
4381         against broken SRE methods.
4382
4383 2009-09-03  Rodrigo Kumpera  <rkumpera@novell.com>
4384
4385         * class.c (mono_type_get_full): Don't call mono_metadata_free_type on
4386         a NULL variable. Abort early on failure.
4387
4388 2009-09-03  Rodrigo Kumpera  <rkumpera@novell.com>
4389
4390         * class.c (can_access_type): Fail visibility test for non nested
4391         types with nested visibility.
4392
4393 2009-09-02  Sebastien Pouliot  <sebastien@ximian.com>
4394
4395         * assembly.c (parse_public_key): Avoid allocating (and not 
4396         freeing) the public key array when it's not requested by the 
4397         caller.
4398         * threads.c (mono_thread_manage, mono_thread_create_internal, 
4399         ves_icall_System_Threading_Thread_Thread_internal): Free 
4400         allocated memory on error.
4401
4402 2009-09-02  Rodrigo Kumpera  <rkumpera@novell.com>
4403
4404         * icall.c, icall-def.h: Remove some dead code from early SRE changes.
4405
4406 2009-09-02  Rodrigo Kumpera  <rkumpera@novell.com>
4407
4408         * class.c (mono_class_setup_fields): Remove duplicated local variable
4409         named gklass.
4410         Rename gklass to gtd to reflect the fact that it points to the generic
4411         type definition.
4412         Remove the duplicated call to mono_class_setup_fields on gtd and move
4413         the error check to the beginning.
4414
4415 2009-09-02  Rodrigo Kumpera  <rkumpera@novell.com>
4416
4417         * marshal.c (mono_array_to_lparray): Do DISABLE_COM properly.
4418         Remove cruft of the previous patch.
4419
4420 2009-09-01  Rodrigo Kumpera  <rkumpera@novell.com>
4421
4422         * metadata-verify.c (verify_method_table): Check for abstract + final.
4423         Fixes #534175.
4424
4425 2009-09-01  Rodrigo Kumpera  <rkumpera@novell.com>
4426
4427         * verify.c (verify_class_fields): Check for duplicate fields.
4428
4429 2009-09-01  Rodrigo Kumpera  <rkumpera@novell.com>
4430
4431         * metadata-verify.c: Verify the typeref table for duplicates.
4432
4433 2009-09-01  Rodrigo Kumpera  <rkumpera@novell.com>
4434
4435         This reverts r140936 and properly handles interfaces with static methods. The
4436         right fix is to ensure vtables without bubles which is an easier to verify
4437         constraint. We should avoid such special cases as of the reverted patch as those
4438         only make the runtime more brittle.
4439
4440         * class.c (mono_class_setup_vtable_general): Revert previous change that handle
4441         static methods on interfaces.
4442
4443         * class.c (setup_interface_offsets): Use the number of virtual methods when
4444         calculating interface offsets instead of the number of methods. This way we
4445         avoid bubles on the layout.
4446
4447 2009-08-31  Rodrigo Kumpera  <rkumpera@novell.com>
4448
4449         * metadata-verify.c (verify_metadata_header): Some very smart
4450         obfuscators like to add extra stream headers. Ignore them.
4451
4452 2009-08-30  Zoltan Varga  <vargaz@gmail.com>
4453
4454         * class.c (mono_class_setup_vtable_general): Verify interfaces with static
4455         methods correctly.
4456
4457 2009-08-29  Rodrigo Kumpera  <rkumpera@novell.com>
4458
4459         * metadata-verify.c: Verify for duplicated types.
4460
4461 2009-08-28  Rodrigo Kumpera  <rkumpera@novell.com>
4462
4463         * metadata-verify.c (verify_typedef_table): Verify for nested types
4464         without an entry on the nested class table.
4465
4466 2009-08-28  Zoltan Varga  <vargaz@gmail.com>
4467
4468         * cominterop.c (cominterop_get_ccw): Applied patch from tom hindle
4469         <tom_hindle@sil.org>. Add locking around hash table accesses.
4470
4471 2009-08-25  Rodrigo Kumpera  <rkumpera@novell.com>
4472
4473         * verify.c (mono_verifier_verify_class): Verify all interface if
4474         really are interfaces. Fixes #534184.
4475
4476 2009-08-27  Rodrigo Kumpera  <rkumpera@novell.com>
4477
4478         * pedump.c: Initialize all types during metadata validation so we report
4479         errors only detected as part of class initialization.
4480
4481 2009-08-26  Rodrigo Kumpera  <rkumpera@novell.com>
4482
4483         * metadata-verify.c (verify_method_table): PInvoke requires method to
4484         be static. Fixes #534189
4485
4486 2009-08-26  Zoltan Varga  <vargaz@gmail.com>
4487
4488         * threads.c (mono_thread_suspend_all_other_threads): Handle 'threads_starting_ip'
4489         being NULL.
4490
4491 2009-08-25  Rodrigo Kumpera  <rkumpera@novell.com>
4492
4493         * class.c (mono_class_setup_vtable_general): Verify the resulting vtable
4494         for holes or bad methods. Fixes #525314.
4495
4496 2009-08-25  Rodrigo Kumpera  <rkumpera@novell.com>
4497
4498         * class.c (setup_interface_offsets): Don't allocate slot
4499         for the same interface multiple times. This creates bubbles
4500         that waster space and make vtable verification harder.
4501
4502         The same interface get a slot multiple times since we need
4503         to get the closure of all implemented interfaces, which means
4504         the same interface is reported multiple times.
4505
4506 2009-08-25  Rodrigo Kumpera  <rkumpera@novell.com>
4507
4508         * verify.c (mono_verifier_verify_class): Don't check the fields
4509         of generic instances since the context on which they got expanded
4510         might lead to false positives.
4511
4512         Such thing happens when a generic type is inflated in the context
4513         of a generic method and the inflated type of a field turns into a
4514         generic method argument, which causes the checking code to think
4515         it's an invalid class when it's not.
4516
4517 2009-08-25  Rodrigo Kumpera  <rkumpera@novell.com>
4518
4519         * verify.c (mono_type_is_valid_in_context): Verify if type
4520         is NULL and remove duplicate test.
4521
4522 2009-08-24  Rodrigo Kumpera  <rkumpera@novell.com>
4523
4524         * verify.c (mono_verifier_verify_class): Check fields for
4525         invalid generic arguments.
4526
4527 2009-08-24  Rodrigo Kumpera  <rkumpera@novell.com>
4528
4529         * class.c (verify_class_overrides): Verify if for static
4530         and non virtual methods.
4531
4532 2009-08-24  Rodrigo Kumpera  <rkumpera@novell.com>
4533
4534         * icaa.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor):
4535         Check for errors after retrieving the vtable.
4536
4537 2009-08-24  Rodrigo Kumpera  <rkumpera@novell.com>
4538
4539         * class.c (mono_class_setup_vtable_general): Verify
4540         if method overrides are valid before processing them.
4541
4542 2009-08-24  Rodrigo Kumpera  <rkumpera@novell.com>
4543
4544         * marshal.c (mono_array_to_lparray): Fix minimal build with
4545         cominterop disabled.
4546
4547         * marshal.c (mono_free_lparray): Same.
4548
4549 2009-08-21  Mark Probst  <mark.probst@gmail.com>
4550
4551         * threadpool.c (mono_thread_pool_init): Use mono_object_hash() as
4552         the hash function for the ares_htable.
4553
4554 2009-08-20  Rodrigo Kumpera  <rkumpera@novell.com>
4555
4556         * metadata-verify.c (verify_assembly_table): Accept 0x10 as a valid
4557         bit for assembly flags. MS is ok with it but there is no spec anywhere
4558         on its mean
4559
4560 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4561
4562         * class.c (mono_class_create_from_typedef): Emit profiler events
4563         in all cases.
4564
4565 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4566
4567         * icall.c (ves_icall_Type_GetMethodsByName): Don't leak loader errors.
4568         Release memory on failure.
4569
4570 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4571
4572         * class-internals.h: Add mono_metadata_load_generic_param_constraints_full
4573         to the internal API.
4574
4575         * metadata.c (get_constraints): Use a single-linked table as we don't
4576         traverse it backward. Fail and return FALSE if only of the contraint types
4577         is not found.
4578
4579         * metadata.c (mono_metadata_load_generic_param_constraints_full): Identical
4580         to mono_metadata_load_generic_param_constraints except for having a return value.
4581         This has to be done since the later is part of the public API.
4582
4583         * class.c (mono_class_create_from_typedef): Properly check the loading of constrains
4584         and fail the type.
4585
4586         * loader.c (mono_get_method_from_token): Properly check the loading of constraints
4587         and fail the method.
4588
4589 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4590
4591         * metadata-verify.c (is_valid_method_header): Add work-around to deal
4592         with MS broken behavior of emmitting EH section sizes without the
4593         header size added.
4594
4595 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4596
4597         * metadata.c (mono_type_create_from_typespec): Don't allocate image
4598         memory until we're sure that we'll need it. This avoids leaking for
4599         broken types or duplicated instantiation.
4600
4601 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4602
4603         * metadata-verify.c (is_valid_method_header): Fix stupid formating
4604         mistake.
4605
4606 2009-08-19  Rodrigo Kumpera  <rkumpera@novell.com>
4607
4608         * metadata-verify.c (is_valid_method_header): Fix number of clauses
4609         and expected size calculation.
4610
4611 2009-08-18  Rodrigo Kumpera  <rkumpera@novell.com>
4612
4613         * class.c (mono_class_get_field_idx): Add fixme for broken
4614         behavior for types with multiple fields with the same name.
4615         I would rather fix it, but have no idea on how to generate
4616         such artifact for testing.
4617
4618 2009-08-18  Rodrigo Kumpera  <rkumpera@novell.com>
4619
4620         * verify.c (verifier_load_field): We should allow references to
4621         fields to be made using the generic type definition. It's up to
4622         the loader system to fail invalid ops.
4623
4624         * verify.c (get_boxable_mono_type): Only uninstantiated GTDs
4625         are invalid.
4626
4627 2009-08-18  Rodrigo Kumpera  <rkumpera@novell.com>
4628
4629         * class.c: Fix usage of mono_metadata_interfaces_from_typedef_full.
4630
4631         * metadata-internals.h: Fix declaration of 
4632         mono_metadata_interfaces_from_typedef_full.
4633
4634         * metadata.c (mono_metadata_interfaces_from_typedef_full): Add extra
4635         heap_alloc_result parameter that controls if the result should be
4636         g_malloc'd.
4637
4638         * metadata.c (mono_metadata_interfaces_from_typedef): Let the resulting
4639         array be g_malloc'd and properly document this public API function.
4640
4641 2009-08-18  Rodrigo Kumpera  <rkumpera@novell.com>
4642
4643         * cil-coff.h: Fix METHOD_HEADER_FORMAT_MASK to be 2 bits and
4644         remove METHOD_HEADER_TINY_FORMAT1.
4645
4646         * reflection.c: Remove reference to METHOD_HEADER_TINY_FORMAT1.
4647
4648         * metadata.c (mono_metadata_parse_mh_full): Kill tiny format1.
4649
4650         Both spec and MS uses only 2 bits to enumerate the kind of header.
4651         So given that 0x6 and 0x2 are equal under a 2 bits mask, tiny format1
4652         is superfluous, only used for tiny headers with odd code lengths.
4653
4654         This change also make sure that mono doesn't wronly interpret bit 2
4655         of fat header flags, which is currently reserved.
4656
4657 2009-08-18  Rodrigo Kumpera  <rkumpera@novell.com>
4658
4659         * metadata.c (do_mono_metadata_parse_type): Do error
4660         checking for element types. Don't abort if presented
4661         with a broken type kind.
4662
4663 2009-08-18  Rodrigo Kumpera  <rkumpera@novell.com>
4664
4665         * metadata.c (mono_metadata_parse_method_signature_full):
4666         Gracefully fail bad vararg signatures.
4667
4668 2009-08-18  Christian Hergert  <chris@dronelabs.com>
4669
4670         * profiler.c:
4671         * class.c: Fix warnings for uninitialized variables.
4672
4673 2009-08-18  Christian Hergert  <chris@dronelabs.com>
4674
4675         * icall.c: Fix _NSGetEnviron method declaration warning.
4676
4677 2009-08-18  Christian Hergert  <chris@dronelabs.com>
4678
4679         * icall.c:
4680         * reflection.c: Make bitwise checks explicit.
4681
4682 2009-08-18  Christian Hergert  <chris@dronelabs.com>
4683
4684         * debug-helpers.c:
4685         * marshal.c: Fix printf warnings.
4686
4687 2009-08-18  Zoltan Varga  <vargaz@gmail.com>
4688
4689         * reflection.c (encode_cattr_value): Fix a warning.
4690
4691 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4692
4693         * metadata.c (mono_metadata_parse_array_full): Fix memory leak
4694         of array bounds.
4695
4696 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4697
4698         * loader.c (mono_method_signature): Don't assert on broken
4699         signature. Print a more useful error message.
4700
4701 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4702
4703         * loader.c (mono_method_get_marshal_info): Assert if
4704         signature is invalid. Bounds check stores to the
4705         mspecs array;
4706
4707 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4708
4709         * loader.c (field_from_memberref): Fix warning.
4710
4711 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4712
4713         * loader.c (mono_method_get_param_names): Check if signature
4714         is null. Don't store beyond the size of the name array.
4715
4716 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4717
4718         * loader.c (mono_get_method_constrained): Check if signature
4719         is null.
4720
4721 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4722
4723         * loader.c (mono_loader_set_error_bad_image): Improve
4724         error messages.
4725
4726 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4727
4728         * loader.c (mono_get_method_full): Convert an assertion
4729         into a loader error.
4730
4731 2009-08-17  Rodrigo Kumpera  <rkumpera@novell.com>
4732
4733         * class-internals.h, class.c: Better naming and documentation.
4734
4735 2009-08-17  Zoltan Varga  <vargaz@gmail.com>
4736
4737         * boehm-gc.c (mono_gc_add_weak_track_handle): Don't do any work if
4738         obj is NULL.
4739
4740 2009-08-14  Rodrigo Kumpera  <rkumpera@novell.com>
4741
4742         * loader.c (mono_method_get_signature_full): Fail gracefully if signature
4743         parsing fails.
4744
4745 2009-08-14  Rodrigo Kumpera  <rkumpera@novell.com>
4746
4747         * loader.c (mono_loader_error_prepare_exception): Handle missing field
4748         errors with no class set.
4749
4750         * loader.c (field_from_memberref): If the field signature is of the wrong
4751         type fail with a MissingFieldException instead of a BadImageException as
4752         this is the behavior observed on MS. 
4753
4754 2009-08-14  Rodrigo Kumpera  <rkumpera@novell.com>
4755
4756         * loader.c (field_from_memberref): Don't crash if either the field
4757         signature or the typespec class are invalid.
4758
4759 2009-08-14  Rodrigo Kumpera  <rkumpera@novell.com>
4760
4761         * verify.c (verifier_load_field): Don't allow field related
4762         ops to reference fields on generic type definition.
4763
4764 2009-08-14  Rodrigo Kumpera  <rkumpera@novell.com>
4765
4766         * metadata-verify.c: Add new warning level for errors specified
4767         by ECMA 335 but that MS ignores.
4768
4769         * metadata-verify.c (verify_method_table): Make compiler controled
4770         visibility + (rt)specialname error a warning as MS ignores this. Ignoring
4771         this check is safe because the end result will only be some visibility
4772         exceptions been thrown.
4773
4774 2009-08-14  Rodrigo Kumpera  <rkumpera@novell.com>
4775
4776         * verify.c (get_boxable_mono_type): Don't allow the
4777         use of the generic type definition on boxed type positions.
4778
4779         Fixes #531237.
4780
4781 2009-08-14  Mark Probst  <mark.probst@gmail.com>
4782
4783         * threadpool.c: Make sure no cross-domain references remain in
4784         ares_htable or the arrays that are thrown away when resizing.
4785
4786 2009-08-14  Mark Probst  <mark.probst@gmail.com>
4787
4788         * appdomain.c, metadata-internals.h, image.c: In MonoImage add a
4789         list of classes for which we have to unregister reflection_info
4790         with the GC and which are not in the namespace cache.
4791
4792         * reflection.c (mono_reflection_initialize_generic_parameter): Add
4793         the class to the list.
4794
4795 2009-08-14  Mark Probst  <mark.probst@gmail.com>
4796
4797         * domain.c (mono_domain_free): Unregister the GC roots in
4798         MonoDomain.
4799
4800 2009-08-12  Rodrigo Kumpera  <rkumpera@novell.com>
4801
4802         * reflection.c (mono_reflection_type_get_handle): Fix typo.
4803
4804 2009-08-12  Rodrigo Kumpera  <rkumpera@novell.com>
4805
4806         * class.c: Add mono_class_get_field_from_name_full which does
4807         the same as mono_class_get_field_from_name but does check field
4808         signature as well.
4809
4810         * class-internals.h: Export mono_class_get_field_from_name_full as
4811         part of the internal API.
4812
4813         * loader.c (field_from_memberref): Search fields by name and signature
4814         as it's valid to have two fields with same name but different types.
4815
4816         Fixes #528055.
4817
4818 2009-08-10  Rodrigo Kumpera  <rkumpera@novell.com>
4819
4820         * icall-def.h: Add a bunch of temporary icalls to MonoGenericClass.
4821
4822         * reflection.c (mono_reflection_type_get_handle): Handle MonoGenericClass.
4823
4824         * reflection.c (encode_cattr_value): Use mono_reflection_type_get_handle to encode
4825         System.Type.
4826
4827 2009-08-13  Zoltan Varga  <vargaz@gmail.com>
4828
4829         * gc.c (GCHandle_CheckCurrentDomain): Moved this here from icall.c.
4830
4831         * boehm-gc.c (mono_gc_add_weak_track_handle): Handle nulls.
4832
4833 2009-08-12  Mark Probst  <mark.probst@gmail.com>
4834
4835         * sgen-gc.c, sgen-scan-object.h: Object scanning code factored out
4836         to sgen-scan-object.h, which can be included and parameterized via
4837         macros.
4838
4839         * Makefile.am: sgen-scan-object.h added.
4840
4841 2009-08-12  Mark Probst  <mark.probst@gmail.com>
4842
4843         * gc.c: #define GC_dont_gc if we're compiling with SGen.
4844
4845 2009-08-12  Mark Probst  <mark.probst@gmail.com>
4846
4847         * domain.c (mono_domain_free): Free a domain's mono_g_hash_tables
4848         before clearing a domain in the GC.
4849
4850 2009-08-12  Mark Probst  <mark.probst@gmail.com>
4851
4852         * exception.c (mono_exception_from_name_domain): Actually create
4853         the exception in the specified domain.
4854
4855         * appdomain.c (mono_domain_create_appdomain_internal): Create the
4856         OutOfMemoryException a bit later so that the domain is inialized
4857         "enough" that it works.
4858
4859 2009-08-12  Mark Probst  <mark.probst@gmail.com>
4860
4861         * threads.c (thread_cleanup): Clean up the cached_culture_info
4862         array to prevent cross-domain references.
4863
4864 Tue Aug 11 14:38:57 CEST 2009 Paolo Molaro <lupus@ximian.com>
4865
4866         * metadata.c: more documentation for MonoType accessors.
4867
4868 2009-08-11  Raja R Harinath  <harinath@hurrynot.org>
4869
4870         Fix incorrect size definitions where the tail array isn't a list
4871         of pointers
4872         * class-internals.h (MONO_SIZEOF_MARSHAL_TYPE): Use offsetof to
4873         define size.
4874         * domain-internals.h (MONO_SIZEOF_JIT_INFO): Likewise.
4875         * metadata.h (MONO_SIZEOF_TYPE): Likewise.
4876         * reflection.h (MONO_SIZEOF_CUSTOM_ATTR_INFO): Likewise.
4877
4878 2009-08-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
4879
4880         * reflection.h:
4881         * reflection.c: MONO_SIZEOF_CUSTOM_ATTR_INFO.
4882
4883 2009-08-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
4884
4885         * metadata.c:
4886         * loader.c:
4887         * metadata-internals.h:
4888         * method-builder.c:
4889         * reflection.c: use MONO_SIZEOF_METHOD_HEADER.
4890
4891 2009-08-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
4892
4893         * cominterop.c:
4894         * metadata.c:
4895         * metadata.h:
4896         * loader.c:
4897         * marshal.c:
4898         * reflection.c: #define for sizeof in MonoType and
4899         MonoMethodSignature.
4900
4901 2009-08-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
4902
4903         * domain.c:
4904         * domain-internals.h: add and use #define's instead of sizeof()
4905         for MonoJitInfo and MonoJitInfoTable.
4906
4907 2009-08-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
4908
4909         * object.c:
4910         * class.h: use #define instead of sizeof() for MonoRemoteClass.
4911
4912 2009-08-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
4913
4914         * metadata.c:
4915         * metadata.h:
4916         * object.c:
4917         * class-internals.h:
4918         * generic-sharing.c:
4919         * marshal.c: use a #define instead of sizeof() for a few
4920         structures that use a zero-length array.
4921
4922 2009-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
4923
4924         * object-internals.h (MonoReflectionMethodOnTypeBuilderInst): Add new fields
4925         to handle inflated generic methods.
4926
4927         * appdomain.c: Bump corlib version.
4928
4929         * reflection.c (mono_image_get_method_on_inst_token): Handle generic method
4930         instances.
4931
4932         * reflection.c (fixup_method): Same
4933
4934         * reflection.c (resolve_object): Same.
4935
4936         * reflection.c (inflate_method): Replace a g_assert_not_reached with a
4937         g_error and a decent message.
4938
4939 2009-08-06  Massimiliano Mantione  <massi@ximian.com>
4940
4941         * bohem-gc.c (mono_gc_add_weak_track_handle): Get the domain
4942         from the object because it could not yet be available globally
4943         (it happens if the profiler tries to create a gchandle on the
4944         MonoThread object of a thread that is still registering itself
4945         with the runtime).
4946
4947 2009-08-04  Rodrigo Kumpera  <rkumpera@novell.com>
4948
4949         * reflection.c (mono_generic_class_get_object): Initialized the
4950         managed type arguments array.
4951
4952         * object-internals.h (MonoReflectionGenericClass): Add type_arguments field.
4953
4954         * appdomain.c: Bump corlib version.
4955
4956 2009-08-04  Zoltan Varga  <vargaz@gmail.com>
4957
4958         * threads.c (thread_cleanup): Free serialized_ui_culture_info. Fixes
4959         #527902.
4960
4961 2009-08-03  Zoltan Varga  <vargaz@gmail.com>
4962
4963         * threads.c (ves_icall_System_Threading_Thread_Thread_free_internal): 
4964         Avoid a crash if synch_cs is not set.
4965         
4966         * threads.c (ves_icall_System_Threading_Thread_Thread_free_internal): 
4967         Handle the case when the handle is 0.
4968
4969         * appdomain.c: Bump corlib version.
4970
4971 2009-08-02  Zoltan Varga  <vargaz@gmail.com>
4972
4973         * reflection.c (mono_type_get_object): Fix a warning.
4974
4975 2009-08-01  Mark Probst  <mark.probst@gmail.com>
4976
4977         * sgen-gc.c (mono_gc_wbarrier_value_copy): Don't compute the GC
4978         descriptor here.  We assume it's already been computed.
4979
4980         * generic-sharing.c (instantiate_other_info): Compute the GC
4981         descriptor for info type MONO_RGCTX_INFO_KLASS.
4982
4983 2009-08-01  Mark Probst  <mark.probst@gmail.com>
4984
4985         * reflection.c (mono_type_get_object): MonoDomain is an unmanaged
4986         type, so don't use MONO_OBJECT_SETREF to set a field.
4987
4988 2009-08-01  Mark Probst  <mark.probst@gmail.com>
4989
4990         * gc.c: We were missing one case where invoking a finalizer would
4991         not reset the domain.  Also, in the finalizer thread loop, assert
4992         that we're in the root domain.
4993
4994 2009-07-31  Rodrigo Kumpera  <rkumpera@novell.com>
4995
4996         * icall.c (ves_icall_MonoType_GetArrayRank): Throw ArgumentException
4997         if the type is not an array.
4998
4999 2009-07-31  Rodrigo Kumpera  <rkumpera@novell.com>
5000
5001         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Return the
5002         method bound to the declaring type of the method. Raise an exception
5003         if the type is not a generic param.
5004
5005 2009-07-31  Rodrigo Kumpera  <rkumpera@novell.com>
5006
5007         * class.c (print_unimplemented_interface_method_info): Print the
5008         full type name.
5009
5010         * class.c (mono_class_setup_vtable_general): When dealing with a
5011         generic instance first check if the generic type definition is
5012         not broken.
5013
5014 2009-02-11 Tom Hindke <tom_hindle@sil.org>
5015
5016         * marshal.c (mono_array_to_lparray): Implemented so managed object types are converted to native types.
5017
5018         * marshal.c: Added new method mono_free_lparray to free memory allocated by mono_array_to_lparray
5019
5020         * marshal.c (emit_marshal_array): call emit mono_free_lparray where approprate.
5021
5022         * marshal.c (conv_to_icall): added MONO_MARSHAL_FREE_LPARRAY case
5023
5024         * metadata.h (MonoMarshalConv enum): added MONO_MARSHAL_FREE_LPARRAY
5025
5026         Code is contributed under MIT/X11 license
5027
5028 2009-08-30  Rodrigo Kumpera  <rkumpera@novell.com>
5029
5030         * verify.c: Fix naming of stelem and ldelem.
5031
5032 2009-07-30  Mark Probst  <mark.probst@gmail.com>
5033
5034         * generic-sharing.c: Replace the templates lock with the loader
5035         lock because of very hard to resolve deadlock issues.
5036
5037 2009-07-30  Zoltan Varga  <vargaz@gmail.com>
5038
5039         * icall.c (ves_icall_Type_GetMethodsByName): Use 
5040         mono_class_get_vtable_size () instead of accessing klass->vtable_size
5041         directly. Fixes #525338.
5042
5043         * class.c (mono_class_get_vtable_size): New helper function.
5044
5045         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle_type): Fix the second argument, its a MonoType* not a MonoClass*. Check whenever
5046         the field belongs to the type. Fixes #525733.
5047
5048 2009-07-30  Mark Probst  <mark.probst@gmail.com>
5049
5050         * sgen-gc.c: When we stop a thread and its stack top is not within
5051         its allocated stack (because it's in an altstack signal handler),
5052         restart it and stop it again, until it is.
5053
5054 2009-07-30  Mark Probst  <mark.probst@gmail.com>
5055
5056         * sgen-gc.c: Take a thread's stack top and registers from the
5057         sigcontext in the suspend signal handler.
5058
5059         * sgen-gc.h, sgen-archdep.h, Makefile.am: Move arch-dependent
5060         stuff to sgen-archdep.h.
5061
5062         * gc.c, gc-internal.h: Remove the get_ip_from_sigctx installer and
5063         caller, because have code in sgen-archdep.h to acquire that data.
5064
5065 2009-07-29  Massimiliano Mantione  <massi@ximian.com>
5066
5067         * profiler.c, profiler.h, profiler-private.h:
5068         Added support for keeping track of code chunks and buffers.
5069
5070 2009-07-29 Rodrigo Kumpera  <rkumpera@novell.com>
5071
5072         * metadata-verify.c: Fix endianness problems on decoding functions.
5073         Based on a patch by Ulrich Weigand <uweigand@de.ibm.com>
5074
5075 2009-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
5076
5077         * icall.c (ves_icall_Type_make_array_type): Handle the new encoding
5078         schema for vectors and one dimension SZARRAY.
5079
5080 2009-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
5081
5082         * reflection.c (mono_reflection_type_get_handle): Handle the new encoding
5083         schema for vectors and one dimension SZARRAY.
5084
5085 2009-07-27  Mark Probst  <mark.probst@gmail.com>
5086
5087         * icall-def.h, thread-types.h, threads.c: New separate icalls for
5088         Interlocked.(Compare)Exchange with object arguments, which invoke
5089         write barriers.
5090
5091 2009-07-26  Miguel de Icaza  <miguel@novell.com>
5092
5093         * icall.c (ves_icall_Type_GetNestedType): Throw an exception when
5094         passed invalid arguments.   Fixes another crasher in the
5095         Silverlight test suite.
5096
5097         * class.c (mono_class_array_element_size): Return 0 for the size
5098         of the class;  This fixes the crasher exposed by :
5099
5100         typeof (void).MakeArrayType ();
5101
5102         * icall.c (ves_icall_MonoType_GetEvent): Do not dereference method
5103         if there is no method to dereference.    Put all the code that
5104         depends on this inside the if (method) block.
5105
5106         This fixes the crasher exposed by Microsoft's Silvelright CLR test
5107         suite  ./Reflection/Emit/TypeBuilder/TypeBuilderGetEvent.exe
5108
5109         With this change, we pass the test.
5110         
5111         * reflection.c (mono_reflection_sighelper_get_signature_local):
5112         Only dereference the assembly if it has been set.    Fixes a
5113         crasher exposed by #525328
5114
5115 2009-07-25  Mark Probst  <mark.probst@gmail.com>
5116
5117         * sgen-gc.c, object.h, null-gc.c, boehm-gc.c, marshal.c: Really
5118         don't perform the store in mono_gc_wbarrier_generic_nostore().
5119         Remove the second argument (value), which is not needed.
5120
5121 2009-07-24  Zoltan Varga  <vargaz@gmail.com>
5122
5123         * null-gc.c (mono_gc_wbarrier_generic_nostore): Define this to fix
5124         the build.
5125
5126         * boehm-gc.c: Ditto.
5127         
5128 2009-07-24  Mark Probst  <mark.probst@gmail.com>
5129
5130         * sgen-gc.c, marshal.c, object.h: Make the managed write barrier
5131         not perform the store itself.  Introduce
5132         mono_gc_wbarrier_generic_nostore(), which is the same as
5133         mono_gc_wbarrier_generic_store(), except it doesn't perform the
5134         store.
5135
5136 2009-07-24  Mark Probst  <mark.probst@gmail.com>
5137
5138         * icall.c (ves_icall_System_Array_SetGenericValueImpl):
5139         mono_gc_wbarrier_value_copy() doesn't perform the copy itself, so
5140         we still need the memcpy().
5141
5142 2009-07-22  Mark Probst  <mark.probst@gmail.com>
5143
5144         * sgen-gc.c: Align array bounds calculation to mono_array_size_t
5145         so that big arrays are handled correctly.  Always use
5146         safe_object_get_size() to calculate array object sizes, which
5147         takes bounds into account.
5148
5149 2009-07-22  Mark Probst  <mark.probst@gmail.com>
5150
5151         * sgen-gc.c (mono_gc_wbarrier_value_copy): Make sure the class's
5152         GC descriptor is computed before we use it.
5153
5154 2009-07-22  Mark Probst  <mark.probst@gmail.com>
5155
5156         * icall.c (ves_icall_System_Array_SetGenericValueImpl): Use a
5157         write barrier if necessary.
5158
5159 2009-07-22  Mark Probst  <mark.probst@gmail.com>
5160
5161         * icall-def.h, icall.c, thread-types.h: New separate icall for
5162         VolatileWrite(object&,object) that uses a write barrier.
5163
5164         * console-unix.c, file-io.c, icall.c, threads.c: Use write
5165         barriers in icalls which write to "ref" or "out" arguments.
5166
5167 2009-07-21  Zoltan Varga  <vargaz@gmail.com>
5168
5169         * marshal.c (mono_marshal_get_runtime_invoke): Do the work done in the exception
5170         handler in a separate icall, to reduce the size of the wrappers.
5171
5172 2009-07-20 Rodrigo Kumpera  <rkumpera@novell.com>
5173
5174         * metadata-verify.c (is_valid_typespec_blob): Fix error message.
5175
5176 2009-07-20 Rodrigo Kumpera  <rkumpera@novell.com>
5177
5178         * metadata-verify.c (parse_field): Allow byref field.
5179
5180         * metadata-verify.c (parse_locals_signature): Allow byref locals.
5181
5182         * metadata-verify.c (is_valid_typespec_blob): Allow byref typespec.
5183
5184 2009-07-20 Rodrigo Kumpera  <rkumpera@novell.com>
5185
5186         * verify.c (do_cast): Fail for any non reference type that isn't boxed.
5187         Fixes #522784.
5188
5189 2009-07-20  Robert Jordan  <robertj@gmx.net>
5190
5191         * cominterop.c (cominterop_get_managed_wrapper_adjusted):
5192         Fix invalid IL in valuetype handling (STOBJ must push the
5193         corresponding class). Fixes bug #523149.
5194
5195         Code is contributed under MIT/X11 license.
5196
5197 2009-07-20  Geoff Norton  <gnorton@novell.com>
5198
5199         * gc.c: Use proper semaphores where available on posix and darwin.
5200
5201 2009-07-19  Geoff Norton  <gnorton@novell.com>
5202
5203         * gc.c: Unnamed posix semaphores are broken on darwin-arm too.
5204
5205 2009-07-19 Rodrigo Kumpera  <rkumpera@novell.com>
5206
5207         * refletion.c (is_sre_usertype): Change name to is_usertype and
5208         invert it's result so it returns true if the type is an user type
5209         and not the opposite.
5210
5211         * reflection.c (is_*_type): Change all of those to use new macro
5212         check_corlib_type_cached that cached the type lookup so we don't
5213         need to do string comparisons all the type. Changed the signature
5214         to take a MonoClass instead.
5215
5216         * reflection.c: Change mono_image_create_token and resolve_object
5217         to use is_sre_* functions.
5218
5219 2009-07-18  Mark Probst  <mark.probst@gmail.com>
5220
5221         * sgen-gc.c: Check for writes to the stack in the managed
5222         wbarrier as well.
5223
5224 2009-07-18  Mark Probst  <mark.probst@gmail.com>
5225
5226         * sgen-gc.c: When a thread is unregistered, don't free its remsets
5227         but put them on a list which is processed with the other thread's
5228         remsets.
5229
5230 2009-07-18  Mark Probst  <mark.probst@gmail.com>
5231
5232         * sgen-gc.c: Fix and enable the internal allocator instead of
5233         using malloc/free (which causes deadlocks).
5234
5235 2009-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
5236
5237         * refletion.c: Fix builds with SRE disabled by adding a minimal
5238         implementation of mono_reflection_type_get_handle.
5239
5240 2009-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
5241
5242         * refletion.c: Make mono_reflection_type_get_handle non static.
5243
5244         * object-internals.h: Export mono_reflection_type_get_handle.
5245
5246         * icall.c (ves_icall_MonoGenericClass_InflateType): Resolve the
5247         unmanaged handle using mono_reflection_type_get_handle.
5248
5249 2009-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
5250
5251         * refletion.c: Replace all reads of MonoReflectionType::type with
5252         calls to mono_reflection_type_get_handle. Only the functions that
5253         deal with constructing TypeBuilder::type have not been changed
5254         because they have to deal with NULL values.
5255
5256         This is a first step into supporting reflection types that don't
5257         map directly into their unmanaged counterpart.
5258
5259 2009-07-14 Rodrigo Kumpera  <rkumpera@novell.com>
5260
5261         * metadata-verify.c (parse_locals_signature): Don't complain
5262         on signature with zero locals since MS generates it and doesn't
5263         bother with.
5264
5265 2009-07-14 Rodrigo Kumpera  <rkumpera@novell.com>
5266
5267         * reflection.c (mono_image_get_array_token): Resolve return
5268         type using mono_reflection_type_get_handle.
5269
5270         * reflection.c (mono_image_get_array_token): Resolve array method
5271         parent type using mono_reflection_type_get_handle.
5272
5273 2009-07-14  Zoltan Varga  <vargaz@gmail.com>
5274
5275         * reflection.c (mono_image_basic_init): Applied patch from
5276         <Dax@daxxfiles.net>. Set the public key token from the assembly
5277         builder. Fixes #518909.
5278
5279         * appdomain.c: Bump corlib version.
5280
5281 2009-07-13  Zoltan Varga  <vargaz@gmail.com>
5282
5283         * class.c (mono_class_needs_cctor_run): Make this return false if
5284         the class has no cctor.
5285
5286 2009-07-13  Mark Probst  <mark.probst@gmail.com>
5287
5288         * sgen-gc.c: When the minor GC needs to allocate a new section,
5289         invoke the major GC afterwards.
5290
5291 2009-07-14  Bill Holmes  <billholmes54@gmail.com>
5292
5293         * process.c  (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal) :
5294           Applying the window_style field to the SHELLEXECUTEINFO struct.
5295
5296         Code is contributed under MIT/X11 license.
5297
5298 2009-07-13  Mark Probst  <mark.probst@gmail.com>
5299
5300         * sgen-gc.c: Fix the race condition in the unmanaged allocator by
5301         locking earlier.  Fix it in the managed allocator by making sure
5302         that no thread is stopped there before the GC runs.  If we do stop
5303         a thread there, we restart it and let it run a but, until it stops
5304         somewhere else.
5305
5306         * gc-internal.h, gc.c: Function for getting the IP from a signal
5307         context via a function registered by mini.
5308
5309 2009-07-11  Zoltan Varga  <vargaz@gmail.com>
5310
5311         * object-internals.h (MonoIntPtr): New structure describing a boxed
5312         IntPtr.
5313
5314         * object.c (mono_runtime_invoke_array): Handle ptr arguments and
5315         returns. Fixes #519953.
5316
5317         * marshal.c (mono_marshal_get_runtime_invoke): Handle pointer returns.
5318
5319 2009-07-09  Mark Probst  <mark.probst@gmail.com>
5320
5321         * class-internals.h, generic-sharing.c: New RGCTX info type for
5322         getting a remoting invoke with check wrapper.
5323
5324 2009-07-07  Geoff Norton  <gnorton@novell.com>
5325
5326         * icall-def.h: Fix the enable-minimal build.
5327
5328 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
5329
5330         * object-internals.h: Add MonoReflectionDerivedType.
5331
5332         * reflection.c: Implement support for PointerType.
5333         Fixed tons of warnings.
5334
5335 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
5336
5337         * object-internals.h: Add MonoReflectionByRefType.
5338
5339         * reflection.c: Implement support for ByRefType.
5340
5341 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
5342
5343         * icall-def.h: Add System.Reflection.Emit.DerivedType::create_unmanaged_type.
5344
5345         * object-internals.h: Add MonoReflectionArrayType and
5346         mono_reflection_create_unmanaged_type.
5347
5348         * reflection.c: Implement support for ArrayType.
5349
5350 2009-07-07 Rodrigo Kumpera  <rkumpera@novell.com>
5351
5352         * metadata-verify.c (is_valid_method_header): Parse EH block
5353         flags correctly.
5354
5355 2009-07-03  Mark Probst  <mark.probst@gmail.com>
5356
5357         * sgen-gc.c (finish_gray_stack): Set the to_space pointer after
5358         processing the disappearing links, and process disappearing links
5359         in a loop until no new objects are copied.
5360
5361 2009-07-03  Mark Probst  <mark.probst@gmail.com>
5362
5363         * object.c (handle_enum): Invoke the write barrier when copying
5364         value type instances.
5365
5366         * sgen-gc.c: Register remsets for unmanaged write barriers only
5367         when the address written to is actually on the heap.  This makes
5368         set_value() in object.c work without requiring that the result be
5369         on the heap.
5370
5371 2009-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
5372
5373         The runtime wrappers are all bound to a given type that must
5374         exist in the same image. For regular images we use the <Module>
5375         type, which is required to exist for all images.
5376
5377         The <Module> type can't be used for dynamic images because it
5378         might not exist at the time the wrapper is required, so we create
5379         a synthetic type to use instead.
5380
5381         The current code works because of the 2 stage setup of MonoClass,
5382         but once this is gone it will no longer work.
5383
5384         * icall-def.h: Add ModuleBuilder::set_wrappers_type.
5385
5386         * metadata-internals.h (MonoDynamicImage): Add wrappers_type.
5387
5388         * object-internals.h: Export mono_image_set_wrappers_type icall
5389         as part of the internal API.
5390
5391         * marshal.c (get_wrapper_target_class): If the image is dynamic,
5392         use MonoDynamicImage::wrappers_type instead of the <Module> type.
5393
5394         reflection.c: Add mono_image_set_wrappers_type qhixh sets the dynamic
5395         image wrappers_type to the provided value.
5396
5397 2009-07-01 Rodrigo Kumpera  <rkumpera@novell.com>
5398
5399         * appdomain.c (deregister_reflection_info_roots): No need
5400         to use the image lock here.
5401
5402 2009-07-02  Mark Probst  <mark.probst@gmail.com>
5403
5404         * sgen-gc.c (collect_nursery): Also scan from write-barrier roots.
5405
5406 2009-06-29  Zoltan Varga  <vargaz@gmail.com>
5407
5408         * threads.c: Store the thread start argument in a hash table instead of
5409         registering it as a root, as libgc doesn't support unregistering roots
5410         under windows, leading to 'too many root sets' errors when many threads
5411         are created.
5412
5413         * gc.c (mono_gc_run_finalize): Avoid finalizing dynamic methods during
5414         shutdown, they can still be referenced by the other dying objects.
5415         Fixes #514506.
5416
5417 2009-06-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
5418
5419         * socket-io.c: DontLinger does not allow LingerOptions.
5420
5421 2009-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
5422
5423         * metadata-verify.c: The spec doesn't mention that it's possible to add
5424         custom attribute to a generic parameter. Fixed.
5425
5426 2009-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
5427
5428         * class.c (inflate_generic_type): Don't crash while trying to output a message
5429         on why we're aborting.
5430
5431 2009-06-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
5432
5433         * socket-io.c: DontLinger can take an int or a boolean too.
5434
5435 Fri Jun 26 17:00:04 CEST 2009 Paolo Molaro <lupus@ximian.com>
5436
5437         * gc.c: check for a null argument to SuppressFinalize () and
5438         ReRegisterForFinalize ().
5439
5440 2009-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
5441
5442         * loader.c (method_from_methodspec): Call into the verifier to check
5443         the signature.
5444
5445         * metadata-verify.c: Addmono_verifier_verify_methodspec_signature.
5446
5447         * verify-internals.h: Export mono_verifier_verify_methodspec_signature as
5448         part of the internal API.
5449
5450 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5451
5452         * metadata.c (mono_type_create_from_typespec): Call into the verifier to check
5453         the signature.
5454
5455         * metadata-verify.c: Add mono_verifier_verify_typespec_signature.
5456
5457         * verify-internals.h: Export mono_verifier_verify_typespec_signature as
5458         part of the internal API.
5459
5460 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5461
5462         * metadata.c (mono_metadata_parse_mh_full): Call into the verifier to check
5463         the signature.
5464
5465         * metadata-verify.c: Add mono_verifier_verify_standalone_signature. Fix
5466         blob verification.
5467
5468         * verify-internals.h: Export mono_verifier_verify_memberref_signature as
5469         part of the internal API.
5470
5471 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5472
5473         * metadata-verify.c: Use is_valid_blob_object to verify blob validity
5474         when doing basic verification. 
5475
5476         This check must be done since the runtime peeks into signatures in much
5477         more places than it does decoding so it makes sense to ensure that all
5478         pointers to blob objects are well formed.
5479
5480 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5481
5482         * metadata-verify.c (is_valid_blob_object): Add extra minsize argument.
5483         Use proper overflow dectection. Fix usage of it.
5484
5485 2009-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
5486
5487         * loader.c (field_from_memberref): Call into the verifier to check
5488         the signature.
5489
5490         * loader.c (mono_method_get_signature_full): Same.
5491
5492         * loader.c (method_from_memberref): Same.
5493
5494         * metadata-verify.c: Add mono_verifier_verify_memberref_signature.
5495
5496         * verify-internals.h: Export mono_verifier_verify_memberref_signature as
5497         part of the internal API.
5498
5499 2009-06-25  Mark Probst  <mark.probst@gmail.com>
5500
5501         * threadpool.c (mono_thread_pool_add): If the domain is unloading
5502         or unloaded, still return an AsyncResult, but don't add it to the
5503         threadpool.
5504
5505 2009-06-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
5506
5507         * threads.c: fix missing colon when DEBUG is defined.
5508
5509 2009-06-25  Mark Probst  <mark.probst@gmail.com>
5510
5511         * threadpool.c: Don't add new calls to a threadpool if the domain
5512         of the call is unloading or unloaded.  When dequeuing a job, null
5513         the reference in the queue.
5514
5515 2009-06-25  Mark Probst  <mark.probst@gmail.com>
5516
5517         * sgen-gc.c (null_link_in_range): Add the dislink for the old
5518         generation if an object was moved.
5519
5520 2009-06-25  Sylvain Dupont <duposyl@gmail.com>
5521
5522         * cominterop.h cominterop.c marshal.c: Added support for marshalling out 
5523           parameters of type SAFEARRAY[VARIANT].
5524
5525         * reflection.c (encode_marshal_blob): Properly generate element type
5526           (SafeArraySubType marshal attribute option).
5527
5528         Code is contributed under MIT/X11 license.
5529
5530 Thu Jun 25 15:48:09 CEST 2009 Paolo Molaro <lupus@ximian.com>
5531
5532         * reflection.c: in mono_method_clear_object () really ensure all the
5533         objects are removed.
5534
5535 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5536
5537         * loader.c (mono_method_signature): Call into the verifier to check
5538         the method signature.
5539
5540         * metadata-verify.c (verify_method_table): Move signature verification
5541         to verify_method_table_full.
5542
5543         * metadata-verify.c: Add mono_verifier_verify_method_signature.
5544
5545         * verify-internals.h: Export mono_verifier_verify_method_signature as
5546         part of the internal API.
5547
5548 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5549
5550         * loader.c (mono_method_get_header): Call into the verifier to
5551         check the method header.
5552
5553         * metadata-verify.c: Add mono_verifier_verify_method_header.
5554
5555         * verify-internals.h: Export mono_verifier_verify_method_header as
5556         part of the internal API.
5557
5558 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5559
5560         * class.c (mono_class_find_enum_basetype): Call into the verifier to
5561         check the field signature. Replace an assert with an explicit check.
5562
5563         * class.c (mono_class_setup_fields): Call into the verifier to check
5564         the field signature.
5565
5566         * metadata-verify.c: Add mono_verifier_verify_field_signature.
5567
5568         * verify-internals.h: Export mono_verifier_verify_field_signature as
5569         part of the internal API.
5570
5571 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5572
5573         * class.c (mono_class_find_enum_basetype): Simplify this function
5574         by moving code outside of the loop and not decoding static fields.
5575
5576 2009-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
5577
5578         * metadata-verify.c (verify_typedef_table): Check the extends
5579         token here. Move to here a flags check from verify_typedef_table_full.
5580
5581 2009-06-24  Zoltan Varga  <vargaz@gmail.com>
5582
5583         * metadata-verify.c (is_valid_method_header): Fix a warning.
5584
5585         * metadata-internals.h (MonoImage): Remove the unused 
5586         static_rgctx_invoke_wrapper_cache.
5587
5588         * image.c marshal.c: Ditto.
5589
5590 2009-06-23 Rodrigo Kumpera  <rkumpera@novell.com>
5591
5592         * image.c (do_mono_image_load): Enable table data verification.
5593
5594 2009-06-23 Rodrigo Kumpera  <rkumpera@novell.com>
5595
5596         * metadata-verify.c (is_valid_constant): Fix nullref check.
5597
5598 2009-06-23 Rodrigo Kumpera  <rkumpera@novell.com>
5599
5600         * metadata-verify.c (is_valid_constant): Fix string bounds check.
5601
5602 2009-06-22  Mark Probst  <mark.probst@gmail.com>
5603
5604         * sgen-gc.c: Managed allocation with pthreads TLS.
5605
5606         * threads.c, threads-types.h: Functions for the JIT to tell the
5607         runtime whether it supports the MONO_TLS opcode.
5608
5609 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
5610
5611         * metadata-verify.c (verify_param_table): Fix a crash for assemblies
5612         without methods.
5613
5614 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
5615
5616         * metadata-verify.c (is_valid_constant): Fix the string length check.
5617         Use safe overflow checking. Add decent error messages.
5618
5619 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
5620
5621         * metadata-verify.c: Move remaininh blob checks to the offline
5622         verification path.
5623
5624 2009-06-22 Rodrigo Kumpera  <rkumpera@novell.com>
5625
5626         * metadata-verify.c: Move more blob checks to the offline verification
5627         path.
5628
5629 2009-06-22  Bill Holmes  <billholmes54@gmail.com>
5630
5631         * object-internals.h : Adding interrupt_on_stop field.
5632
5633         * threads.c (mono_thread_request_interruption) : On Windows exit the
5634           thread if interrupt_on_stop is set.
5635
5636         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
5637          Removing old interrupt logic and setting the interrupt_on_stop for the
5638          thread when calling accept.
5639
5640         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Receive_internal) :
5641          setting the interrupt_on_stop for the thread when calling accept.
5642
5643         Contributed under MIT/X11 license.
5644
5645 2009-06-20  Martin Baulig  <martin@ximian.com>
5646
5647         * mono-debug.h (MONO_DEBUGGER_MINOR_VERSION): Bump to 3.
5648
5649 2009-06-21  Zoltan Varga  <vargaz@gmail.com>
5650
5651         * appdomain.c (mono_try_assembly_resolve): Don't call managed code when
5652         running in no-exec mode.
5653
5654 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5655
5656         * metadata-verify.c (verify_method_table): Move header
5657         checking to verify_method_table_full.
5658
5659         * metata-verify.c (mono_verifier_verify_full_table_data):
5660         Call verify_method_table_full.
5661
5662 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5663
5664         * metadata-verify.c (verify_field_table): Move signature
5665         checking to verify_field_table_full.
5666
5667         * metata-verify.c (mono_verifier_verify_full_table_data):
5668         Call verify_field_table_full.
5669
5670 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5671
5672         * metadata-verify.c (verify_typedef_table): Move remaining
5673         stuff to verify_typedef_table_full.
5674
5675 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5676
5677         * metadata-verify.c: Kill is_corlib from VerifyContext.
5678         It is only used by the offline mode.
5679         So we better remove it from the runtime path.
5680
5681 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5682
5683         * metadata-verify.c: Add new mono_verifier_verify_full_table_data
5684         function that perform the offline metadata verification steps.
5685
5686         * metadata-verify.c (verify_typedef_table): Move some checks to
5687         verify_typedef_table_full and make it been called by new function
5688         mono_verifier_verify_full_table_data.
5689
5690         * pedump.c: Call mono_verifier_verify_full_table_data.
5691
5692         * verify-internals.h: Export mono_verifier_verify_full_table_data as
5693         part of the internal API.
5694
5695 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5696
5697         * metadata-verify.c (typedef_is_system_object): Fix System.Object
5698         check.
5699
5700         * metadata-verify.c (verify_implmap_table): Fix implmap invalid
5701         flags bits. SupportLastError was confused as bit 7 instead of 6.
5702
5703         * metadata-verify.c (verify_implmap_table): Fix import scope verification
5704         to check against the module ref table instead of module.
5705
5706         * metadata-verify.c (verify_implmap_table): Fix corlib check.
5707
5708         * pedump.c: Call mono_image_load_names.
5709
5710 2009-06-19 Rodrigo Kumpera  <rkumpera@novell.com>
5711
5712         * image.c: Extract mono_image_load_names from do_mono_image_load.
5713
5714         * metadata-internals.h: Export mono_image_load_names as part of
5715         the internal API.
5716         
5717 2009-06-19  Zoltan Varga  <vargaz@gmail.com>
5718
5719         * metadata.c (mono_metadata_cleanup): Free the generic method cache
5720         first, as it could reference data in the other caches.
5721
5722 2009-06-18 Rodrigo Kumpera  <rkumpera@novell.com>
5723
5724         * metadata-verify.c: Finished with method header verification.
5725
5726 2009-06-18 Rodrigo Kumpera  <rkumpera@novell.com>
5727
5728         * metadata-verify.c: Added more header verification code.
5729         Now only EH clauses are missing.
5730
5731 2009-06-17  Zoltan Varga  <vargaz@gmail.com>
5732
5733         * marshal.c (get_runtime_invoke_type): Don't share primitive types
5734         for return values.
5735
5736 2009-06-16 Rodrigo Kumpera  <rkumpera@novell.com>
5737
5738         * metadata-verify.c: Initial method header verification.
5739
5740 2009-06-16 Rodrigo Kumpera  <rkumpera@novell.com>
5741
5742         * metadata-verify.c (verify_import_table): The IAT contents
5743         might end been patched by the windows DL when running with
5744         coree enabled.
5745
5746 2009-06-15 Rodrigo Kumpera  <rkumpera@novell.com>
5747
5748         * class.c (mono_class_from_typeref): If the enclosing type is not
5749         found return null instead of crashing. Fixes #508487.
5750
5751 2009-06-15  Atsushi Enomoto  <atsushi@ximian.com>
5752
5753         * normalization-tables.h : updated to the latest unicode charcter
5754           data.
5755         * appdomain.c : bump corlib version.
5756
5757 2009-06-14  Zoltan Varga  <vargaz@gmail.com>
5758
5759         * class.c (mono_class_from_name): Fix support for assembly references
5760         in the EXPORTEDTYPE table. Fixes #511704.
5761
5762 2009-06-13  Geoff Norton  <gnorton@novell.com>
5763
5764         * domain.c: Ensure that mono_domain_assembly_open actually opens the
5765         assembly in the target domain.
5766
5767 2009-06-12  Robert Jordan  <robertj@gmx.net>
5768
5769         * cominterop.c (cominterop_get_ccw): Increment mspec's SizeParamIndex
5770         because "this" of the managed signature has become an
5771         ordinary parameter in the unmanaged signature.
5772
5773 2009-06-12  Zoltan Varga  <vargaz@gmail.com>
5774
5775         * class-internals.h (struct _MonoGenericContainer): Add an 'image'
5776         field for owner-less generic containers.
5777
5778         * reflection.c (mono_reflection_initialize_generic_parameter): Set the
5779         image field of the owner-less generic containers created here.
5780
5781         * metadata.c (mono_metadata_load_generic_params): Ditto, the
5782         contain is ownerless until the caller sets its owner.
5783
5784         * metadata.c (type_in_image): Handle owner-less generic containers
5785         correctly.
5786         
5787 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
5788
5789         * image.c (mono_image_close): Support debug_assembly_unload for
5790         dynamic images too.
5791
5792 2009-06-11 Andrés G. Aragoneses  <aaragoneses@novell.com>
5793
5794         * class.c: Fix some typos in comments.
5795
5796 2009-06-11  Zoltan Varga  <vargaz@gmail.com>
5797
5798         * reflection.c (add_custom_modifiers): Avoid reading invalid memory.
5799
5800         * threads.c (mono_thread_execute_interruption): Avoid creating the
5801         abort exception object while holding the synch_cs lock.
5802
5803 2009-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
5804
5805         * metadata-verify.c: Verify basic cattr content.
5806
5807 2009-06-10  Zoltan Varga  <vargaz@gmail.com>
5808
5809         * reflection.c (add_exported_type): Don't set the FORWARDER flag on
5810         nested types.
5811         
5812         * reflection.c (mono_image_fill_export_table_from_type_forwarders): Add
5813         support for nested types. Fixes #511704.
5814
5815 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5816
5817         * metadata-verify.c: Verify methodspec signatures.
5818
5819 2009-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
5820
5821         * metadata-verify.c: Verify typespec signatures.
5822
5823 2009-06-09  Zoltan Varga  <vargaz@gmail.com>
5824
5825         * metadata.c (free_inflated_method): Call 
5826         mono_marshal_free_inflated_wrappers (), which was missed earlier.
5827
5828 2009-06-08  Miguel de Icaza  <miguel@novell.com>
5829
5830         * mono-config.c: Small change to report the PPC64/ILP32 model.
5831
5832 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5833
5834         * metadata-verify.c (parse_type): Check szarray.
5835
5836 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5837
5838         * metadata-verify.c (parse_type): Check fnptr.
5839
5840 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5841
5842         * metadata-verify.c (parse_type): Check generic instances.
5843
5844 2009-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
5845
5846         * metadata-verify.c (parse_type): Check array shape.
5847
5848 2009-06-05  Robert Jordan  <robertj@gmx.net>
5849
5850         * class.c (mono_class_create_from_typedef): Check only for
5851         mscorlib's System.Array.
5852
5853 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5854
5855         * metadata-verify.c (parse_type): Check pointer, class/valuetype
5856         and generic params. 
5857
5858         * metadata-verify.c (parse_field): Check the signature.
5859
5860 2009-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
5861
5862         * metadata-verify.c: Implement locals signature check.
5863
5864 2009-06-04  Marek Safar  <marek.safar@gmail.com>
5865
5866         * domain.c: Add .NET 4.0 Beta 1 version.
5867
5868 2009-06-04  Bill Holmes  <billholmes54@gmail.com>
5869
5870         * cominterop.c (cominterop_ccw_queryinterface): Fix for bug 499566.
5871           For QueryInterface on CCWs consider the base class
5872           interfaces as well.
5873
5874         Code is contributed under MIT/X11 license.
5875
5876 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
5877
5878         * wrapper-types.h: Delete STATIC_RGCTX_INVOKE.
5879
5880         * marshal.c (mono_marshal_ret_static_rgctx_invoke): Remove, no longer
5881         used.
5882
5883         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
5884         adding a static-rgctx invoke wrapper, it is done by the runtime trampolines.
5885
5886         * generic-sharing.c (inflate_other_data): Ditto.
5887         
5888 2009-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
5889
5890         * metadata-verify.c: Implement property signature check.
5891
5892 2009-06-04  Mark Probst  <mark.probst@gmail.com>
5893
5894         * sgen-gc.h: Register saving support for PPC.
5895
5896 2009-06-04  Mark Probst  <mark.probst@gmail.com>
5897
5898         * sgen-gc.c: Fixed a pthread TLS screwup.
5899
5900 2009-06-04  Mark Probst  <mark.probst@gmail.com>
5901
5902         * sgen-gc.c: Do TLS using pthread API if __thread keyword is not
5903         supported.
5904
5905 2009-06-04  Mark Probst  <mark.probst@gmail.com>
5906
5907         * sgen-gc.c: Disable TLA and managed allocation if the __thread
5908         keyword is not supported.
5909
5910 2009-06-04  Zoltan Varga  <vargaz@gmail.com>
5911
5912         * marshal.c metadata.c: Applied patch from Ulrich Weigand 
5913         <uweigand@de.ibm.com>: Free the wrappers of inflated generic methods when
5914         the inflated method is freed. Fixes #508389.
5915
5916         The code is contributed under the MIT/X11 license.
5917         
5918 2009-06-03  Zoltan Varga  <vargaz@gmail.com>
5919
5920         * marshal.c (get_wrapper_target_class): New helper function.
5921         (mono_marshal_get_runtime_invoke): Place runtime-invoke wrappers into
5922         the <Module> class of the image. Fixes #509049.
5923
5924 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5925
5926         * threads.c (ves_icall_System_Threading_Thread_Sleep_internal):
5927         Check if the thread was interrupted and proccess it straight away.
5928         Makes abortion much more responsive.
5929
5930 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5931
5932         * threads.c (mono_thread_execute_interruption): Use atomic cas with
5933         MonoThread::interruption_requested to match it's counterpart.
5934
5935         Fixes a hang in abort-stress-1 on a 2 core x86.
5936
5937         * threads.c (ves_icall_System_Threading_Thread_GetAbortExceptionState):
5938         Fix warning.
5939
5940 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5941
5942         Change MonoImage::name_cache to be protected by the image lock
5943         instead of the loader lock.
5944
5945         * appdomain.c (deregister_reflection_info_roots): Protect access
5946         to name_cache.
5947
5948         * class.c (mono_image_init_name_cache): Change from the loader lock
5949         to the image lock. Check if the cache wasn't already created.
5950
5951         * class.c: Change from the loader to the image lock.
5952
5953         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Fix
5954         the code to hold the image lock while iterating over name_cache and
5955         not go into mono_array_new holding it.
5956
5957         * metadata-internals.h: Add a comment about this change.
5958
5959 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5960
5961         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
5962         Under the 2.0 profile raise the loader error.
5963
5964         Fixes #508532.
5965
5966 2009-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
5967
5968         * marshal.c (mono_marshal_get_runtime_invoke): Emit the right kind
5969         of ldind opcode for generic instances so we don't fail for direct wrappers.
5970         This only affect direct calls.
5971
5972 2009-05-31  Zoltan Varga  <vargaz@gmail.com>
5973
5974         * reflection.c (create_dynamic_mono_image): Fix warnings.
5975
5976         * generic-sharing.c (other_info_equal): Ditto.
5977         
5978 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
5979
5980         * metadata-verify.c: Implement field signature check.
5981
5982 2009-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
5983
5984         * metadata-verify.c: Implement standalone signature check.
5985
5986 2009-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
5987
5988         * metadata-verify.c: Implement methodref signature check.
5989
5990 2009-05-28  Zoltan Varga  <vargaz@gmail.com>
5991
5992         * object-internals.h (MonoRuntimeCallbacks): New structure containing
5993         callbacks supplied by the runtime.
5994
5995         * object.c (mono_install_callbacks): New internal function to install
5996         the callbacks.
5997
5998         * object.c (mono_create_ftnptr): Move the implementation of this to
5999         mini/.
6000
6001         * object.c (mono_get_addr_from_ftnptr): Ditto.  
6002
6003 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6004
6005         * metadata-verify.c (parse_return_type): Proper byref check.
6006         * metadata-verify.c (is_valid_method_signature): Check for zero arity
6007         generic signatures and method params.
6008
6009 2009-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
6010
6011         * metadata-verify.c (decode_signature_header): Fix bounds check.
6012
6013         * metadata-verify.c (parse_custom_mods): Check custom mods.
6014
6015         * metadata-verify.c (parse_type): Do initial basic verification
6016         of valid values.
6017         
6018         * metadata-verify.c (is_valid_method_signature): Parse the generic
6019         param count.
6020
6021 2009-05-26 Rodrigo Kumpera  <rkumpera@novell.com>
6022
6023         * icall.c (ves_icall_Type_GetMethodsByName): Virtual methods should be
6024         discarded based on their most specific definition so we set the method_slots
6025         array before checking if the method is acceptable or not.
6026
6027         Fixes #506757.
6028
6029 2009-05-26  Mark Probst  <mark.probst@gmail.com>
6030
6031         * icall.c: Free the old array when resizing a mono_ptr_array.
6032
6033 2009-05-26  Mark Probst  <mark.probst@gmail.com>
6034
6035         * reflection.c (create_dynamic_mono_image): Use mono_object_hash()
6036         for the hashes whose keys are managed objects.
6037
6038 2009-05-26  Mark Probst  <mark.probst@gmail.com>
6039
6040         * object-internals.h, threads.c: Set the execution context on
6041         thread start here, not in corlib.
6042
6043         * appdomain.c: Bump corlib version.
6044
6045 2009-05-27  Martin Baulig  <martin@ximian.com>
6046
6047         * mono-debug.c (mono_debug_init): Use `MONO_DEBUG_FORMAT_DEBUGGER'
6048         if `_mono_debug_using_mono_debugger' is set to make things work
6049         properly when embedding Mono.
6050
6051 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
6052
6053         * class.c (mono_class_setup_fields): Don't mark simd types as having
6054         16 bytes alignment as the whole runtime doesn't support.
6055
6056 2009-05-25 Rodrigo Kumpera  <rkumpera@novell.com>
6057
6058         * metadata-verify.c (safe_read): Use endian safe read macros.
6059
6060 2009-05-25  Zoltan Varga  <vargaz@gmail.com>
6061
6062         * object.c (mono_create_ftnptr): Don't allocate from the code mempool since
6063         it is read-only when using full aot.
6064
6065 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
6066
6067         * metadata-verify.c (is_valid_method_signature): Verify parts
6068         of the return type. Provide an error message in case of failure.
6069
6070 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
6071
6072         * metadata-verify.c (is_valid_method_signature): Verify the call conv.
6073
6074 2009-05-22 Rodrigo Kumpera  <rkumpera@novell.com>
6075
6076         * metadata-verify.c: Include the size prefix in the bounds check.
6077
6078 2009-05-22  Miguel de Icaza  <miguel@novell.com>
6079
6080         * icall.c: Remove warnings.
6081
6082         * mono-config.c: Allow for CONFIG_CPU to be set in config.h and
6083         prevent auto-detection based on GCC defines.
6084
6085         Add PS3
6086
6087         * metadata-verify.c: Do not include signal.h
6088
6089         * generic-sharing.c, marshal.c: Add returns to avoid some warning
6090         messages.  Not sure why the g_assert_not_reached is not enough to
6091         quiet the compiler.
6092         
6093
6094         * appdomain.c: Remove code that is not used when
6095         DISABLE_SHADOW_COPY is set.
6096
6097         * image.c: use g_getenv
6098
6099 2009-05-21  Miguel de Icaza  <miguel@novell.com>
6100
6101         * reflection.c: Remove code that it not used with
6102         DISABLE_REFLECTION_EMIT is defined.
6103
6104 2009-05-21  Zoltan Varga  <vargaz@gmail.com>
6105
6106         * marshal.c (mono_marshal_get_runtime_invoke): Share more runtime
6107         invoke wrappers.
6108
6109 2009-05-20  Miguel de Icaza  <miguel@novell.com>
6110
6111         * socket-io.c
6112         (ves_icall_System_Net_Sockets_Socket_Available_internal): Remove
6113         the ifdef here and instead put that on io-layer
6114
6115 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6116
6117         * metadata-verify.c: Verify the generic param constraint table.
6118
6119 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6120
6121         * metadata-verify.c (verify_generic_param_table): Fix
6122         thinko on the valid flags bits for generic params.
6123
6124 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6125
6126         * metadata-verify.c: Verify the methodspec table.
6127
6128 2009-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
6129
6130         * metadata-verify.c: Verify the generic param table.
6131
6132 2009-05-19  Mark Probst  <mark.probst@gmail.com>
6133
6134         * sgen-gc.c: Store and use the count with REMSET_VTYPE.
6135
6136 2009-05-19  Mark Probst  <mark.probst@gmail.com>
6137
6138         * sgen-gc.c: Use generation enum more consistently and use the
6139         correct generation in mono_gc_register_for_finalization().
6140
6141 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
6142
6143         * metadata-verify.c: Verify the nested class table.
6144
6145 2009-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
6146
6147         * metadata-verify.c: Verify the manifest resource table.
6148
6149 2009-05-17  Zoltan Varga  <vargaz@gmail.com>
6150
6151         * debug-helpers.c (dis_one): Add little-endian support for ldstr.
6152
6153 2009-05-16  Zoltan Varga  <vargaz@gmail.com>
6154
6155         * class.c (mono_class_get_vtable_entry): Avoid adding static-rgctx
6156         wrappers, this is now done in the JIT.
6157         
6158         * class.c (mono_set_generic_sharing_supported): New internal function.
6159         (mono_class_generic_sharing_enabled): Move the #ifdef stuff to the JIT.
6160
6161 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
6162
6163         * metadata-verify.c: Verify the exported type table.
6164
6165 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
6166
6167         * pedump.c (main): Fake an assembly for netmodules to make the verifier happy.
6168
6169 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
6170
6171         * metadata-verify.c: Verify the file table.
6172
6173 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
6174
6175         * metadata-verify.c (verify_assembly_table): Fix an error message.
6176
6177         * metadata-verify.c: Verify the assemblyref table.
6178
6179 2009-05-15 Rodrigo Kumpera  <rkumpera@novell.com>
6180
6181         * metadata-verify.c (verify_assembly_table): Fix the valid
6182         bits mask for flags.
6183
6184 2009-05-15  Zoltan Varga  <vargaz@gmail.com>
6185
6186         * debug-helpers.c (mono_method_full_name): Print generic parameters of
6187         generic methods as well.
6188
6189 2009-05-15  Geoff Norton  <gnorton@novell.com>
6190
6191         * gc.c: MachO/Darwin supports and uses semaphores fine for this 
6192         use-case and is significantly more performant than the wapi layer.
6193
6194 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
6195
6196         * metadata-verify.c: Verify the assembly table.
6197
6198 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
6199
6200         * metadata-verify.c: Fix rows limit check.
6201
6202 2009-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
6203
6204         * metadata-verify.c: Verify the fieldrva table.
6205
6206 2009-05-13  Mark Probst  <mark.probst@gmail.com>
6207
6208         * sgen.c: Speed up weak links and finalizers by grouping them by
6209         generation.
6210
6211 2009-05-13  Mark Probst  <mark.probst@gmail.com>
6212
6213         * marshal.c (delegate_hash_table_add): When overwriting an entry,
6214         free the old GCHandle (only applies to SGen).
6215
6216 2009-05-13  Zoltan Varga  <vargaz@gmail.com>
6217
6218         * loader.c (mono_get_method_from_token): Avoid the expensive call to
6219         mono_metadata_load_generic_params () for non-generic methods.
6220
6221 2009-05-12  Mark Probst  <mark.probst@gmail.com>
6222
6223         * monitor.c, monitor.h (mono_monitor_get_object_monitor_weak_link):
6224         New function for returning a monitor's weak link if it has one.
6225
6226         * sgen-gc.c: Remove an object's monitor's weak link (if it has
6227         one) when clearing a domain.  These can still be around because
6228         the object might not have been collected.
6229
6230 2009-05-12  Zoltan Varga  <vargaz@gmail.com>
6231
6232         * gc.c: Fix a warning.
6233
6234 2009-05-12  Kornél Pál  <kornelpal@gmail.com>
6235
6236         * gc.c (mono_gc_init): Set gc_thread on creation. This avoids the
6237         prevous wait that resulted in a deadlock on Windows when initializing
6238         the runtime form DllMain. Also results in improved startup time.
6239         (finalizer_thread): Get rid of thread_started_event.
6240         * threads.c, threads-types.h (mono_thread_create_internal): Return the
6241         resulting MonoThread.
6242
6243         Contributed under MIT/X11 license.
6244
6245 2009-05-11 Rodrigo Kumpera  <rkumpera@novell.com>
6246
6247         * metadata-verify.c: Verify the implmap table.
6248         Don't require that #US and #Strings be present.
6249
6250 2009-05-11  Sebastien Pouliot  <sebastien@ximian.com>
6251
6252         * security-core-clr.c: Delegate checks are done at creation time,
6253         not a invocation time. Fix exception for Telerik Silverlight demo
6254
6255 2009-05-11  Mark Probst  <mark.probst@gmail.com>
6256
6257         * sgen-gc.c (need_remove_object_for_domain): Remove the special
6258         case for the Thread class.
6259
6260         * threads.c: Do clean-up of abort exception/state in
6261         thread_cleanup() instead of Thread.free_internal().  Also clean up
6262         current_appcontext.  The reason we have to do that is because
6263         those references might point into another domain and if that
6264         domain is unloaded before the thread is finalized, they point to
6265         invalid data.
6266
6267 2009-05-10  Andreas Faerber  <andreas.faerber@web.de>
6268
6269         * null-gc.c (mono_gc_weak_link_add, mono_gc_clear_domain): Fix
6270         stub signatures.
6271         
6272         Contributed unter MIT/X11 license.
6273
6274 2009-05-09  Miguel de Icaza  <miguel@novell.com>
6275
6276         * verify.c, metadata-verifier.c: Add support for disabling the
6277         verifier in some builds.
6278
6279         [ Sorry, my previous commit accidentally commited some work in
6280         progress ]
6281
6282 2009-05-08  Zoltan Varga  <vargaz@gmail.com>
6283
6284         * class.c (mono_class_setup_fields): Set class->field.first for
6285         generic instances.
6286
6287 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
6288
6289         * metadata-verify.c: Verify the typespec table.
6290
6291 2009-05-07 Rodrigo Kumpera  <rkumpera@novell.com>
6292
6293         * metadata-verify.c: Verify the module table.
6294
6295 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6296
6297         * metadata-verify.c: Verify the methodimpl table.
6298
6299 2009-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
6300
6301         * metadata-verify.c: Verify the property table.
6302
6303 2009-05-06  Zoltan Varga  <vargaz@gmail.com>
6304
6305         * debug-helpers.c (mono_method_desc_match): Add support for generic
6306         glob patterns.
6307
6308 2009-05-05 Rodrigo Kumpera  <rkumpera@novell.com>
6309
6310         * metadata-verify.c: Verify the propertymap table.
6311
6312 2009-05-04 Rodrigo Kumpera  <rkumpera@novell.com>
6313
6314         * metadata-verify.c: Verify the event table.
6315
6316         * metadata-verify.c (search_sorted_table): Fix offset
6317         calculation.
6318
6319 2009-05-02  Zoltan Varga  <vargaz@gmail.com>
6320
6321         * domain-internals.h (struct _MonoJitInfo): Add a 'from_llvm' flag.
6322
6323 2009-05-01  Mark Probst  <mark.probst@gmail.com>
6324
6325         * gc.c (mono_gc_run_finalize): Don't set the domain too late,
6326         because mono_delegate_free_ftnptr() needs it.
6327
6328 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6329
6330         * metadata-verify.c: Verify the eventmap table.
6331
6332 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6333
6334         * metadata-verify.c: Verify the standalonesig table.
6335
6336 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6337
6338         * metadata-verify.c: Verify the field layout table.
6339
6340 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6341
6342         * class.c (mono_type_get_name_recurse): Don't crash
6343         for ownerless generic params.
6344
6345         * debug-helpers.c (mono_type_get_desc): Correct the format
6346         for ownerless generic params.
6347
6348 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6349
6350         * metadata-verify.c: Verify the class layout table.
6351
6352 2009-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
6353
6354         * metadata-verify.c: Verify the decl security table.
6355
6356 2009-04-30  Mark Probst  <mark.probst@gmail.com>
6357
6358         * domain.c (mono_domain_set_internal_with_options): Don't do
6359         anything if the old domain is the same as the old one.  Fixes
6360         #499326.
6361
6362 2009-04-30  Mark Probst  <mark.probst@gmail.com>
6363
6364         * appdomain.c: Deregister the reflection_info roots when unloading
6365         a domain.
6366
6367         * sgen-gc.c, domain.c, gc-internal.h: mono_gc_clear_domain() nulls
6368         memory allocated by a domain and frees its disappearing links.
6369
6370         * boehm-gc.c, null-gc.c: Empty implementation of
6371         mono_gc_clear_domain().
6372
6373 2009-04-30  Mark Probst  <mark.probst@gmail.com>
6374
6375         * appdomain.c (clear_cached_vtable): Free the static fields memory
6376         block.
6377
6378 2009-04-30  Mark Probst  <mark.probst@gmail.com>
6379
6380         * gc.c: Set the correct domain when invoking finalizers.
6381
6382         * appdomain.c: Set the correct domain when creating threads.
6383
6384 2009-04-30  Mark Probst  <mark.probst@gmail.com>
6385
6386         * sgen-gc.c: Fix skip size for vectors.
6387
6388 2009-05-03  Martin Baulig  <martin@ximian.com>
6389
6390         * mono-debug-debugger.c
6391         (mono_debugger_check_breakpoints): Check class init handlers even
6392         if we don't have any method load handers.
6393
6394 2009-04-30  Zoltan Varga  <vargaz@gmail.com>
6395
6396         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid 
6397         returning refonly assemblies if refonly is FALSE. Fixes #499013.
6398
6399 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
6400
6401         * metadata-verify.c: Verify the field marshal table.
6402
6403 2009-04-29 Rodrigo Kumpera  <rkumpera@novell.com>
6404
6405         * metadata-verify.c: Verify the custom attribute table.
6406
6407 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
6408
6409         * metadata-verify.c: Verify the constant table.
6410
6411 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
6412
6413         * metadata-verify.c: Verify the memberef table.
6414
6415 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
6416
6417         * metadata-verify.c (get_coded_index_token): Remove
6418         dead argument.
6419
6420 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
6421
6422         * metadata-verify.c: Verify the interfaceimpl table.
6423
6424 2009-04-28 Rodrigo Kumpera  <rkumpera@novell.com>
6425
6426         * verify.c: Improve error message.
6427
6428         * debug-helpers.c (mono_type_get_desc): Harden the code that
6429         deals with VAR and MVAR.
6430
6431 2009-04-28  Zoltan Varga  <vargaz@gmail.com>
6432
6433         * image.c (mono_image_fixup_vtable): Avoid casting an lvalue. Fixes 
6434         part of #498692.
6435
6436 2009-04-23 Tom Hindle <tom_hindle@sil.org>
6437
6438         * cominterop.c (ves_icall_System_Runtime_InteropServices_Marshal_ReleaseComObjectInternal):
6439         changed to match .Net behaviour of not aborting on additional calls to ReleaseComObject.
6440
6441 2009-04-28  Sebastien Pouliot  <sebastien@ximian.com>
6442
6443         * security-core-clr.c: Avoid redundant checks for platform code, 
6444         e.g. check for method and for class (very common) and check
6445         for class and outer class (less common)...
6446
6447 2009-04-27  Zoltan Varga  <vargaz@gmail.com>
6448
6449         * reflection.c: Avoid returning random cattrs for synthetic methods.
6450         Fixes #498545.
6451
6452 2009-04-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
6453
6454         * assembly.c: assemblies in the GAC should never be shadow-copied.
6455
6456 2009-04-26  Mark Probst  <mark.probst@gmail.com>
6457
6458         * domain.c, domain-internals.h: Disable
6459         track_resurrection_{objects,handles}_hash in MonoDomain if using
6460         SGen.
6461
6462 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6463
6464         * metadata-verify.c: Verify the param table.
6465
6466 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6467
6468         * metadata-verify.c (verify_typedef_table): Range check FieldList and
6469         MethodList.
6470
6471         * metadata-verify.c (verify_method_table): Proper check the ParamList
6472         field.
6473
6474 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6475
6476         * metadata-verify.c (verify_method_table): Check for runtime
6477         implemented functions such as delegate .ctors. Remove spurious
6478         printf.
6479         
6480 2009-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
6481
6482         * pedump.c: Proper initialize the runtime forcing the 2.0 profile.
6483
6484 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
6485
6486         Don't allocate MonoGenericInfo for ownerless generic params.
6487         * class-internals.h (MonoGenericParam::info): Move field to ...
6488         (MonoGenericParamFull): ... this.  New struct.
6489         (MonoGenericContainer::type_params): Change type to
6490         MonoGenericParamFull.
6491         (MonoGenericParam, MonoGenericContainer): Update accessors.
6492         * metadata.c (mono_metadata_parse_generic_param): Don't initialize
6493         'info' field for ownerless generic param.
6494         (mono_metadata_load_generic_params): Update to changes.
6495         * reflection.c (mono_reflection_create_generic_class): Likewise.
6496         (reflection_methodbuilder_to_mono_method): Likewise.
6497         (mono_reflection_initialize_generic_parameter): Likewise.
6498
6499 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
6500
6501         Don't use MonoGenericParamInfo for ownerless generic params.
6502         * class.c (get_anon_gparam_class, set_anon_gparam_class): New.  Don't
6503         use ParamInfo class at all.
6504         (mono_class_from_generic_parameter): Use them.
6505         (make_generic_param_class): Fix a couple of instances where 'pinfo
6506         == NULL' wasn't handle.
6507
6508 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
6509
6510         * class.c (make_generic_param_class): Carve out of ...
6511         (mono_class_from_generic_parameter): ... here.
6512
6513 2009-04-24  Raja R Harinath  <harinath@hurrynot.org>
6514
6515         Simplify mono_class_from_generic_parameter
6516         * class-internals.h (MonoGenericParamInfo::token): New field.
6517         * metadata.c (mono_metadata_load_generic_params): Initialize it
6518         from metadata.
6519         * class.c (mono_class_from_generic_parameter): Use it instead of
6520         searching through metadata.
6521
6522 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6523
6524         * metadata-verify.c: Add verification of the method table.
6525
6526 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6527
6528         * icall.c (ves_icall_Type_GetMethodsByName): Fix memleak for the
6529         Delegate::Invoke optimization.
6530
6531 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6532
6533         * appdomain.c (mono_domain_create_appdomain_internal): Free the
6534         string returned by get_shadow_assembly_location_base.
6535
6536         * appdomain.c (get_shadow_assembly_location_base): Add a comment
6537         about caller's ownership.
6538
6539 2009-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
6540
6541         * reflection.c: Add mono_reflection_cleanup_domain to cleanup
6542         reflection memory on domain unload.
6543
6544         * domain.c (mono_domain_free): Don't free refobject_hash, let the
6545         reflection cleanup code do it.
6546
6547         * domain-internals.h: Add mono_reflection_cleanup_domain.
6548
6549         This fixes a memory leak for managed mirrors of reflection objects
6550         on domain unload. 
6551
6552 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
6553
6554         * metadata-verify.c: Implement more verification of the field table.
6555
6556 2009-04-22 Rodrigo Kumpera  <rkumpera@novell.com>
6557
6558         * pedump.c (main): Init mono with mscorlib so it defaults to 2.0 and
6559         doesn't try to parse the input assembly, which can be broken.
6560
6561 2009-04-23  Mark Probst  <mark.probst@gmail.com>
6562
6563         * boehm-gc.c, gc-internal.h, gc.c, monitor.c, null-gc.c,
6564         sgen-gc.c: Implement track resurrection in weak GC handles in SGen
6565         by using the lowest bit in the link to store whether the link is
6566         tracked.  Move the track_resurrection hashes into boehm-gc.c.
6567
6568 2009-04-22  Miguel de Icaza  <miguel@novell.com>
6569
6570         * Makefile.am: Split the console support in platform specific code
6571         and put together a framework for making this easy in the future so
6572         that we can start splitting code instead of having a mess of PLATFORM_WIN32
6573
6574 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
6575
6576         * pedump.c: Fix a warning.
6577
6578 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
6579
6580         * verify.c (mono_delegate_type_equal): Compare valuetypes using
6581         mono_class_from_mono_type to avoid bad interactions with the dual representation
6582         of the generic type definition.
6583
6584 2009-04-21 Rodrigo Kumpera  <rkumpera@novell.com>
6585
6586         * verify.c (do_invoke_method): Use mono_class_from_mono_type to
6587         get the MonoClass for the call context type as it might be a generic
6588         instance.
6589
6590         Fixes #491483.
6591
6592 2009-04-21  Mark Probst  <mark.probst@gmail.com>
6593
6594         * object-internals.h: The Thread object has no execution_context
6595         member anymore.
6596
6597         * threads.c, threadpool.c, threads-types.h: Accessor functions for
6598         the execution context.
6599
6600         * appdomain.c: Bump corlib version.
6601
6602 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
6603
6604         * verify.c (do_newobj): Improve error message.
6605
6606 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
6607
6608         * verify.c (verify_clause_relationship): Only mask as an error if the exception clause
6609         is nested in the filter block.
6610
6611         * verify.c (verify_clause_relationship): The disjoint check must verify if the exception
6612         block is not fully nested.
6613
6614         Fixes #495656.
6615
6616 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
6617
6618         * verify.c (verify_type_compatibility_full): Compare MonoClass and
6619         not MonoType to check for equality of valuetypes as the generic type
6620         definition allows for two different encodings: the generic type definition
6621         class or a generic instance over the GTD arguments.
6622
6623         Fixes #496175.
6624
6625 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
6626
6627         * verify.c (dump_stack_value): Fix compilation with extra debug turned on.
6628
6629         * verify.c (do_initobj): Improve error message.
6630
6631 2009-04-20 Rodrigo Kumpera  <rkumpera@novell.com>
6632
6633         * metadata-verify.c: Enable pe verification as the issue with #496453
6634         is that the authenticode data directory have a different unspecified
6635         format. Ignore it for now.
6636
6637         * pedump.c: Run the metadata verifier together with the IL verifier.
6638
6639         Fixes ##496453.
6640
6641 2009-04-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6642
6643         * metadata-verify.c: Temporarily disable pe verification due to #496453.
6644
6645 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
6646
6647         * class.c (can_access_type): Check visibility against
6648         the element type for pointers and arrays.
6649
6650         Fixes #496150.
6651
6652 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
6653
6654         * metadata-verify.c: Fix cli and table verification to use information
6655         from the MonoImage. A lot of duplicated code got killed.
6656
6657 2009-04-17 Rodrigo Kumpera  <rkumpera@novell.com>
6658
6659
6660         This patch starts to integrate the metadata verifier with the runtime code.
6661
6662         This patch causes major regression in functionality for the metadata verifier
6663         as cli and table verification are disabled since they require to be ported to
6664         use MonoImage information.
6665
6666         * image.c (do_mono_image_load): Split the code in this function
6667         into mono_image_load_pe_data and mono_image_load_cli_data.
6668         Add     care_about_pecoff parameter to not load pecoff data.
6669         Call into the metadata verifier for pecoff and cli verification.
6670
6671         * image.c (mono_image_open_raw): New function that doesn't perform
6672         any parsing of the image contents.
6673         
6674         The reason for the 3 new functions is to give pedump better control
6675         into the interaction with the verifier.
6676
6677         * metadata-internals.h: Add new functions from image.c as part of the
6678         internal mono API.
6679
6680         * metadata-verify.c: Split mono_image_verify into mono_verifier_verify_pe_data,
6681         mono_verifier_verify_cli_data and mono_verifier_verify_table_data. Prepare
6682         to make those functions work together with the runtime.
6683
6684         * verify.c: Add mono_verifier_is_enabled_for_image function that returns
6685         true if the image needs to be verified.
6686
6687         * verify-internals.h: Export new functions from metadata-verify.c and verify.c.
6688
6689         * pedump.c: Use new metadata verifier API.
6690
6691 2009-04-19  Zoltan Varga  <vargaz@gmail.com>
6692
6693         * object.c (mono_install_vtable_trampoline): Make this receive a
6694         trampoline creation function instead of trampoline, allowing the JIT
6695         to use a different trampoline for each vtable.
6696
6697 2009-04-18  Mark Probst  <mark.probst@gmail.com>
6698
6699         * object.c (mono_raise_exception): Don't reset the thread abort
6700         exception state here.
6701
6702 2009-04-18  Mark Probst  <mark.probst@gmail.com>
6703
6704         * icall-def.h: New icall for getting the thread abort exception
6705         state for a thread.
6706
6707         * object.c, thread.c, object-internals.h: A thread's abort
6708         exception state is now a GC handle.  To get the object it stands
6709         for, we must move it into the current app domain, if it's
6710         different than the one where it originated from.
6711
6712         * appdomain.c: Bump corlib version.
6713
6714         * domain.c, domain-internals.h: New function for setting the
6715         domain and migrate the thread abort exception or not.
6716
6717 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6718
6719         * metadata-verify.c: Add initial verification of the
6720         field table.
6721
6722 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6723
6724         * metadata-verify.c: Add a macro to conditionally enable
6725         dumping of verification information. Add  make_coded_token
6726         and search_sorted_table to enable search sorted tables
6727         by a given coded token.
6728
6729 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6730
6731         * metadata-verify.c: Add array mapping from table index
6732         to description offset. Add get_col_offset and get_col_size
6733         functions.
6734
6735 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6736
6737         * metadata-verify.c: Add remaining table descriptions offsets.
6738         Add remaining coded index descriptions.
6739
6740 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6741
6742         * metadata-verify.c: Fixed constant table description.
6743         Fixed calculation of HasCustomAttribute coded index size.
6744         Fixed calculation of size for many table indexes. 
6745
6746 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6747
6748         * pedump.c (dump_metadata): Dump table offset instead
6749         of useless pointer in memory.
6750
6751 2009-04-16 Rodrigo Kumpera  <rkumpera@novell.com>
6752
6753         * metadata-verify.c (verify_typedef_table): Add tests for MethodList.
6754
6755 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6756
6757         * metadata-verify.c (verify_typedef_table): Add tests for FieldList and
6758         a missing of for interface types.
6759
6760 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6761
6762         * metadata-verify.c (verify_pe_optional_header): Add comment of why
6763         the code is commented.
6764
6765         * metadata-verify.c (verify_resources_table): Remove spurious printf
6766         and don't fail if there are unmanaged resources. Gmcs generates a useless
6767         one     for all assemblies - I bet it's some MS compatibility junk.
6768
6769 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6770
6771         * metadata-verify.c (verify_typedef_table): Verify the extends field.
6772
6773         * metadata-verify.c (mono_image_verify): Add a is_corlib.
6774
6775         * verify-internals.h: Same.
6776
6777         * pedump.c: Fix for mono_image_verify new signature.
6778
6779 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6780
6781         * metadata-verify.c (verify_typedef_table): Verify for some invalid
6782         flags combinations.
6783
6784 2009-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
6785
6786         * metadata-verify.c (verify_module_table): Ignore the generation field.
6787
6788 2009-04-15  Martin Baulig  <martin@ximian.com>
6789
6790         * debug-mono-symfile.c
6791         (mono_debug_symfile_lookup_location): Don't print a warning for
6792         unknown extended opcodes if they're within 0x40 and 0x7f.
6793
6794 2009-04-15  Zoltan Varga  <vargaz@gmail.com>
6795
6796         * marshal.c (mono_marshal_get_runtime_invoke_sig): Don't share runtime
6797         invoke signatures returning an enum. Fixes #494847.
6798
6799 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
6800
6801         * metadata-verify.c: Initial code to verify the typedef table.
6802
6803 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
6804
6805         * verify.c (mono_method_verify): Don't fail if an unconditional branch
6806         with non empty stack happens before the beginning of a try block.
6807
6808         Fixes #494812.
6809
6810 2009-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
6811
6812         * metadata-verify.c: Verify typename and typenamespace fields of
6813         the typeref table.
6814
6815 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
6816
6817         * metadata-verify.c: Initial code to verify the typeref table.
6818
6819 2009-04-13 Rodrigo Kumpera  <rkumpera@novell.com>
6820
6821         * verify.c (verify_delegate_compatibility): Fix error message.
6822
6823 2009-04-14  Sebastien Pouliot  <sebastien@ximian.com>
6824
6825         * security-core-clr.c: Fix typo
6826
6827 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
6828
6829         * marshal.c (delegate_hash_table_add): Make delegate_target_locations 
6830         a MonoGHashTable to keep its values alive.
6831         (emit_marshal_boolean): Fix a warning.
6832
6833 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
6834
6835         * socket-io.c: don't return IPv4/IPv6 addresses if the machine does
6836         not have any interface configured for IPv4/IPv6.
6837
6838 2009-04-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
6839
6840         * assembly.c: fix typo in error message.
6841
6842 2009-04-14  Zoltan Varga  <vargaz@gmail.com>
6843
6844         * marshal.c (mono_delegate_to_ftnptr): Use mono_gc_alloc_fixed () for
6845         allocating the location holding the this argument to prevent
6846         'too many root sets' errors.
6847
6848         * object.c (mono_class_create_runtime_vtable): Set field->offset to -1
6849         to mark fields as special static.
6850         (mono_field_static_get_value): Handle special static fields.
6851         (mono_field_static_set_value): Ditto.
6852
6853         * class-internals.h (struct _MonoClassField): Document this.
6854
6855 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
6856
6857         * cominterop.c (mono_cominterop_emit_marshal_com_interface): Assigning
6858           the argument a value of null for the MARSHAL_ACTION_MANAGED_CONV_OUT
6859           case.  This will handle when managed code returns null to native code.
6860
6861         Code is contributed under MIT/X11 license.
6862
6863 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
6864
6865         * object.c (build_imt_slots): Changing a free to a g_free to match
6866           the g_malloc0 in add_imt_builder_entry that allocated this memory.
6867
6868         Code is contributed under MIT/X11 license.
6869
6870 2009-04-13  Bill Holmes  <billholmes54@gmail.com>
6871
6872         * marshal.c (emit_marshal_boolean): Adding code to ensure that
6873           the correct TRUE value is passed through the marshaling layer.
6874
6875         Code is contributed under MIT/X11 license.
6876
6877 2009-04-13  Zoltan Varga  <vargaz@gmail.com>
6878
6879         * marshal.c (mono_marshal_emit_managed_wrapper): Handle closed delegates
6880         correctly. Fixes #492330.
6881         
6882         * marshal.c: Fix the embedding of object pointers into JITted code in
6883         the native-to-managed wrappers by allocating some GC tracked memory, and
6884         embedding the address of that.
6885
6886 2009-04-11  Zoltan Varga  <vargaz@gmail.com>
6887
6888         * object.c (mono_class_create_runtime_vtable): Avoid putting MonoMethod
6889         pointers into the vtable.
6890
6891 2009-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
6892
6893         * verify.c (mono_delegate_type_equal): Proper check MONO_TYPE_CLASS.
6894
6895         * verify.c (verify_ldftn_delegate): Improve error message.
6896
6897 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
6898
6899         * reflection.c (my_mono_class_from_mono_type): Remove.
6900
6901 2009-04-09  Raja R Harinath  <harinath@hurrynot.org>
6902
6903         Prepare to reduce memory usage of owner-less generic parameters (1/n)
6904         * class-internals.h (MonoGenericParam): Carve out pklass, name, flags
6905         and constraints fields into ...
6906         (MonoGenericParamInfo): ... this.
6907         (mono_generic_param_info, mono_generic_container_get_param_info):
6908         New accessors.
6909         * class.c, debug-helpers.c, icall.c: Update to changes.
6910         * metadata.c, reflection.c, verify.c: Likewise.
6911
6912 2009-04-09  Zoltan Varga  <vargaz@gmail.com>
6913
6914         * debug-helpers.c (dis_one): Fix decoding of strings in dynamic images.
6915
6916         * marshal.c (get_runtime_invoke_type): Share enums with their base types.
6917         
6918         * marshal.c (get_runtime_invoke_type): Share pointers with ints and
6919         booleans with sbytes.
6920
6921 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6922
6923         * class.c (can_access_instantiation): Verify accesibility of element types
6924         for arrays and pointers.
6925
6926         * class.c (can_access_type): Return true if the target class is VAR or MVAR.
6927
6928         * class.c (mono_method_can_access_method_full): Fix typos in the documentation.
6929
6930         Fixes #493068.
6931
6932 2009-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
6933
6934         * verify.c (do_invoke_method): Improve error messages.
6935
6936 2009-04-08  Bill Holmes  <billholmes54@gmail.com>
6937
6938         * verify.c:  Fixing the MSVC build.
6939
6940         Code is contributed under MIT/X11 license.
6941
6942 2009-04-08  Sebastien Pouliot  <sebastien@ximian.com>
6943
6944         * security-core-clr.c: Simplify get_reflection_caller not to call
6945         mono_method_get_last_managed (another stack walk) and adjust the
6946         callers to handle a (should not happen) NULL return value.
6947
6948 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
6949
6950         Add accessors to some MonoGenericParam fields
6951         * class-internals.h (mono_generic_param_owner): New accessor.
6952         (mono_generic_param_num): Likewise.
6953         (mono_type_get_generic_param_owner): New helper.
6954         (mono_type_get_generic_param_num): New helper.
6955         * class.c, icall.c, metadata.c, reflection.c, verify.c: Use them.
6956
6957 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
6958
6959         * class-internals.h (mono_generic_container_get_param): New wrapper.
6960         * class.c, icall.c, metadata.c, verify.c: Use it.
6961
6962 2009-04-08  Raja R Harinath  <harinath@hurrynot.org>
6963
6964         Fix gtest-252.cs
6965         * verify.c (mono_type_is_valid_type_in_context): Rewrite to use
6966         the standard case/loop.  In particular, don't complain about
6967         references to generic type definitions.
6968
6969 2009-04-07  Zoltan Varga  <vargaz@gmail.com>
6970
6971         * debug-helpers.c (dis_one): Decode string arguments.
6972
6973 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
6974
6975         * pedump.c (dump_verify_info): Dump type name correctly.
6976
6977 2009-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
6978
6979         * verify.c (mono_method_verify): Don't init code slots for exception boundaries if they
6980         are larger than code size.
6981
6982         This can happen in valid code if the try/catch block is not followed by any instruction
6983         and do a backward branch on the leave instruction.
6984
6985         Fixes #492494.
6986
6987 2009-04-06  Sebastien Pouliot  <sebastien@ximian.com>
6988
6989         * security-core-clr.c: Fix typo while comparing second method names
6990         in can_avoid_corlib_reflection_delegate_optimization
6991
6992 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
6993
6994         * verify.c (do_throw): Don't allow an unboxed generic param ar argument.
6995
6996         Fixes #487738.
6997
6998 2009-04-06 Rodrigo Kumpera  <rkumpera@novell.com>
6999
7000         * metadata.c (do_mono_metadata_parse_type): Fail if we are decoding
7001         a MVAR using a class context.
7002
7003         Fixes #490335.
7004
7005 2009-04-06  Zoltan Varga  <vargaz@gmail.com>
7006
7007         * object.c (mono_class_compute_gc_descriptor): Make this non-static.
7008
7009         * domain-internals.h (struct _MonoJitInfo): Add a 'gc_info' field.
7010
7011         * gc-internal.h (MonoGCCallbacks): New stucture containing the callback
7012         functions supplied by the JIT for the SGEN GC.
7013
7014         * sgen-gc.c: Call the callbacks supplied by the JIT to do stack marking.
7015         
7016 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
7017
7018         monitor.c (mono_monitor_try_enter_internal):
7019         Added calls to profile monitor contentions.
7020         Also duplicated a small piece of code (the "get the monitor" logic)
7021         from the fast path to the slow path, and changed the relevant goto
7022         statements, so that monitor acquisition events can be emitted from the
7023         slow path (this is by Paolo Molaro).
7024
7025 2009-04-06  Massimiliano Mantione  <massi@ximian.com>
7026
7027         * profiler.c, profiler.h, profiler-private.h:
7028         Added support for profiling monitor contentions.
7029
7030 2009-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
7031
7032         * metadata-verify.c: Verify the modules table.
7033
7034 2009-04-02 Rodrigo Kumpera  <rkumpera@novell.com>
7035
7036         * verify.c (mono_generic_param_is_constraint_compatible): Inflate the candidate
7037         using the context of the method been verifier and not of the method been called.
7038
7039         * verify.c: Add verifier_inflate_type and mono_type_is_valid_type_in_context to
7040         safely inflate generic types. 
7041
7042 2009-04-02  Sebastien Pouliot  <sebastien@ximian.com>
7043
7044         * security-core-clr.c: Change the strategy for checking the 
7045         "reflection using delegates optimization" to avoid unneeded 
7046         attributes in multiple class libraries.
7047
7048 2009-04-02  Mark Probst  <mark.probst@gmail.com>
7049
7050         * sgen-gc.c: Remove object element in the disappearing link struct
7051         by storing the object pointer in the link.
7052
7053 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
7054
7055         * pedump.c (dump_verify_info): Don't crash if signature decoding fails.
7056
7057 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
7058
7059         * verify.c (verifier_load_field): Fail if the field parent could not be loaded.
7060
7061         * verify.c (mono_method_verify): Do proper bounds checking of exception
7062         clause ranges.
7063
7064 2009-03-31 Rodrigo Kumpera  <rkumpera@novell.com>
7065
7066         * loader.c (mono_field_from_token): Don't crash if the field parent could
7067         not be decoded.
7068
7069 2009-03-31  Mark Probst  <mark.probst@gmail.com>
7070
7071         * sgen-gc.c: Execute critical finalizers after ordinary
7072         finalizers.
7073
7074         * class-internals.h, domain.c: Add CriticalFinalizerObject to
7075         mono_defaults.
7076
7077 2009-03-31 Jb Evain <jbevain@novell.com>
7078
7079         * verify.c (do_ldstr): don't check if a string is in the user strings
7080         heap if the current image is dynamic.
7081
7082 2009-03-31  Mark Probst  <mark.probst@gmail.com>
7083
7084         * sgen-gc.c: Wait until the last finalizer has executed when
7085         returning from WaitForPendingFinalizers.
7086
7087 2009-03-31  Martin Baulig  <martin@ximian.com>
7088
7089         * mono-debug-debugger.h (MonoDebuggerEvent): Add
7090         `MONO_DEBUGGER_EVENT_CREATE_APPDOMAIN' and
7091         `MONO_DEBUGGER_EVENT_UNLOAD_APPDOMAIN'.
7092         (mono_debugger_event_create_appdomain): New function.
7093         (mono_debugger_event_unload_appdomain): New function.
7094
7095         * appdomain.c (mono_domain_create_appdomain_internal): Call
7096         mono_debugger_event_create_appdomain().
7097
7098 2009-03-31  Martin Baulig  <martin@ximian.com>
7099
7100         * mono-debug-debugger.c
7101         (mono_debugger_register_class_init_callback): Also register the
7102         class init callback if the class is already initialized to make
7103         things work with shadow copied assemblies.
7104
7105 2009-03-31  Sebastien Pouliot  <sebastien@ximian.com>
7106
7107         * security-core-clr.c
7108         (mono_security_core_clr_ensure_reflection_access_field): Let 
7109         critical code access the field (just like we do for methods). Use
7110         check_field_access helper.
7111         (mono_security_core_clr_ensure_reflection_access_method): Use 
7112         check_field_access helper.
7113
7114 2009-03-31  Mark Probst  <mark.probst@gmail.com>
7115
7116         * sgen-gc.c: Remove data (callback) element from FinalizeEntry and
7117         call the run-finalize function directly.
7118
7119         * gc.c, gc-internal.h: Make run_finalize() non-static.
7120
7121 2009-03-31  Mark Probst  <mark.probst@gmail.com>
7122
7123         * sgen-gc.c: Use a separate struct for disappearing links.
7124
7125 2009-03-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
7126
7127         * socket-io.c: don't fail if the SocketOptionsFlag has Partial or
7128         * MaxIOVectorLength enabled, just ignore them.
7129         Fixes bug #349688.
7130
7131 2009-03-30 Rodrigo Kumpera  <rkumpera@novell.com>
7132
7133         * metadata-verify.c: Fix eglib build.
7134
7135 2009-03-30  Zoltan Varga  <vargaz@gmail.com>
7136
7137         * threads-types.h: Fix the win32 build.
7138
7139 2009-03-28  Sebastien Pouliot  <sebastien@ximian.com>
7140
7141         * class.c: move coreclr inheritance/override checks to 
7142         security-core.clr.c
7143         * security-core.clr.c|h: add code from class.c with additional
7144         documentation. Fix override check when the method is not critical.
7145
7146 2009-03-28  Zoltan Varga  <vargaz@gmail.com>
7147
7148         * debug-helpers.c (mono_method_desc_match): Make '*' match anything.
7149         (match_class): Ditto.
7150
7151 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
7152
7153         * metadata-verify.c: Rename bounds_check_offset to bounds_check_datadir.
7154
7155         * metadata-verify.c: Implement table layout row size calculation. Verify
7156         the total size of the tables.
7157
7158 2009-03-27 Rodrigo Kumpera  <rkumpera@novell.com>
7159
7160         * metadata-verify.c: Verify heap sizes and size to decode row counts. 
7161
7162 2009-03-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
7163
7164         * appdomain.c:
7165         * console-io.[ch]: added new mono_console_init() to make sure that
7166         file descriptors 0, 1 and 2 are opened.
7167         Bug #489019 fixed.
7168
7169 2009-03-27  Sebastien Pouliot  <sebastien@ximian.com> 
7170
7171         * appdomain.h: Export a new callback type and a new function to
7172         set this callback. This allow a mono host to provide it's own
7173         definition for "platform code".
7174         * metadata-internals.h: Add a core_clr_platform_code flag on 
7175         _MonoImage to (cache and) know if it is representing platform 
7176         code.
7177         * image.c (do_mono_image_open): Set core_clr_platform_code flag 
7178         on platform code images.
7179         * security-core-clr.c|h 
7180         (mono_security_set_core_clr_platform_callback): Allow the host
7181         to provide it's own platform check definition.
7182         (mono_security_core_clr_determine_platform_image): Detect if an 
7183         image is platform code (using the specified callback).
7184         (mono_security_core_clr_is_platform_image): Return cached value 
7185         for platform code.
7186
7187 2009-03-27  Zoltan Varga  <vargaz@gmail.com>
7188
7189         * threads.c (mono_create_thread): New helper function to wrap CreateThread
7190         which has different parameter types for the 'tid' argument in windows and
7191         the io-layer.
7192
7193         * appdomain.c attach.c threads.c: Use the new helper.
7194
7195 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
7196
7197         * metadata-verify.c: Verify valid table bits.
7198
7199 2009-03-26 Rodrigo Kumpera  <rkumpera@novell.com>
7200
7201         * metadata-verify.c (verify_metadata_header): Store size in the size field.
7202
7203         * metadata-verify.c: Add initial table schema verification.
7204
7205 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
7206
7207         * icall.c (ves_icall_get_parameter_info): Add a 'member' argument, used to
7208         obtain the refclass argument needed by mono_param_get_objects (). Fixes
7209         #488383.
7210
7211         * reflection.c (mono_param_get_objects_internal): Add a 'refclass' argument.
7212
7213         * appdomain.c (MONO_CORLIB_VERSION): Bump this.
7214
7215 2009-03-26  Sebastien Pouliot  <sebastien@ximian.com>
7216
7217         * security-core-clr.c: Add/update documentation
7218
7219 2009-03-26  Zoltan Varga  <vargaz@gmail.com>
7220
7221         * marshal.c (emit_marshal_object): Generate code to throw an exception
7222         instead of throwing it. Fixes #488670.
7223
7224 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com>
7225
7226         * appdomain.c: Bump MONO_CORLIB_VERSION to 73.
7227         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Add
7228         an extra 'throwOnBindFailure' parameter to the icall. Remove FIXME
7229         and add a call to mono_security_core_clr_ensure_delegate_creation
7230         to do the extra checks required by CoreCLR.
7231         * security-core-clr.c|h: Add function to check delegate creation,
7232         both in the binding and accessibility, under CoreCLR.
7233
7234 2009-03-25  Sebastien Pouliot  <sebastien@ximian.com> 
7235
7236         * reflection.c (mono_reflection_create_dynamic_method): when 
7237         coreclr is enabled make sure that every resolved object are
7238         checked (e.g. field and method access).
7239         * security-core-clr.c|h: Add function to check objects resolved
7240         when a dynamic method is created.
7241
7242 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
7243
7244         * metadata-verify.c: Cache directory rva translations.
7245
7246         * metadata-verify.c: Add cli-header and streams verification.
7247
7248 2009-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
7249
7250         * image.c (load_metadata_ptrs): We decode MonoImage::md_version_minor at
7251         the wrong offset (8 instead of 6).
7252
7253 2009-03-23  Zoltan Varga  <vargaz@gmail.com>
7254
7255         * marshal.c (mono_delegate_to_ftnptr): For delegates wrapping pinvoke
7256         methods, return the native function address itself. Fixes
7257         #487758.
7258
7259 2009-03-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
7260
7261         * console-io.c: some of the values for control characters might not be
7262         present.
7263
7264 2009-03-21  Sebastien Pouliot  <sebastien@ximian.com>
7265
7266         * exception.c|h: Add helpers to create [Field|Method]AccessException
7267         * icall.c: Add required coreclr check calls for field reflection.
7268         Move the existing (method) check logic into security-core-clr.c
7269         * security-core-clr.c: Add functions to check if the access of a
7270         field or method is allowed when reflecting under coreclr. This is
7271         mostly done using a stack walk to find the "real" caller: i.e. the
7272         code that is calling the reflection
7273
7274 2009-03-20  Zoltan Varga  <vargaz@gmail.com>
7275
7276         * gc-internal.h: Change location of gc_wrapper.h
7277
7278 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com> 
7279
7280         * class.c: Simplification to coreclr checks for overrides that
7281         makes it easier to set breakpoints.
7282
7283 2009-03-20  Sebastien Pouliot  <sebastien@ximian.com>
7284
7285         * security-core-clr.c|h: (mono_security_core_clr_class_level, 
7286         mono_security_core_clr_method_level): Avoid potential 
7287         MonoCustomAttrInfo allocation for transparent assemblies (e.g. 
7288         user/application code) and make it easier to set breakpoints
7289
7290 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
7291
7292         * metadata-verify.c: Reject cli header tables that mono don't handle.
7293
7294 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
7295
7296         * pedump.c: Fix CLI header dumping.
7297
7298 2009-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
7299
7300         * metadata-verify.c: More CLI header verification.
7301
7302 2009-03-19  Zoltan Varga  <vargaz@gmail.com>
7303
7304         * locales.c (get_current_locale_name): Use g_malloc instead of malloc.
7305
7306 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
7307
7308         * metadata-verify.c: Initial verification of the CLI header.
7309
7310 2009-03-18 Rodrigo Kumpera  <rkumpera@novell.com>
7311
7312         * metadata-verify.c (verify_resources_table): Fix verification of zero
7313         sized resource section and id entries count.
7314
7315 2009-03-18  Zoltan Varga  <vargaz@gmail.com>
7316
7317         * icall.c: Handle user types in many Type icalls. Fixes #486303.
7318
7319 2009-03-17  Jb Evain  <jbevain@novell.com>
7320
7321         * profiler.c: call mono_gc_base_init from mono_profiler_load.
7322
7323 2009-03-17  Zoltan Varga  <vargaz@gmail.com>
7324
7325         * sgen-gc.c (mono_gc_make_descr_for_object): Fix 64 bit support.
7326         (mono_gc_make_descr_for_array): Ditto.
7327
7328 2009-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7329
7330         * verify.c (mono_verifier_is_class_full_trust): Add support for
7331         CoreCLR security mode where trusted assemblies are defined as
7332         "platform code".
7333
7334 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
7335
7336         * metadata-verify.c: Add minimal PECOFF resource verification.
7337
7338 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
7339
7340         * metadata-verify.c: Be less restrictive with some coff fields.
7341
7342 2009-03-16 Rodrigo Kumpera  <rkumpera@novell.com>
7343
7344         * verify.c (init_stack_with_value_at_exception_boundary): Init generic
7345         params as boxed values on stack. Fixes #485706.
7346
7347 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
7348
7349         * console-io.c: the termios values may vary in different flavors of unix.
7350
7351 2009-03-16 Gonzalo Paniagua Javier <gonzalo@novell.com>
7352
7353         * console-io.[ch]: return the entire set of control characters when
7354         initializing the terminal.
7355         * appdomain.c: bump corlib version.
7356
7357 Mon Mar 16 11:11:26 CET 2009 Paolo Molaro <lupus@ximian.com>
7358
7359         * mono-perfcounters.c: added support for in-process custom
7360         performance counters.
7361
7362 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
7363
7364         * metadata-verify.c: Small cleanup and add comment for IAT directory entry. 
7365
7366 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
7367
7368         * metadata-verify.c: Verify the data pointed by the import table. 
7369
7370 2009-03-13 Rodrigo Kumpera  <rkumpera@novell.com>
7371
7372         * metadata-verify.c (load_data_directories): Store data
7373         directory contents.
7374
7375         * metadata-verify.c: Verify the import table. 
7376
7377 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7378
7379         * metadata-verify.c: Verify data directories.
7380
7381 2009-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
7382
7383         * metadata-verify.c: Check section header flags.
7384
7385 2009-03-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
7386
7387         * appdomain.c: if the assembly name is a shadow-copied file, return
7388         TRUE from mono_is_shadow_copy_enabled but don't actually do anything
7389         in mono_make_shadow_copy.
7390         * icall.c: if the assembly name is a shadow-copied file, replace it
7391         with the original assembly path.
7392
7393         Bug #484244 fixed. NUnit tests for corlib can be run without
7394         --noshadow now.
7395
7396 2009-03-12  Zoltan Varga  <vargaz@gmail.com>
7397
7398         * sgen-gc.c (add_to_global_remset): Fix the handling of root global remset
7399         entries when the table is reallocated.
7400
7401         * icall.c: Allocate the memory used by the mono_ptr_array macros using
7402         mono_gc_alloc_fixed () since it contains GC refs.
7403
7404 2009-03-10  Zoltan Varga  <vargaz@gmail.com>
7405
7406         * reflection.c (ensure_complete_type): New helper function to call
7407         type resolve handlers for unfinished dynamic types.
7408         (resolve_object): Call it for MonoClassFields. Fixes #483852.
7409
7410 2009-03-09  Zoltan Varga  <vargaz@gmail.com>
7411
7412         * reflection.c (mono_custom_attrs_has_attr): Handle interfaces. Fixes
7413         #483247.
7414
7415 2009-03-08 Rodrigo Kumpera  <rkumpera@novell.com>
7416
7417         * appdomain.c (get_shadow_assembly_location): Fix memleak.
7418
7419 2009-03-08  Zoltan Varga  <vargaz@gmail.com>
7420
7421         * domain-internals.h (struct _MonoDomain): Add new hash tables mapping
7422         between GCHandles of type WeakTrackResurrection and the objects they
7423         point to.
7424
7425         * gc.c: Partly implement the sematics of GCHandles of type 
7426         WeakTrackResurrection: these handles should only be cleared after the
7427         finalizer of the object they are pointing to has ran.
7428
7429 2009-03-06  Mark Probst  <mark.probst@gmail.com>
7430
7431         * icall.c: Partially revert r126631 because using the jump
7432         trampolines for generic shared methods makes it superfluous.
7433
7434 2009-03-06  Zoltan Varga  <vargaz@gmail.com>
7435
7436         * threads.c (handle_store): Create the 'threads' hash table with the proper
7437         MONO_HASH_VALUE_GC type.
7438
7439 2009-03-05  Zoltan Varga  <vargaz@gmail.com>
7440
7441         * domain-internals.h (struct _MonoDomain): Move 'typeof_void' before
7442         FIRST_GC_TRACKED.
7443
7444         * domain.c (mono_domain_create): Register the fields between FIRST_GC_TRACKED
7445         and LAST_GC_TRACKED as a GC root.
7446
7447         * gc-internal.h: Fix the comment of mono_gc_alloc_fixed.
7448
7449         * object.c (mono_class_create_runtime_vtable): Create a GC descriptor for
7450         the static data even if it consists of 1 reference.
7451
7452         * boehm-gc.c (mono_gc_alloc_fixed): Allocate using GC_MALLOC_EXPLICITLY_TYPED
7453         if there is a GC descriptor.
7454
7455         * reflection.c (ALLOC_REFENTRY): Allocate ReflectedEntry-es using malloc
7456         instead of through the GC since they contain no object references.
7457
7458 2009-03-05  Mark Probst  <mark.probst@gmail.com>
7459
7460         * generic-sharing.c (instantiate_other_info): Always return a jump
7461         trampoline for method code.
7462
7463 2009-03-05  Marek Habersack  <mhabersack@novell.com>
7464
7465         * culture-info-tables.h: generated to include the en-tt culture.
7466
7467 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
7468
7469         * domain-internals.h (MonoDomain): Add two fields to cache invoke wrappers to
7470         capture the thread context.
7471
7472         * object.c (mono_async_result_new): Cache the invoke wrappers to
7473         ExecutionContext::Capture.
7474
7475 2009-03-04 Rodrigo Kumpera  <rkumpera@novell.com>
7476
7477         * marshal.h: Add a prototype for what mono_compile_method returns
7478         for invoke wrappers.
7479
7480         * gc.c: Use the new prototype declaration.
7481
7482 2009-03-04  Geoff Norton  <gnorton@novell.com>
7483
7484         * boehm-gc.c: Add some MONO_LOG tracing for the GC
7485         * gc-internal.h:
7486         * mono-gc.h: Expose mono_gc_invoke_finalizers in the embedding api.
7487
7488 2009-03-04  Martin Baulig  <martin@ximian.com>
7489
7490         * mono-debug.h
7491         (mono_debugger_runtime_invoke): Removed.
7492
7493         * mono-debug-debugger.c
7494         (mono_runtime_invoke): Moved into ../mini/debug-mini.c.
7495
7496 2009-03-02  Martin Baulig  <martin@ximian.com>
7497
7498         * mono-debug.h
7499         (mono_debugger_unhandled_exception): Removed.
7500         (mono_debugger_handle_exception): Removed.
7501         (mono_debugger_throw_exception): Removed.
7502
7503         * mono-debug.c
7504         (mono_debug_debugger_version): Bump to 5.
7505
7506         * mono-debug-debugger.c: Moved the exception handling code to
7507         ../mini/debug-mini.c
7508
7509 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
7510
7511         * domain-internals.h (struct _MonoDomain): Add a separate lock for the
7512         finalize_objects_hash.
7513
7514         * gc.c: Use the separate lock to access the finalize_objects_hash field.
7515         
7516         * domain-internals.h (struct _MonoDomain): Add finalize_runtime_invoke
7517         field.
7518
7519         * metadata-internals.h (struct _MonoImage): Add runtime_invoke_vcall_cache
7520         cache.
7521
7522         * image.c (mono_image_close): Free it.
7523         
7524         * marshal.c (mono_marshal_get_runtime_invoke): Add a 'virtual' argument
7525         allowing a creation of a wrapper which invokes its method using a CALLVIRT
7526         on the this argument.
7527
7528         * gc.c (run_finalize): Optimize the calling of the finalizers.
7529
7530 2009-03-03  Martin Baulig  <martin@ximian.com>
7531
7532         * mono-debug.h (MONO_DEBUGGER_MAJOR_VERSION): Bump to 81 because
7533         of the `MonoGenericInst' changes.
7534
7535 2009-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
7536
7537         * icall.c (ves_icall_MonoType_GetGenericArguments): Use
7538         mono_array_class_get_cached to reduce locking contention. Extract
7539         a domain var.
7540
7541         * icall.c (ves_icall_Type_GetFields_internal): Avoid allocating
7542         intermediary managed arrays. Use caching version of mono_array_new
7543         to allocate the result array.
7544
7545         * icall.c (ves_icall_Type_GetEvents_internal): Same.    
7546
7547         * icall.c (ves_icall_Type_GetNestedTypes): Same.        
7548
7549         * locales.c (create_names_array_idx):  Use mono_array_new_cached
7550         to reduce locking contention.
7551
7552 2009-03-03  Zoltan Varga  <vargaz@gmail.com>
7553                 
7554         * object.c (mono_method_add_generic_virtual_invocation): Put back the
7555         thunk builder code for the non-interface case.
7556
7557 2009-03-02  Zoltan Varga  <vargaz@gmail.com>
7558
7559         * object.c (get_generic_virtual_entries): New helper function to collect
7560         the virtual generic method instances which need to be added to an IMT
7561         thunk.
7562         (mono_method_add_generic_virtual_invocation): Add a 'vtable' argument.
7563         Instead of creating a new IMT thunk, reset the vtable slot to the
7564         trampoline, the thunk will be created the next time the trampoline is called.
7565         (build_imt_slots): Add support for virtual generic methods in interfaces by
7566         adding to the IMT thunk all the methods registered using 
7567         mono_method_add_generic_virtual_invocation ().
7568
7569         * object-internals.h (_MonoImtBuilderEntry): Add a 'has_target_code' field.
7570         (struct _MonoIMTCheckItem): Ditto.
7571
7572         * object.c (mono_method_add_generic_virtual_invocation): Take a
7573         MonoMethod argument instead of a MonoGenericInst. Fix the construction of
7574         the IMT thunk to include all items.
7575         
7576         * object.c (mono_class_create_runtime_vtable): Add a missing
7577         mono_loader_unlock ().
7578
7579 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
7580
7581         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7582
7583         * object-internals.h (MonoReflectionEvent): Add cached_add_event.
7584
7585 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
7586
7587         * object-internals.h: Rename _MonoReflectionEvent to
7588         MonoReflectionMonoEvent so it reflects the right managed type.
7589         Add a MonoReflectionEvent that correctly represents System.EventInfo.
7590
7591         * icall.c:
7592         * reflection.c: Adjust code to use the new MonoReflectionMonoEvent
7593         type.
7594
7595 2009-03-02 Rodrigo Kumpera  <rkumpera@novell.com>
7596
7597         * icall.c (ves_icall_Type_GetMethodsByName): Avoid allocating
7598         intermediary managed arrays. Use caching version of mono_array_new
7599         to allocate the result array.
7600
7601 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
7602
7603         * reflection.c: Use cached version of mono_array_new alongside
7604         the mono_reflection_get_custom_attrs_by_type call path.
7605
7606 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
7607
7608         * icall.c (ves_icall_Type_GetInterfaces): Avoid allocating
7609         intermediary managed arrays. Use caching version of mono_array_new
7610         to allocate the result array.
7611
7612         * icall.c (ves_icall_Type_GetConstructors_internal): Same.
7613
7614 2009-03-01 Rodrigo Kumpera  <rkumpera@novell.com>
7615
7616         * icall.c: Add small implementation of a growable stack bound array.
7617
7618         * icall.c (ves_icall_System_Enum_get_hashcode): Fix warning.
7619
7620         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid allocating
7621         intermediary managed arrays. Use caching version of mono_array_new
7622         to allocate the result array.
7623
7624 2009-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
7625
7626         * icall.c: New icall ves_icall_System_Enum_compare_value_to that
7627         helps Enum::CompareTo to be implemented without reboxing all enums
7628         to their underlying type.
7629 2009-02-27  Zoltan Varga  <vargaz@gmail.com>
7630
7631         * domain.c (SET_APPDOMAIN): Avoid calling TlsSetValue () on some platforms,
7632         since it acquires a global lock leading to scalability problems.
7633
7634         * profiler.c: Make the stat profiler work with multiple appdomains, this
7635         currently only works when no appdomains are unloaded.
7636
7637 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
7638
7639         * appdomain.c: make the check to avoid copying when the assembly is
7640         already shadow copied actually work.
7641
7642 2009-02-26  Zoltan Varga  <vargaz@gmail.com>
7643
7644         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7645
7646         * object-internals.h (struct _MonoReflectionGenericClass): Sync with
7647         changes to the managed side.
7648
7649 2009-02-25  Zoltan Varga  <vargaz@gmail.com>
7650
7651         * metadata-internals.h (struct _MonoImage): Add a new cache for szarray
7652         classes + a separate lock for it, as it is used frequently at runtime, not
7653         just during metadata loading/JIT compilation.
7654
7655         * class.c (mono_bounded_array_class_get): Use the separate cache + lock
7656         for szarrays.
7657         
7658         * object-internals.h (mono_class_from_name_cached): New macro to cache
7659         the results of the lookup locally without having to declare a static
7660         variable to hold it.
7661         (mono_class_get_field_from_name_cached): Ditto.
7662         (mono_array_class_get_cached): Ditto.
7663
7664         * threadpool.c threads.c locales.c icall.c reflection.c socket-io.c: Use
7665         the new macros.
7666         
7667         * object.c (mono_get_delegate_invoke): Call setup_methods () to avoid the
7668         slower search in metadata.
7669
7670         * pedump.c: Fix a warning.
7671
7672 2009-02-23  Zoltan Varga  <vargaz@gmail.com>
7673
7674         * reflection.c (encode_locals): Add checks for user types.
7675         (method_encode_clauses): Ditto.
7676         (method_encode_code): Ditto.
7677         (mono_image_create_token): Ditto.
7678
7679         * object-internals.h: Change the type of more fields from MonoReflectionType*
7680         to MonoObject*.
7681
7682 2009-02-22  Zoltan Varga  <vargaz@gmail.com>
7683
7684         * threads.c (mono_thread_suspend_all_other_threads): Handle the case when
7685         the a thread does not suspend within 100ms.
7686
7687         * monitor.c (mono_monitor_try_enter_internal): Handle SuspendRequested
7688         in addition to StopRequested as well.
7689
7690         * mono-debug.c: Call _mono_debug_get_image () while holding the debug lock.
7691
7692         * debug-mono-symfile.c (mono_debug_symfile_lookup_method): Actually
7693         search the method_hash before inserting a new entry, to avoid crashes when
7694         the same method is inserted multiple times, causing the old 
7695         MonoDebugMethodInfo structure to be freed by the value dtor function.
7696
7697 2009-02-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
7698
7699         * socket-io.c: support SO_MAXCONN, SO_USELOOPBACK and
7700         SO_EXLUSIVEADDRUSE where available.
7701
7702 2009-02-21  Zoltan Varga  <vargaz@gmail.com>
7703
7704         * marshal.c (mono_marshal_get_runtime_invoke): Fix _another_ bug sharing
7705         runtime invoke wrappers, this time it is string ctor wrappers, which
7706         pass a dummy string as 'this' instead of their obj argument. Fixes
7707         #478473.
7708
7709 2009-02-21  Jb Evain  <jbevain@novell.com>
7710
7711         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
7712         only get create_culture once.
7713
7714 2009-02-20  Zoltan Varga  <vargaz@gmail.com>
7715
7716         * reflection.c (mono_reflection_setup_internal_class): Move the user type
7717         check before the locking.
7718         
7719         * reflection.c (mono_reflection_setup_internal_class): Check for user types.
7720         (mono_reflection_create_runtime_class): Ditto.
7721         (mono_reflection_sighelper_get_signature_local): Ditto.
7722         (mono_reflection_sighelper_get_signature_field): Ditto.
7723
7724         * object-internals.h (CHECK_MONOTYPE): New macro to check that a Type object
7725         is a System.MonoType object or similar.
7726         (monotype_cast): New helper function to cast a MonoObject to a 
7727         MonoReflectionType object.
7728
7729         * object-internals.h: Change MonoReflectionType* members in structures to
7730         MonoObject* members to force the usage of the monotype_cast () function.
7731
7732         * reflection.c icall.c: Use monotype_cast () for accessing Type members of
7733         structures/arrays. This causes us to assert instead of crashing when 
7734         instances of user defined subclasses of System.Type are encountered.
7735
7736 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
7737
7738         * cil-coff.h:
7739         * icall-def.h:
7740         * icall.c: add new GetUnmanagedResourcePtr that returns a pointer to a
7741         win32 resource loaded from a PE file.
7742
7743         * image.c: fix mono_image_lookup_resource.
7744
7745 2009-02-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
7746
7747         * icall-def.h:
7748         * threads-types.h:
7749         * threads.c: added internal call for WaitHandle.SignalAndWait.
7750
7751 2009-02-19  Bill Holmes  <billholmes54@gmail.com>
7752
7753         * cominterop.c : Adding cominterop_type_from_handle and 
7754           registering it as an icall.  Replacing all references
7755           to type_from_handle.
7756
7757         Code is contributed under MIT/X11 license.
7758
7759 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
7760
7761         * Makefile.am: Add lock-tracer.h and lock-trace.c.
7762
7763         * appdomain.c: Call the tracer init function.
7764
7765         * domain-internals.h: Enable the tracer for the domain locks.
7766
7767         * image.c: Enable the tracer for image locks.
7768
7769         * loader.c: Enable the trace for the loader lock.
7770
7771         * lock-tracer.h:
7772         * lock-tracer.c: Initial implementation of the lock trace utility.
7773         The tracer requires a compile time define to be enabled and a env var
7774         to be enabled at runtime.
7775
7776 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
7777
7778         * domain.c (mono_domain_code_foreach): Improve documentation.
7779
7780 2009-02-19 Rodrigo Kumpera  <rkumpera@novell.com>
7781
7782         * appdomain.c:
7783         * generic-sharing.c:
7784         * object.c:
7785         * reflection.c:  Adjust locking order to the new semantics where the loader lock
7786         comes first.
7787
7788 2009-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
7789
7790         * domain.c: Add mono_domain_code_* functions that perform locking
7791         around the domain codeman.
7792
7793         * domain-internals.h: Export those functions.
7794
7795         * object.c: Use new functions instead of acquiring the domain lock.
7796
7797 2009-02-19  Zoltan Varga  <vargaz@gmail.com>
7798
7799         * marshal.c (mono_ftnptr_to_delegate): Convert a NULL ftnptr to a null
7800         delegate. Fixes #477396.
7801
7802 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
7803
7804         * reflection.c (create_custom_attr): Get rid of alloca.
7805
7806 2009-02-18  Bill Holmes  <billholmes54@gmail.com>
7807
7808         * cominterop.c (cominterop_get_managed_wrapper_adjusted) :
7809           Adding exception handling for all CCW calls.
7810
7811         Code is contributed under MIT/X11 license.
7812
7813 2009-02-18  Zoltan Varga  <vargaz@gmail.com>
7814
7815         * reflection.c (mono_reflection_init): Remove the unused reflection mutex.
7816
7817         * marshal.c (emit_marshal_boolean): Add null checks to the new 
7818         native->managed marshalling code. Fixes #476247.
7819
7820 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
7821
7822         * class.c (mono_class_get_vtable_entry): Move the addition of
7823         static rgctx invoke wrappers for vtable methods here, this simplifies
7824         a lot of code and causes fewer rgctx wrappers to be created.
7825
7826         * marshal.c (mono_marshal_get_static_rgctx_invoke): Change the
7827         name of the statistics to begin with an uppercase.
7828
7829 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
7830
7831         * reflection.c: Revert previous change as it breaks the build.
7832         
7833 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
7834
7835         * verify.c: Properly handle SZARRAY element type.
7836
7837         Fixes #474271.
7838
7839 2009-02-17 Rodrigo Kumpera  <rkumpera@novell.com>
7840
7841         * reflection.c (mono_image_create_method_token): Correctly encode
7842         MethodDef MemberRefParent token.
7843
7844         Fixes #472845.
7845
7846 2009-02-17  Zoltan Varga  <vargaz@gmail.com>
7847
7848         * image.c (mono_image_close): Delete the critical section before
7849         freeing the memory holding it.
7850
7851 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
7852
7853         * verify.c (mono_method_verify): rethrow opcode doesn not fall through.
7854         Fixes #476257.
7855
7856 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
7857
7858         * pedump.c (main): Call mono_marshal_init so pedump
7859         doesn't crash.
7860
7861 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
7862
7863         * loader.c (method_from_memberref): Properly fix #474271 and
7864         don't break the runtime bad.
7865
7866 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
7867
7868         * domain.c (mono_domain_alloc): Add locking so the caller doesn't have to.
7869         (mono_domain_alloc0): Ditto.
7870
7871 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
7872
7873         * loader.c (method_from_memberref): Don't abort if the array
7874         method is not found. A regular loader failure is more informative
7875         and correct.
7876
7877         Fixes #474271.
7878
7879 2009-02-16 Rodrigo Kumpera  <rkumpera@novell.com>
7880
7881         *loader.c: Guard MonoImage::method_cache/methodref_cache
7882         using the image lock instead of the loader lock.
7883
7884         * metadata.h: Add comments about which fields are protected by
7885         the image lock.
7886
7887 2009-02-16  Zoltan Varga  <vargaz@gmail.com>
7888
7889         * appdomain.c (mono_set_private_bin_path_from_config): Fix a warning.
7890
7891         * generic-sharing.c (mono_method_construct_object_context): Remove the
7892         wrapper_type == NONE assert, it is not needed.
7893
7894 2009-02-15  Zoltan Varga  <vargaz@gmail.com>
7895
7896         * reflection.c (clear_cached_object): New helper function.
7897         (mono_method_clear_object): New function to clear the cached reflection
7898         objects for a dynamic method.
7899
7900         * object.c (mono_runtime_free_method): Call mono_method_clear_object ().
7901         Partly fixes # 463323.
7902         
7903 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
7904
7905         * class.c:
7906         * loader.c:
7907         * reflection.c: Remove all explicit uses of MonoImage::property_hash.
7908
7909 2009-02-14 Rodrigo Kumpera  <rkumpera@novell.com>
7910
7911         * image.c: Add mono_image_property_(lookup,insert,remove) functions that
7912         take the image lock instead of the loader lock.
7913
7914         * metadata-internals.h: Export new functions.
7915
7916 2009-02-12  Miguel de Icaza  <miguel@novell.com>
7917
7918         * domain.c (app_config_parse): Remove another use of stat that is
7919         not necessary as g_file_get_contents already does the presence
7920         check. 
7921
7922 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
7923
7924         * cominterop.c icall-def.h: Fix the DISABLE_COM build.
7925
7926         * marshal.c: Move the bstr handling code to cominterop.c.
7927
7928         * marshal.c: Remove some COM interop code missed previously.
7929
7930 2009-02-12  Miguel de Icaza  <miguel@novell.com>
7931
7932         More Paolo patches from the Wii port:
7933         
7934         * security.c: Remove ves_icall_System_Environment_get_UserName
7935         from here.
7936
7937         * icall.c: And put ves_icall_System_Environment_get_UserName
7938         here. 
7939
7940         * appdomain.c (mono_set_private_bin_path_from_config): Remove
7941         redundant call to stat that was only used to test for the file
7942         existence.   Patch from Paolo.
7943
7944         * gc.c (run_finalize): If COM is disabled, do not link in
7945         mono_marshal_free_ccw.
7946
7947         * generic-sharing.c: Use alloca.h here as well.
7948
7949 2009-02-13 Rodrigo Kumpera  <rkumpera@novell.com>
7950
7951         * reflection.c (mono_reflection_lookup_dynamic_token): Do the locking properly.
7952
7953 2009-02-13  Zoltan Varga  <vargaz@gmail.com>
7954
7955         * cominterop.c cominterop.h: New files.
7956
7957         * marshal.c: Move the COM interop related code to cominterop.c. Make a few
7958         function/typedefs which are needed by cominterop.c global.
7959
7960 2009-02-12  Mark Probst  <mark.probst@gmail.com>
7961
7962         * generic-sharing.c: Don't take the loader lock to guard image
7963         mempool allocs.
7964
7965 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
7966
7967         * reflection.c (mono_reflection_lookup_dynamic_token): This function might be
7968         called without the loader lock which is required to guard MonoImage:tokens.
7969
7970 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
7971
7972         * class.c:
7973         * metadata.c:
7974         * method-builder.c:
7975         * marshal.c:
7976         * reflection.c: Don't take the loader lock to alloc memory from the image mempool.
7977
7978 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
7979
7980         * metadata.c: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
7981         Rework the code to use regular mono_image_alloc/0.
7982
7983         * loader.c: Rework the code to use regular mono_image_alloc/0.
7984
7985         * metadata-internals.h: Remove mono_image_alloc_lock and mono_image_alloc0_lock.
7986
7987 2009-02-12  Bill Holmes  <billholmes54@gmail.com>
7988
7989         * object-internals.h : Fixing a typo in the 
7990           MonoReflectionComVisibleAttribute struct.
7991
7992         * marshal.c (cominterop_com_visible): Check the implemented 
7993           interfaces for ComImport.
7994
7995         * marshal.c (cominterop_get_native_wrapper_adjusted): For COM calls 
7996           assume that bools should be treated as VARIANTBOOLs.
7997
7998         * marshal.c (emit_marshal_boolean): Adding cases for 
7999           MARSHAL_ACTION_MANAGED_CONV_IN and MARSHAL_ACTION_MANAGED_CONV_OUT.
8000
8001         * marshal.c (mono_marshal_emit_managed_wrapper): Adding calls to 
8002           emit_marshal MARSHAL_ACTION_MANAGED_CONV_IN and OUT for bools.
8003
8004         * marshal.c (cominterop_get_ccw): For COM calls assume that bools
8005           should be treated as VARIANTBOOLs.    
8006
8007         Code is contributed under MIT/X11 license.
8008
8009 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
8010
8011         * image.c (mono_image_alloc, mono_image_alloc0, mono_image_strdup): Guard mempool
8012         allocation with the image lock.
8013
8014 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
8015
8016         This patch is the last of a series to remove explicit reference of MonoImage::mempool
8017         and use mono_image_alloc set of functions instead. This time we finish with reflection.c
8018
8019         * object.c: Add mono_string_to_utf8_image.
8020
8021         * object-internals.h: Export mono_string_to_utf8_image.
8022
8023         * reflection.c: Rework all explicit references to the the image mempool to go thought
8024         the mono_image_alloc set of functions.
8025
8026 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
8027
8028         This patch is the third of a series to remove explicit reference of MonoImage::mempool
8029         and use mono_image_alloc set of functions instead. This time we finish with marshal.c
8030         and generics-sharing.c.
8031
8032         * generics-sharing.c (set_other_info_templates): Take a MonoImage instead of a MonoMemPool
8033         as first argument. Note that this function remains broken as it doesn't perform locking around the
8034         mempool allocation.
8035
8036         * generics-sharing.c (rgctx_template_set_other_slot): Pass the image and not the mempool.
8037
8038         * image.c: Add g_slist_append_image.
8039
8040         * metadata.c (mono_metadata_field_info_with_mempool): Remove the mempool argument and use
8041         the supplied image for allocation. Move code into mono_metadata_field_info_full.
8042
8043         * metadata.c (mono_metadata_parse_marshal_spec_full): Take a MonoImage instead of a MonoMemPool.
8044         Fix all related code to do the same.
8045
8046         * marshal.c (mono_marshal_load_type_info): Pass the image instead of the mempool.
8047
8048         * metadata-internals.h: Fix the signatures.
8049
8050 2009-02-12 Rodrigo Kumpera  <rkumpera@novell.com>
8051
8052         This patch is the second of a series to remove explicit reference of MonoImage::mempool
8053         and use mono_image_alloc set of functions instead. This time we rework mono_metadata_type_dup
8054         and similar to work using MonoImage.
8055
8056         * class.c (mono_mempool_dup): Rename to mono_image_memdup and take a MonoImage instead of a
8057         MonoMemPool.
8058
8059         * class.c (mono_dup_array_type): Take a MonoImage instead of a MonoMemPool as first argument.
8060
8061         * class.c (mono_metadata_signature_deep_dup): Same.
8062
8063         * class.c (inflate_generic_type): Same.
8064
8065         * class.c (mono_class_inflate_generic_type_with_mempool): Same.
8066
8067         * metadata.c (mono_metadata_signature_dup_full): Same.
8068
8069         * metadata.c: Add mono_metadata_signature_dup_mempool and extract common functionality from 
8070         mono_metadata_signature_dup_full.
8071
8072         * metadata.c (mono_metadata_type_dup): Same.
8073
8074         * marshal.c: Pass the image to calls to mono_metadata_type_dup.
8075
8076         * reflection.c: Same.
8077
8078         * generic-sharing.c: Pass the image to calls to mono_class_inflate_generic_type_with_mempool.
8079
8080         * metadata-internals.h: Fix the signatures.
8081
8082         * class-internals.h: Same.
8083
8084 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
8085
8086         This patch is the first of a series to remove explicit reference of MonoImage::mempool
8087         and use mono_image_alloc set of functions instead. 
8088
8089         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy):
8090         Rename to mono_class_inflate_generic_type_no_copy and take a MonoImage instead
8091         of a MonoMemPool.
8092
8093         * class.c (mono_class_setup_fields): Adapt to mono_class_inflate_generic_type_no_copy.
8094
8095         * class.c (g_list_prepend_mempool): Removed.
8096
8097         * class.c (mono_class_get_nested_types): Use g_list_prepend_image instead of g_list_prepend_mempool.
8098
8099         * image.c: Add g_list_prepend_image.
8100
8101         * metadata-internals.h (struct MonoImage): Fix comment. Export g_list_prepend_image as internal.
8102
8103         * reflection.c (mono_reflection_create_runtime_class): Use g_list_prepend_image instead of g_list_prepend_mempool.
8104
8105
8106 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
8107
8108         * metadata-internals.h (struct MonoImage): Add lock field. Export mono_image_lock and
8109         mono_image_unlock.
8110
8111         * image.c (mono_image_init): Init the lock field.
8112  
8113         * image.c (mono_image_init): Cleanup the lock field.
8114
8115         * image.c: Add mono_image_(un)lock functions.
8116
8117 2009-02-11  Mark Probst  <mark.probst@gmail.com>
8118
8119         * class.c, class-internals.h: mono_method_get_context_general()
8120         combines the functionality of mono_method_get_context() and
8121         mini_method_get_context().
8122
8123         * generic-sharing.c, domain-internals.h:
8124         mono_method_construct_object_context() and
8125         mono_domain_lookup_shared_generic() moved from mini.
8126
8127         * icall.c (ves_icall_InternalInvoke): Handle the case where the
8128         method doesn't have the correct instantiation because it's shared
8129         generic code.  Fixes #473999.
8130
8131 2009-02-11  Zoltan Varga  <vargaz@gmail.com>
8132
8133         * loader.c (mono_method_get_wrapper_data): Handle inflated methods as well.
8134
8135         * loader.c (mono_loader_lock): Add a comment pointing to the locking document.
8136         
8137 2009-02-11 Rodrigo Kumpera  <rkumpera@novell.com>
8138
8139         * metadata.c: Make mono_image_alloc_lock and mono_image_alloc0_lock non static.
8140
8141         * metadata-internals.h: Export mono_image_alloc_lock and mono_image_alloc0_lock.
8142
8143         * loader.c (mono_get_method_full): Drop the loader lock while constructing the method
8144         and recheck the cache for dups after it.
8145
8146         * loader.c (mono_get_method_from_token): Use _lock version of mono_image_alloc0.
8147
8148         Fixes one of the deadlocks found in #473150.
8149
8150 2009-02-11  Bill Holmes  <billholmes54@gmail.com>
8151
8152         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal):
8153           For Win32, add additional break conditions for accept.
8154
8155         Code is contributed under MIT/X11 license.
8156
8157 2009-02-10  Zoltan Varga  <vargaz@gmail.com>
8158
8159         * marshal.c (mono_marshal_get_native_func_wrapper): Use get_cache to
8160         lazily initialize the native wrapper cache.
8161         (mono_marshal_get_native_wrapper): Put aot-ed native wrappers into a separate
8162         cache, since they are different from the normal wrappers.
8163
8164         * image.c (mono_image_init): Initialize native_wrapper_cache lazily as well.
8165
8166         * metadata-internals.h (struct _MonoImage): Add a new wrapper for
8167         AOT compiled native wrappers.
8168
8169 2009-02-09  Geoff Norton  <gnorton@novell.com>
8170
8171         * appdomain.h:
8172         * security-core-clr.c: Allow enabling core-clr from the embedding
8173         API.
8174
8175 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
8176
8177         * socket-io.c: when requesting all the local ips, if there are no
8178         interfaces up and running, MS returns 127.0.0.1.
8179
8180 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
8181
8182         * mono-perfcounters-def.h: processor time is an inverse time.
8183         Fixes bug #468625.
8184
8185 2009-02-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
8186
8187         * socket-io.c: an empty host name returns the list of local IPs.
8188         Fixes bug #386637 part 1/2.
8189
8190 2009-02-07  Zoltan Varga  <vargaz@gmail.com>
8191
8192         * verify.c (mono_class_interface_implements_interface): Call
8193         mono_class_setup_interfaces ().
8194         (merge_stacks): Ditto.
8195
8196 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
8197
8198         * class.c (mono_class_setup_interfaces): New function to lazily initalize
8199         klass->interfaces.
8200         (mono_generic_class_get_class): Don't initalize klass->interfaces.
8201         (mono_generic_class_get_class): Ditto.
8202
8203 2009-02-06  U-QUACK\miguel  <miguel@quack>
8204
8205         * icall-defs.h: Include also the Encrypt/Decrypt string methods as
8206         they live in security.c
8207
8208         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Integrated
8209         another bit from Paolo's code.
8210
8211 2009-02-06  Zoltan Varga  <vargaz@gmail.com>
8212
8213         * object.c (build_imt_slots): Add a small optimization to avoid inflating
8214         methods which will be discarded by add_imt_builder_entry ().
8215
8216         * marshal.c (get_runtime_invoke_type): Avoid sharing enum types since they
8217         need to be boxed.
8218
8219         * loader.c: Add a statistics for the size of the memberref signature cache.
8220         
8221         * loader.c (find_cached_memberref_sig): New helper function.
8222         (cache_memberref_sig): Ditto.
8223
8224         * loader.c: Cache the result of parsing memberref signatures, since otherwise
8225         they will be parsed again for every generic instantiation, leading to unbounded
8226         memory growth.
8227
8228 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
8229
8230         * loader.c (mono_get_method_from_token): Avoid creating class for the generic
8231         parameters of generic methods.
8232
8233         * class.c (mono_class_inflate_generic_method_full): Set is_mb_open again
8234         after the original method is copied to the inflated method.
8235         (mono_class_get_vtable_entry): Handle rgctx invoke wrappers more efficiently.
8236
8237         * class-internals.h (struct _MonoMethodInflated): Move the is_mb_open
8238         field to MonoMethod since it only consumes 1 bit there, and 4/8 bytes here.
8239
8240         * class.c metadata.c: Update after the changes above.
8241
8242 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
8243
8244         * metadata-verify.c: Simplified error handling and added
8245         section table validation.
8246
8247 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
8248
8249         * class-internals.h (MonoClassExt): New structure containing rarely used
8250         fields of MonoClass.
8251         (struct _MonoClass): Move rarely used fields to MonoClassExt, accessed
8252         through a new 'ext' field.
8253
8254         * class.c (mono_class_alloc_ext): New helper function to allocate 
8255         class->ext.
8256
8257         * class.c metadata.c reflection.c: Update after MonoClass structure changes.
8258
8259 2009-02-05  Mark Probst  <mark.probst@gmail.com>
8260
8261         * object.c (mono_object_get_virtual_method): Properly inflate
8262         generic methods.  Fixes #472692.
8263
8264 2009-02-05 Rodrigo Kumpera  <rkumpera@novell.com>
8265
8266         * class.c (mono_class_create_from_typedef): The CLR supports SystemF
8267         recursive types such as List<T>:Cons<T,List<T>> so when doing the lookup
8268         for the parent type, the created type must be ready to be used on a generic
8269         instantiation.
8270         We fill this_arg/byval_arg if the parent is a generic instance to make sure
8271         we won't have duplicated entries in generic_inst_cache.
8272
8273         Fixes #469553.
8274
8275 2009-02-05  Miguel De Icaza  <miguel@novell.com>
8276
8277         * threadpool.c (socket_io_add_poll): Remove the BSD6 define and
8278         replace with plain BSD per the comments on the bug MONO77637.
8279
8280 2009-02-05  Zoltan Varga  <vargaz@gmail.com>
8281
8282         * class.c (mono_class_get_generic_class): New accessor function.
8283         (mono_class_get_generic_container): Ditto.
8284
8285         * class-internals.h (struct _MonoClass): Add 'is_generic' and 'is_inflated'
8286         fields, similar to the ones in MonoMethod.
8287
8288         * class.c (mono_generic_class_get_class): Set klass->is_inflated.
8289         (mono_class_create_from_typedef): Set klass->is_generic if needed.
8290
8291         * reflection.c (mono_reflection_create_generic_class): Set klass->is_generic.
8292         
8293         * class-internals.h (struct _MonoClass): Remove enum_basetype, it contains
8294         the same information as element_class->byval_arg.
8295
8296         * class.c reflection.c: Remove references to class->byval_arg.
8297
8298         * class.c marshal.c: Use mono_class_enum_basetype () instead of accessing 
8299         klass->enum_basetype directly.
8300
8301         * verify.c metadata.c object.c icall.c reflection.c: Use 
8302         mono_class_enum_basetype () instead of accessing klass->enum_basetype 
8303         directly.
8304
8305 2009-02-04  Miguel de Icaza  <miguel@novell.com>
8306
8307         * icall-def.h: Remove internal calls for sockets when
8308         DISABLE_SOCKET is defined, file system writing features when the
8309         OS only support reading and not writing data and Policy support if
8310         the Policy is disabled.
8311         
8312         * image.c (do_mono_image_open): Apply Paolo's patches for using
8313         mono_file_map_ APIs here.
8314
8315         * assembly.c: Add support for platforms to avoid prefix
8316         auto-detection. 
8317
8318 2009-02-04  Zoltan Varga  <vargaz@gmail.com>
8319
8320         * generic-sharing.c (mono_method_fill_runtime_generic_context): Fix a
8321         warning.
8322
8323         * class.c (mono_class_inflate_generic_class): New helper function.
8324
8325         * class.c: Use mono_class_inflate_generic_class in a few places. Add
8326         statistics for inflated methods/classes.
8327
8328         * loader.c (inflate_generic_header): Use mono_class_inflate_generic_class.
8329
8330         * icall.c (ves_icall_Type_GetMethodsByName): Optimize the case when
8331         the call is made from Delegate.CreateDelegate () for the invoke method of
8332         a delegate.
8333
8334         * loader.c: Add a statistics for the memory occupied by inflated signatures.
8335
8336         * metadata.c (mono_metadata_signature_size): New helper function.
8337
8338         * class.c (mono_class_get_method_from_name_flags): Add an optimization for
8339         generic instances.
8340
8341         * metadata.c (inflated_method_in_image): Avoid calling 
8342         mono_method_signature () if the method does not already have a signature.
8343
8344 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
8345
8346         * verify.c (is_compatible_boxed_valuetype): When checking if the boxed 
8347         valuetype is compatible with target type, check by inheritance as a
8348         VT is not really compatible with System.ValueType, for example.
8349
8350         * verify.c (do_invoke_method): Improve error message.
8351
8352         * verify.c (do_box_value): If boxing a nullable, use the type argument
8353         on stack instead.
8354
8355         * verify.c (do_newobj): Improve error message.  
8356
8357         Fixes #469549.
8358
8359 2009-02-03  Miguel de Icaza  <miguel@novell.com>
8360
8361         * appdomain.c: Add support for DISABLE_SOCKETS and DISABLE_SHADOW_COPY
8362
8363 2009-02-03  Mark Probst  <mark.probst@gmail.com>
8364
8365         * generic-sharing.c: Don't hold domain lock when calling
8366         instantiate_other_info().  Fixes #471958.
8367
8368         * domain-internals.h, loader.c: Describe locking policy of domain
8369         lock vs loader lock.
8370
8371 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
8372
8373         * verify.c (mono_delegate_signature_equal): Make it possible to check
8374         first-arg-bound delegates to static method.
8375
8376         * verify.c (verify_delegate_compatibility): Correctly verify delegates to
8377         static methods with the first arg bound.
8378
8379         Fixes #469529.
8380
8381 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
8382
8383         * verify.c: Added stack_slot_full_name to provide decent and more meanfull
8384         errors.
8385
8386         * verify.c (is_compatible_boxed_valuetype): Be less restrictive when not
8387         under strict mode. Any type, when boxed can be seen as a reference type.
8388
8389         Fixes #469528.
8390
8391 2009-02-03 Rodrigo Kumpera  <rkumpera@novell.com>
8392
8393         * object.h: The lower bound of an array is a signed integer value.
8394         Introduce mono_array_lower_bound_t typedef. It should be used instead of
8395         gint32 as under MONO_BIG_ARRAYS it will be a gint64.
8396
8397         * icall.c: Cast MonoArrayBounds::length to a signed value so correctly
8398         calculate the upper bound.
8399         
8400         Fixes #471252.
8401
8402 2009-02-02  Miguel de Icaza  <miguel@novell.com>
8403
8404         From Paolo's work, refactored, cleared up:
8405         
8406         * threadpool.c, icall.c: ifdef code that requires a working socket
8407         stack.
8408
8409         * metadata.c (mono_metadata_field_info): Do not attempt to return
8410         a value from a function declared as void.
8411
8412         * console-io.c: Use MONO_NULL_TTYDRIVER to remove the tty driver
8413         from the console stack.
8414
8415         * assembly.c: use strrchr instead of rindex.
8416
8417         * class.c, object.c, marshal.c, icall.c, reflection.c: include
8418         alloca.h on systems that have it.
8419
8420         * environment.c: Avoid code that uses stuff from
8421         HAVE_SYS_UTSNAME_H
8422         
8423         * appdomain.c: Include sys/time.h.
8424
8425         * console-io.c: include sys/ioctl.h if it is available.
8426
8427 2009-02-03  Zoltan Varga  <vargaz@gmail.com>
8428
8429         * method-builder.h (_MonoMethodBuilder): Add a 'skip_visibility' flag.
8430
8431         * method-builder.c (mono_mb_create_method): Set method->skip_visibility from
8432         the method builder.
8433
8434         * marshal.c: Set mb->skip_visibility instead of setting it on the method
8435         after it was created and cached, as the later is not thread safe.
8436         
8437 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
8438
8439         * mono-debug.c (mono_debug_print_stack_frame): Avoid crashes when this is
8440         called while the debugging module is not initialized. Fixes #471669.
8441
8442 2009-02-02 Rodrigo Kumpera  <rkumpera@novell.com>
8443
8444         * icall.c (type_from_name): Ignore reflection frames to find out the real caller.
8445
8446         Fixes #471255.
8447
8448 2009-02-02  Mark Probst  <mark.probst@gmail.com>
8449
8450         * generic-sharing.c (lookup_or_register_other_info): Make sure the
8451         loader lock is not taken while the templates lock is held.  Fixes
8452         #471089.
8453
8454 2009-02-02  Mark Probst  <mark.probst@gmail.com>
8455
8456         * metadata.c (type_in_image): Added a check to fix a monodis
8457         crash.
8458
8459 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
8460
8461         * marshal.c (mono_marshal_get_runtime_invoke): Add support for byref
8462         nullable arguments.
8463
8464         * object.c (mono_runtime_invoke_array): Ditto.
8465         
8466         * marshal.c (mono_marshal_free_dynamic_wrappers): New function for
8467         freeing wrappers of dynamic methods.
8468
8469         * loader.c (mono_free_method): Call it. Fixes #463323.
8470         
8471         * marshal.c (mono_marshal_get_runtime_invoke): Disable sharing for
8472         methods taking vtype/byref arguments, to fix yet another bug caused by
8473         the sharing of runtime invoke wrappers. Partly fixes #471259.
8474
8475 2009-02-01  Zoltan Varga  <vargaz@gmail.com>
8476
8477         * debug-mono-symfile.c (check_line): Return NULL instead of returning
8478         <first file in file table>:1 when the IL offset does not have an associated
8479         line number.
8480
8481 2009-01-31  Zoltan Varga  <vargaz@gmail.com>
8482
8483         * mono-debug.c (mono_debug_lookup_locals): New function to return local
8484         variable info for a method.
8485
8486         * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Ditto.
8487         
8488 2009-01-30  Jb Evain  <jbevain@novell.com>
8489
8490         * pedump.c: reuse code from monodis to make sure pedump honors
8491         MONO_PATH, which is needed to verify net_2_1 assemblies.
8492
8493 2009-01-29  Zoltan Varga  <vargaz@gmail.com>
8494
8495         * mono-debug.c (mono_debug_print_stack_frame): Print the IL offset even when
8496         there is no line number info.
8497
8498 2009-01-29  Raja R Harinath  <harinath@hurrynot.org>
8499
8500         Avoid some MonoType allocations
8501         * reflection.c (mono_reflection_initialize_generic_parameter):
8502         Reuse MonoType from param->pklass rather than allocating one.
8503         (mono_dynamic_image_free): Update to changes.
8504
8505 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
8506
8507         Rearrange some code to improve consistency
8508         * reflection.c (mono_reflection_setup_generic_class): Move body ...
8509         (mono_reflection_initialize_generic_parameter): ... here.
8510
8511 2009-01-28  Zoltan Varga  <vargaz@gmail.com>
8512
8513         * generic-sharing.c (has_constraints): Enable gshared for methods/classes
8514         with type constraints as an experiment.
8515
8516         * boehm-gc.c (on_gc_notification): Update mono_stats.
8517
8518 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
8519
8520         Avoid some allocations
8521         * class-internals.h (_MonoGenericInst::type_argv): Convert from
8522         pointer to tail array to avoid extra allocation.
8523         * metadata.c (free_generic_inst): Update to changes.
8524         (mono_metadata_get_generic_inst): Likewise.  Use alloca instead of
8525         on-stack struct.
8526
8527 2009-01-27  Zoltan Varga  <vargaz@gmail.com>
8528
8529         * icall.c (ves_icall_System_Type_EqualsInternal): For user-defined types,
8530         return TRUE if the two type objects are the same.
8531
8532 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
8533
8534         * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
8535         (mono_class_native_size): Use klass->marshal_info->min_align instead of
8536         klass->min_align, since klass->min_align contains the managed alignment,
8537         while the native alignment can be different, like for longs on x86.
8538         Fixes #469135.
8539
8540         * class-internals.h (MonoMarshalType): Add a min_align field.
8541
8542 2009-01-26 Rodrigo Kumpera  <rkumpera@novell.com>
8543
8544         * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
8545         the 1.0 format.
8546
8547 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
8548
8549         * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
8550         some comments about the usage of the used_regs field.
8551
8552         * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
8553         Fixes #469217.
8554
8555 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
8556
8557         * appdomain.c: return NULL instead of throwing FileNotFoundException
8558         when LoadAssembly() fails.
8559
8560 2009-01-23  Mark Probst  <mark.probst@gmail.com>
8561
8562         * metadata.c (mono_metadata_generic_param_equal): Only compare the
8563         image if the owner is NULL.  Fixes the AOT failures.
8564
8565 2009-01-23  Zoltan Varga  <vargaz@gmail.com>
8566
8567         * metadata.c (mono_metadata_load_generic_params): Initialize the 
8568         MonoGenericParam structure using memset so the image field is initialized
8569         as well.
8570
8571 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8572
8573         * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
8574         a plain store.
8575
8576 2009-01-21  Zoltan Varga  <vargaz@gmail.com>
8577
8578         * class.c (mono_class_setup_vtable_general): In the generic instance
8579         optimization, set method->slot for abstract virtual methods. Fixes part of
8580         #467834.
8581
8582 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
8583
8584         * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
8585         which signals that the unloading has started but all appdomain services must
8586         remain operational.
8587
8588         * appdomain.c (mono_domain_unload): The initial state for unloading now
8589         is unloading_start and we switch to unloading after the managed call to
8590         AppDomain::DomainUnload has finished.
8591
8592         The new unloading state has to be created because managed code in the
8593         DomainUnload event can depend on things like the threadpool still working.
8594         The domain must remain fully functional while the event executes.
8595
8596         This shown as an issue due to Process::WaitForExit, which waits for
8597         async reads of stdout and stderr to complete. Since those are processed
8598         in the threadpool the code deadlocks because the DomainUnload callback 
8599         waits for the async read finished event, which should have been set by a
8600         threadpool job but has been discarded due to the domain been in unload
8601         state.
8602
8603 2009-01-21  Mark Probst  <mark.probst@gmail.com>
8604
8605         * metadata.c (mono_metadata_generic_param_equal): Owner as well as
8606         image must match.
8607
8608 2009-01-21  Mark Probst  <mark.probst@gmail.com>
8609
8610         * reflection.c (resolve_object): For fields, inflate the class and
8611         then get the field in the inflated class.
8612
8613 2009-01-20  Mark Probst  <mark.probst@gmail.com>
8614
8615         * object-internals.h (struct _MonoException): Added a comment
8616         explaining the new use of trace_ips.
8617
8618 2009-01-20  Mark Probst  <mark.probst@gmail.com>
8619
8620         * generic-sharing.c (inflate_other_data): Inflate array methods
8621         correctly.
8622
8623         * loader.c, class-internals.h: Rename search_in_array_class() to
8624         mono_method_search_in_array_class() and make it non-static.
8625
8626 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
8627
8628         * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
8629         Hopefully fixes #458168.
8630
8631 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
8632
8633         * object.c (mono_raise_exception): Remove call to InterlockedIncrement
8634         as it is performed elsewhere.
8635
8636         Code is contributed under MIT/X11 license
8637
8638 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
8639
8640         * mono-perfcounters-def.h: Add counters for asp.net requests total and
8641         requests queued.
8642         * object.c (mono_raise_exception): Increment the exceptions total
8643         counter when an exception is thrown.
8644         * class-internals.h: Add a location for storing the total number of
8645         asp.net requests served.
8646         * mono-perfcounters.c: Implement update support for asp.net counters
8647         from the class libraries. Implement read support for asp.net counters
8648         and exceptions total counter.
8649
8650 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
8651
8652         * loader.c (search_in_array_class): Call mono_class_setup_methods () before
8653         accessing klass->methods. Fixes #467385.
8654
8655 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
8656
8657         * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
8658         for byval arguments without an [Out] attribute. Fixes #467212.
8659
8660         * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com). 
8661         Fix compilation under android.
8662         
8663         * sgen-gc.c: Instead of scanning gray objects after all roots have been 
8664         processed, scan them directly after they are copied, to achieve better locality
8665         and cache usage.
8666
8667         * socket-io.c: Applied patch from Koushik Dutta
8668         (koush@koushikdutta.com). Disable IPV6 when running under android.
8669
8670 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
8671
8672         * icall.c (ves_icall_InternalExecute): Add write barriers.
8673
8674         * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
8675         the GC code.
8676
8677         * sgen-gc.c: Implement write barriers in IL code.
8678
8679 2009-01-17  Geoff Norton  <gnorton@novell.com>
8680
8681         * image.c: Avoid trying to walk the reference table of dynamic assemblies.
8682
8683 2009-01-17  Geoff Norton  <gnorton@novell.com>
8684
8685         * image.c: When unloading the image->references table, there can be gaps
8686         in it.  Ensure that we iterate every entry to avoid leaking assembly references
8687         when unloading an appdomain.
8688
8689 2009-01-16  Zoltan Varga  <vargaz@gmail.com>
8690
8691         * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
8692         speed up ptr-in-nursery checks.
8693
8694         * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
8695         threads_lock () to prevent deadlocks.
8696
8697         * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
8698         does not need to be scanned during minor collections, since writes to it
8699         must use write barriers.
8700
8701 2009-01-15 Rodrigo Kumpera  <rkumpera@novell.com>
8702
8703         * metadata-verify.c: Add pe nt header verification.
8704         
8705 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
8706
8707         * gc.c: Fix a few warnings when using SGEN.
8708
8709 2009-01-14 Rodrigo Kumpera  <rkumpera@novell.com>
8710
8711         * metadata-verify.c: Add pe optional header verification.
8712
8713 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
8714
8715         * sgen-gc.c: Add support for user defined marker functions, used by
8716         MonoGHashTable to avoid registering a GC root for every hash node.
8717
8718 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
8719
8720         * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
8721         non-pinned roots into separate hashes to avoid having to traverse them
8722         in functions which are only interested in one kind.
8723
8724 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
8725
8726         * metadata-verify.c: Add pe header machine field verification.
8727         
8728 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
8729
8730         * metadata-verify.c: Add pe header size verification.
8731
8732 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
8733
8734         * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
8735         using the GC, they don't contain references.
8736
8737         * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
8738
8739 2009-01-13  Geoff Norton  <gnorton@novell.com>
8740
8741         * appdomain.c|h: Expose mono_domain_unload to the embedding api so that 
8742         AppDomains created on the native side can be cleaned up on the native side.
8743
8744 2009-01-13  Geoff Norton  <gnorton@novell.com>
8745
8746         * appdomain.c: Ensure that we call mono_context_init for the embedding api
8747         as well as the managed api.
8748
8749 2009-01-13  Geoff Norton  <gnorton@novell.com>
8750
8751         * appdomain.h|c: New API for creating a MonoDomain in the embedding api
8752         with a MonoAppDomain initialized against it.
8753
8754 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
8755
8756         * reflection.c (MOVING_GC_REGISTER): Fix a warning.
8757         
8758         * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
8759
8760         * marshal.c: Avoid setting the exception clauses after a method has been entered 
8761         into the wrapper caches. Fixes #465700.
8762
8763         * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
8764         method builder.
8765         (mono_mb_create_method): Set the clauses from the method builder.
8766
8767 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
8768
8769         * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
8770         Patch from Makoto Kishimoto.
8771
8772 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
8773
8774         * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by 
8775         encoding them as ROOT_DESC_COMPLEX.
8776         (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
8777
8778 2009-01-12  Zoltan Varga  <vargaz@gmail.com>
8779
8780         * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
8781         no longer point to the nursery.
8782
8783         * sgen-gc.c: Add a few comments/FIXMEs.
8784         
8785         * sgen-gc.c: Implement scanning of the alloc_pinned objects.
8786
8787         * marshal.c (mono_marshal_get_synchronized_wrapper): Make the 
8788         initialization of the various _method variables thread safe. Fixes
8789         #465377.
8790
8791 2009-01-12  Mark Probst  <mark.probst@gmail.com>
8792
8793         * domain.c, domain-internals.h: Remove the shared_generics_hash
8794         and its lookup functions.
8795
8796 2009-01-12  Bill Holmes  <billholmes54@gmail.com>
8797
8798         * socket-io.c:  Fixing the MSVC build. 
8799
8800         Code is contributed under MIT/X11 license.
8801
8802 2009-01-12 Rodrigo Kumpera  <rkumpera@novell.com>
8803
8804         * metadata-verify.c: Add pe header watermark verification.
8805
8806 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
8807
8808         * metadata-verify.c: Add lfanew verification.
8809
8810 2009-01-12  Jb Evain  <jbevain@novell.com>
8811
8812         * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
8813         METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
8814
8815 2009-01-10  Zoltan Varga  <vargaz@gmail.com>
8816
8817         * socket-io.c: Fix the build.
8818
8819         * environment.c: Fix an #ifdef.
8820
8821 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
8822
8823         * threadpool.c (async_invoke_thread): Handle the wait function returning
8824         WAIT_IO_COMPLETION as well.
8825         (async_invoke_io_thread): Ditto.
8826
8827 2009-01-09  Bill Holmes  <billholmes54@gmail.com>
8828
8829         * threads.c: Fixing the Windows build.
8830
8831         Code is contributed under MIT/X11 license.
8832
8833 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
8834  
8835         * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
8836         interrupt a wait.
8837         (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
8838         the thread to wait again.
8839
8840 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
8841
8842         * metadata-verify.c: Initial skeleton of the metadata verifier.
8843
8844         * pedump.c: Add support for the metadata verifier.
8845
8846         * verify-internal.h: Export the whole assembly metadata verifier function.
8847
8848 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
8849
8850         * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
8851
8852 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
8853
8854         * Makefile.am: Upgrade dtrace-prelink.sh location.
8855
8856 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
8857
8858         * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
8859         well. Otherwise the shutdown deadlock that happens on unix will can happen
8860         as well.
8861         If the main thread code finishes too fast it's possible that the finalizer
8862         thread won't have executed yet, won't record itself as the finalizer thread
8863         and the shutdown sequence will wait on it forever.
8864
8865 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
8866
8867         * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
8868         with MSVC.
8869
8870 2009-01-08  Miguel de Icaza  <miguel@novell.com>
8871
8872         * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
8873         Robert Jordan for pointing this out.
8874
8875 2009-01-08  Christian Prochnow  <cproch@seculogix.de>
8876
8877         * icall.c
8878         * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
8879         ves_icall_System_IO_DriveInfo_GetDriveType.
8880
8881 2009-01-07  Miguel de Icaza  <miguel@novell.com>
8882
8883         * icall.c: Wrap calls to mono_strtod in CriticalSection
8884         invocations when using eglib, to work around #464316.
8885
8886 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
8887
8888         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
8889         return value of GetCurrentDirectory to never access unitialized memory.
8890
8891 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
8892
8893         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
8894         return value of GetCurrentDirectory and expand the buffer if needed.
8895
8896         Fixes #459094.
8897
8898 2009-10-07 Tom Hindle  <tom_hindle@sil.org>
8899
8900         * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) : 
8901           Adding a call to mono_init_com_types.
8902
8903         Code is contributed under MIT/X11 license.
8904
8905 2009-01-07  Geoff Norton  <gnorton@novell.com>
8906
8907         * socket-io.c: ioctlsocket(FIONREAD) returns the size of the UDP header as well on 
8908         darwin.  Use getsockopt SO_NREAD instead to get the right values for TCP and UDP.
8909         ai_canonname can be null in some cases on darwin, where the runtime assumes it will 
8910         be the value of the ip buffer.
8911
8912 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
8913
8914         * verify.c (mono_class_interface_implements_interface): Verify parents as we can't rely on
8915         interfaces_packed here.
8916
8917         Fixes part of #463294.
8918
8919 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
8920
8921         * verify.c (is_array_type_compatible): Ignore bounds and sizes when checking array compatibility.
8922
8923         Fixes part of #463294.
8924
8925 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
8926
8927         * verify.c (stack_slot_is_complex_type_not_reference_type): Check if the type
8928         is a boxed complex as well.
8929
8930         Fixes part of #463294.
8931
8932 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
8933
8934         * reflection.c (mono_image_get_methodref_token): Add an extra create_typespec parameter to
8935         control if a methodspec should be created for the generic method definition from external assemblies.
8936         Caching of methodspec is done using the handleref hash table.
8937
8938         Fixes #462592.
8939
8940 2009-01-05 Rodrigo Kumpera  <rkumpera@novell.com>
8941
8942         * loader.c (find_method): When searching the interfaces of a class
8943         check the transitive closure of implemented interfaces.
8944
8945         Fixes #463303.
8946
8947 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
8948
8949         * class.c (get_implicit_generic_array_interfaces): Improve debugging code.
8950         
8951 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
8952
8953         * class.c (get_implicit_generic_array_interfaces): Extract valuetype
8954         interfaces calculation to fill_valuetype_array_derived_types.
8955
8956         * class.c (get_implicit_generic_array_interfaces): Valuetypes need IList /
8957         ICollection / IEnumerator interfaces for their extra twin type - sbyte for byte
8958         for example.
8959
8960         * class.c (get_implicit_generic_array_interfaces): InternalEnumerator gets
8961         interfaces for valuetypes if needed.    
8962
8963         * class.c (fill_valuetype_array_derived_types): Enums should have interfaces
8964         for their basetype as well. Types are array expanded if rank is > 0.
8965
8966         Fixes #400716.
8967
8968 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
8969
8970         * socket-io.h : Changing the signature of
8971           ves_icall_System_Net_Sockets_Socket_Accept_internal to pass
8972           the blocking state.
8973
8974         * icall-def.h :  Changing the signature of
8975           System.Net.Sockets.Socket.Accept_internal to pass the blocking state.
8976
8977         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
8978           For Windows only.  Avoid blocking when calling accept by
8979           querying for a connection via select.  The loop also queries
8980           the thread state every 1000 micro seconds for the thread
8981           stop state.  This will avoid the process hanging on shutdown
8982           when using a TcpChannel that is never connected to.
8983
8984         Code is contributed under MIT/X11 license.
8985
8986 2008-12-30  Marek Safar  <marek.safar@gmail.com>
8987
8988         * tabledefs.h: Add METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE.
8989
8990 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
8991
8992         * class.c (get_implicit_generic_array_interfaces): Extract common
8993         code to a helper function making it a lot easier on the eyes.
8994
8995 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
8996
8997         * class.c (get_implicit_generic_array_interfaces): If the internal
8998         enumerator is an interface inflate System.Object instead of itself.
8999
9000         Fixes #461261.
9001
9002 2008-12-24 Rodrigo Kumpera  <rkumpera@novell.com>
9003
9004         * object.c (mono_runtime_invoke_array): Don't assert with
9005         byref nullable types.
9006
9007         * marshal.c (mono_marshal_get_runtime_invoke): To handle
9008         byref nullables we unbox the object and store it on the
9009         stack. 
9010         We can't use the boxed object since it is the T of Nullable<T>
9011         and the boxed representation of a nullable it's underlying type
9012         or null.
9013         We could cheat and create a boxed nullable and use the same
9014         machinery of other byref VTs but this feels like a hack and
9015         using the stack has the bonus of reducing heap pressure.
9016
9017         Fixes #461941.
9018
9019 2008-12-23 Rodrigo Kumpera  <rkumpera@novell.com>
9020
9021         * marshal.c (mono_marshal_emit_managed_wrapper): Handle char
9022         return value.
9023
9024         Fixes #461867.
9025
9026 2008-12-19  Bill Holmes  <billholmes54@gmail.com>
9027
9028         * icall-def.h : Adding an internal call definition for 
9029           System.Environment.internalBroadcastSettingChange.
9030
9031         * icall.c : Adding a Windows only implementation to broadcast a 
9032           WM_SETTINGCHANGE when an environment variable has changed.
9033
9034         Code is contributed under MIT/X11 license.
9035
9036 2008-12-19  Mark Probst  <mark.probst@gmail.com>
9037
9038         * class.c, class-internals.h: Made
9039         mono_class_has_parent_and_ignore_generics() non-static.
9040
9041 Thu Dec 18 16:35:22 CET 2008 Paolo Molaro <lupus@ximian.com>
9042
9043         * image.c: deal with the mmap failing when loading an image.
9044
9045 2008-12-17  Geoff Norton  <gnorton@novell.com>
9046
9047         * threadpool.c: Ensure that the io_queue_lock is initialized
9048         in all circumstances, as we always attempt to cleanup against it.
9049
9050 2008-12-17  Miguel de Icaza  <miguel@novell.com>
9051
9052         * icall.c (ves_icall_System_Environment_get_Platform): For
9053         compatibility reasons for existing client code we will keep
9054         returning 4 for a while.   
9055
9056         For how long will depend on the documentation being updated, and
9057         for us to give client code a chance to be updated.
9058
9059         This reverts the original decison on #433108 since we did not
9060         catch roughly 33 instances of the broken code in our own source
9061         code base, we did not catch failures on the buildbots, and QA did
9062         not bring this as a problem.
9063
9064         Only today I found some customer's code breaking due to our own
9065         class libraries not being fully updated and tracked it down to
9066         this change.  I am reverting it because if we could not even get
9067         our story straight in our own code base, how can we hope that our
9068         end user code be fixed?
9069
9070         As of this morning, our Wiki page that documents how to detect
9071         Unix had not been fixed.    
9072
9073 2008-12-16  Zoltan Varga  <vargaz@gmail.com>
9074
9075         * metadata.c (inflated_method_in_image): Add a workaround for #458168.
9076
9077         * class.c (mono_class_get_fields): Handle loading errors.
9078
9079 2008-12-12 Mark Mason <mmason@upwardaccess.com>
9080
9081         * metadata.c (mono_type_stack_size_internal): If SIZEOF_REGISTER > SIZEOF_VOID_P then use SIZEOF_REGISTER as the size and alignment of the stack slots.
9082         
9083 2008-12-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
9084
9085         * mono-perfcounters.c: avoid warning.
9086
9087 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
9088
9089         * reflection.c (ensure_runtime_vtable): Work on generic instances and
9090         make sure all interfaces have MonoClass::interface_id set.
9091
9092         * reflection.c (ensure_generic_class_runtime_vtable): Ensure the
9093         method table is property set.
9094
9095 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
9096
9097         * class.c: New function mono_class_setup_interface_id that setup
9098         MonoClass::interface_id if needed.
9099
9100         * class-internals.h: Export new function.
9101
9102 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
9103
9104         * class.c: Add code to sanity check the vtable after setup_vtable_general
9105         has done it's work.
9106
9107 2008-12-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
9108
9109         * icall.c: make Assembly.GetExecutingAssembly work properly when
9110         reflection is used to invoke the method.
9111         Bug #321781 fixed.
9112
9113 2008-12-11  Mark Probst  <mark.probst@gmail.com>
9114
9115         * metadata/generic-sharing.c: Look for constraints in all type
9116         arguments, not just the first one.
9117
9118 2008-12-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
9119
9120         * appdomain.c: return the correct CodeBase for an Assembly instance
9121         that was loaded from the shadow-copy directories.
9122         Bug #458190 fixed.
9123
9124 2008-12-10  Zoltan Varga  <vargaz@gmail.com>
9125
9126         * sgen-gc.c (build_nursery_fragments): Clear nursery_next/nursery_frag_real_end.
9127
9128         * sgen-gc.c (check_object): New debugging helper function.
9129
9130         * object.c: Fix calls to mono_value_copy_array ().
9131
9132 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
9133
9134         * class.c (mono_class_setup_fields): If working on an inflated class
9135         first check if the generic definition did init with success.
9136
9137         Fixes #445361.
9138
9139 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
9140
9141         pedump.c (main): Fix a warning.
9142
9143 2008-12-10  Bill Holmes  <billholmes54@gmail.com>
9144
9145         * object-internals.h : Adding a definition for 
9146           MonoReflectionComVisibleAttribute.
9147
9148         * marshal.c (cominterop_com_visible) :  Method added to check the 
9149           ComVisible attribute of a class.
9150
9151         * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :  
9152           cominterop_raise_hr_exception added to consolidate common code 
9153           to raise hr exceptions.
9154
9155         * marshal.c (cominterop_can_support_dispatch) :  Method added to determine 
9156           if a managed class should support IDispatch.
9157
9158         * marshal.c 
9159           (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :  
9160           Added additional checks for managed object when getting 
9161           an IDispatch interface.
9162
9163         Code is contributed under MIT/X11 license.
9164
9165 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
9166
9167         pedump.c (main): Handle mono_get_method () returning NULL. 
9168
9169 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
9170
9171         * marshal.h: Fix a warning.
9172
9173 2008-12-09  Bill Holmes  <billholmes54@gmail.com>
9174
9175         * marshal.c : Adding cominterop_release_all_rcws to release all
9176           runtime callable wrappers held by the runtime.
9177
9178         * marshal.h : Adding declaration for cominterop_release_all_rcws.
9179           
9180         Code is contributed under MIT/X11 license.
9181
9182 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
9183
9184         * metadata.c (mono_image_alloc_lock): New helper function.
9185         (mono_image_alloc0_lock): Ditto.
9186
9187         * metadata.c: Use the alloc_lock () helper functions for allocating
9188         memory from the image mempool.
9189
9190 2008-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
9191
9192         * class.c (mono_class_from_generic_parameter): Document it's
9193         locking behavior. Fix double checked locking here, we stored in
9194         param->pklass a partially initialized MonoClass and no membar was used.
9195
9196 2008-12-05  Marek Habersack  <mhabersack@novell.com>
9197
9198         * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
9199         (3) functions are present in the C library use them to do the
9200         job. If they are absent, make sure that the sum of int_part and
9201         dec_part is rounded before returning. This is necessary due to the
9202         division of dec_part by the power of 10 before the final addition
9203         is performed - if the result is not rounded in some cases it will
9204         yield invalid results.
9205
9206 2008-12-04  Zoltan Varga  <vargaz@gmail.com>
9207
9208         * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
9209         wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR 
9210         instruction instead of a pointer constant.
9211
9212 2008-12-03  Zoltan Varga  <vargaz@gmail.com>
9213
9214         * loader.c (mono_method_get_header): Do most of the work outside the
9215         loader lock, to avoid assembly load hook deadlocks.
9216
9217         * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
9218         (mono_metadata_parse_type_full): Ditto.
9219
9220 2008-12-02 Rodrigo Kumpera  <rkumpera@novell.com>
9221
9222         * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
9223         Make the stack depth fixed. Ensure proper argument passing to the backtrace
9224         funtions. Finally, use a lock to produce well ordered output.
9225
9226         The lock looks silly, as all calls to the corlib mempool should be guarded
9227         with the loader lock, but for some reason this fact doesn't help. 
9228
9229         * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
9230
9231 2008-12-02  Mark Probst  <mark.probst@gmail.com>
9232
9233         * socket-io.c: 64 bit big-endian fixes.
9234
9235 2008-12-01 Rodrigo Kumpera  <rkumpera@novell.com>
9236
9237         * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
9238         targets that require strict compatibility between the types.
9239
9240         * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
9241         to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
9242         Kill the strict argument and create a new one valuetype_must_be_boxed.
9243
9244         * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
9245         state that all valuetypes must be boxed.
9246
9247         Fixes #448560.
9248
9249 2008-11-29  Kornél Pál  <kornelpal@gmail.com>
9250
9251         * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
9252         IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
9253
9254         Contributed under MIT/X11 license.
9255
9256 2008-11-28 Rodrigo Kumpera  <rkumpera@novell.com>
9257
9258         * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
9259         the inflate_generic_type machinery should handle it.
9260
9261         This avoids a crash when the field's flags is zero and it's type is
9262         a primitive.
9263         What happens is that mono_metadata_parse_type_full will see that opt_attrs
9264         is zero and will return one of the cached built-in primitive types. Since
9265         those types live in read-only memory, the code that copies it crashes.  
9266
9267 2008-11-28  Mark Probst  <mark.probst@gmail.com>
9268
9269         * object.c: Don't put function descriptors into generalized IMT
9270         thunks.
9271
9272 2008-11-28  Mark Probst  <mark.probst@gmail.com>
9273
9274         * class.c: Enable generic code sharing on PPC64.
9275
9276 2008-11-27  Mark Probst  <mark.probst@gmail.com>
9277
9278         * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
9279         from mini/mini.c.
9280
9281         * generic-sharing.c: Allocate the method template slists from the
9282         image mempool so it doesn't leak.
9283
9284 2008-11-27 Rodrigo Kumpera  <rkumpera@novell.com>
9285
9286         * class.c (generic_array_methods): Release the linked list.
9287
9288 2008-11-27  Mark Probst  <mark.probst@gmail.com>
9289
9290         * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
9291         invocation to g_utf16_to_utf8().
9292
9293 2008-11-26  Mark Probst  <mark.probst@gmail.com>
9294
9295         * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
9296         arguments on big endian archs.
9297
9298 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
9299
9300         * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
9301         the type name (test added in corlib).
9302
9303 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
9304
9305         * pedump.c: initialize perf. counters. Fixes a segv.
9306
9307 2008-11-25  Martin Baulig  <martin@ximian.com>
9308
9309         * mono-debug-debugger.c
9310         (mono_debugger_runtime_invoke): Return the exception object if an
9311         exception was thrown.  Visual Studio displays the exception object
9312         in the locals window.
9313
9314 2008-11-24  Mark Probst  <mark.probst@gmail.com>
9315
9316         * mini-trampolines.c (mono_delegate_trampoline): Don't return a
9317         ftnptr.
9318
9319 2008-11-24  Mark Probst  <mark.probst@gmail.com>
9320
9321         * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
9322         MONO_TYPE_U are sizeof (gpointer), too.
9323
9324 2008-11-24  Mark Probst  <mark.probst@gmail.com>
9325
9326         * marshal.c (mono_type_native_stack_size): Fixed size and
9327         alignment for reference types.
9328
9329 2008-11-23  Mark Probst  <mark.probst@gmail.com>
9330
9331         * class.c (mono_class_generic_sharing_enabled): Disable generic
9332         code sharing for PPC64.
9333
9334 2008-11-21 Rodrigo Kumpera  <rkumpera@novell.com>
9335
9336         * icall.c (mono_method_get_equivalent_method): Make sure
9337         method->klass->methods is inited before looping over it.
9338
9339 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
9340
9341         * object.c: when calling ExecuteAssembly in a newly created domain,
9342         the configuration file and application base are already set up.
9343         Bug #446353 take 2 fixed.
9344
9345 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
9346
9347         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
9348         Fixes #444715. Fix a warning.
9349
9350 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
9351
9352         * appdomain.c: write the full path of the assembly to the .ini file
9353         created when "shadow-copying"
9354         Bug #446353 fixed.
9355
9356 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
9357
9358         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
9359         if signature==FALSE.
9360
9361 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
9362
9363         * marshal.h : Fix the cygwin build.
9364            marshal.c:12442: undefined reference to `_IID_IMarshal'
9365           
9366         Code is contributed under MIT/X11 license.
9367
9368 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
9369
9370         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
9371           free threaded marshaler when QueryInterface is called on a COM callable
9372           wrapper requesting the IMarshal interface.
9373           
9374         Code is contributed under MIT/X11 license.
9375
9376 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
9377
9378         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
9379
9380         * reflection.c (mono_type_get_object): Special case the very common
9381         void type.
9382
9383         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
9384         hold typeof(void).
9385
9386 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
9387
9388         * process.h : Adding method declaration for
9389           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
9390           
9391         * process.c : Adding implementation for
9392           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
9393           
9394         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
9395           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
9396
9397         Code is contributed under MIT/X11 license.
9398
9399 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
9400
9401         * appdomain.c (unload_thread_main): Clean up threadpool by
9402         calling mono_thread_pool_remove_domain_jobs.
9403
9404         * domain-internals.h (struct _MonoDomain): Add new fields to
9405         help coordinate the cleanup of the threadpool.
9406
9407         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
9408         that cleans up the threadpool of all jobs associated with an appdomain.
9409         It does that by cleaning up the queues and making sure all active
9410         threads are accounted.
9411
9412         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
9413         unloaded or in the process of. Take this is such way that there is
9414         no race condition between another thread starting the unload and the
9415         current thread acknowledging it.
9416
9417         * threadpool.c (async_invoke_thread): Same.
9418
9419         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
9420         firing the new thread.
9421
9422         * threadpool.c (start_tpthread): Same.
9423
9424         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
9425
9426         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
9427
9428 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
9429
9430         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
9431         Add support for DuplicateHandle.
9432         
9433         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
9434         Add support for DuplicateHandle.
9435         
9436         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
9437         Add support for DuplicateHandle.
9438
9439         Code is contributed under MIT/X11 license.
9440
9441 2008-11-06  Mark Probst  <mark.probst@gmail.com>
9442
9443         * class-internals.h: Make min_align into a whole byte.
9444
9445         * class.c: Set min_align for SIMD types to 16.
9446
9447 2008-11-05  Geoff Norton  <gnorton@novell.com>
9448
9449         * attach.c: Default the attacher to enabled for all cases including
9450         embedded.
9451
9452 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
9453
9454         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
9455         change r117650.
9456
9457 2008-11-04  Mark Probst  <mark.probst@gmail.com>
9458
9459         * monitor.c, monitor.h: New function for querying offsets of
9460         members of MonoThreadsSync.
9461
9462 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
9463
9464         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
9465         to speed up this function and to avoid the boundless memory growth caused by
9466         the signature_dup () calls.
9467
9468 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
9469
9470         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
9471         wrapper.
9472
9473         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
9474         by 1 bit.
9475
9476         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
9477
9478 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
9479
9480         * appdomain.c:
9481         * domain-internals.h: made mono_set_private_bin_path_from_config()
9482         "internal".
9483         * object.c: call the above function after setting the configuration
9484         file path for the root domain.
9485         Fixes bug #314478.
9486
9487 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
9488
9489         * assembly.c: when the assembly is loaded from an absolute path, end
9490         basedir with a directory separator.
9491         Bug #440781 fixed.
9492
9493 2008-10-30  Mark Probst  <mark.probst@gmail.com>
9494
9495         * monitor.c (mono_monitor_get_fast_enter_method): If
9496         CompareExchange is not available, don't create the fastpath
9497         instead of asserting.  (The method is missing in the 1.1 profile.)
9498
9499 2008-10-30  Mark Probst  <mark.probst@gmail.com>
9500
9501         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
9502
9503         * monitor.c, monitor.h: Code for generating Monitor.Enter and
9504         Monitor.Exit IL fastpaths.
9505
9506 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
9507
9508         * class.c (mono_class_create_from_typedef): Added Vector2ul.
9509
9510 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
9511
9512         * class.c (mono_class_create_from_typedef): Added Vector2l.
9513
9514 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
9515
9516         * class.c (mono_class_create_from_typedef): Added Vector2d.
9517
9518 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
9519
9520         * appdomain.c: translate \ into / for cache_path.
9521         * domain-internals.h: new mono_is_shadow_copy_enabled().
9522         * icall.c: (fill_reflection_assembly_name) do the same path
9523         manipulations that get_code_base does.
9524         (get_code_base) use mono_is_shadow_copy_enabled.
9525
9526 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
9527
9528         * appdomain.c: shadow-copied assemblies go to CachePath +
9529         ApplicationName when both are set. DynamicBase has nothing to do with
9530         shadow copies.
9531         Bug #406877 fixed.
9532
9533 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
9534
9535         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
9536         STANDALONESIG table.
9537
9538         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
9539         standalone signatures.
9540
9541         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
9542         comparison code: instead of comparing the signatures using a custom
9543         equals function, transform them to a common signature and compare that. This
9544         works better with AOT.
9545
9546 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
9547
9548         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
9549
9550         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
9551         call for generic instances.
9552         (mono_class_setup_properties): Call setup_properties () before accessing
9553         gklass->properties.
9554
9555         * class.c (mono_class_get_virtual_methods): New helper function to iterate
9556         over the virtual methods of a class using metadata if possible, avoiding the
9557         creation of MonoMethod's for non-virtual methods.
9558         
9559         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
9560         get_virtual_methods () to iterate over the virtual methods of classes.
9561
9562 2008-10-25  Martin Baulig  <martin@ximian.com>
9563
9564         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
9565
9566 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
9567
9568         * class.c (mono_class_create_from_typedef): Added Vector4i.
9569
9570 2008-10-24  Mark Probst  <mark.probst@gmail.com>
9571
9572         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
9573         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
9574         special-casing applies to eliminate the call completely.
9575
9576 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
9577
9578         * class.c (mono_class_create_from_typedef): Added Vector8s.
9579
9580 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
9581
9582         * class.c (mono_class_create_from_typedef): Added Vector16sb.
9583
9584 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
9585
9586         * icall.c: get rid of annoying warning.
9587
9588 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
9589
9590         * threadpool.c: in 1.x, if you change the background status of the
9591         threadpool thread, it's not reset.
9592         Remove unnecessary calls to SetState.
9593
9594 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
9595
9596         * threadpool.c: asynchronously create a set of idle threads upon first
9597         use of the threadpool. SetMinThreads will now start the appropriate
9598         number of idle threads if they are not already running. The default is
9599         1 threadpool thread per CPU. Increased the maximum number of threads
9600         per CPU to 10.
9601
9602 2008-10-22  Martin Baulig  <martin@ximian.com>
9603
9604         Revert r116521 from Zoltan, it breaks the debugger:
9605
9606         * class.c (mono_class_get_virtual_methods): New helper function to iterate
9607         over the virtual methods of a class using metadata if possible, avoiding the
9608         creation of MonoMethod's for non-virtual methods.
9609         
9610         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
9611         get_virtual_methods () to iterate over the virtual methods of classes.
9612
9613 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
9614
9615         * threads.c: when creating a threadpool thread, set its state to
9616         'background'.
9617         * threadpool.c: reset the background state of a threadpool thread
9618         after finishing each work item
9619         Bug #437888 fixed.
9620
9621 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
9622
9623         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
9624         
9625         * class.c (mono_class_setup_vtable_general): Add an optimized version for
9626         generic instances which works by inflating the methods in the container
9627         class's vtable.
9628
9629         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
9630         variant which doesn't make a copy if no inflation was done.
9631         (mono_class_setup_fields): Use it.
9632
9633         * metadata.c (mono_metadata_get_shared_type): New helper function to
9634         return a shared instance of a given MonoType.
9635
9636         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
9637         a copy of most non-generic types.
9638
9639 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
9640
9641         * threadpool.c: remove one more GetSystemInfo () call.
9642
9643 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
9644
9645         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
9646         use the code in mono-proclib.h to get processor information.
9647
9648 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
9649
9650         * appdomain.c: fixed the logic that determines whether assemblies in a
9651         directory are "shadow-copied" or not. Bug #433483 fixed.
9652
9653 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
9654
9655         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
9656         warning.
9657
9658 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
9659
9660         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
9661         returning a vtype.
9662
9663         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
9664         reflection.c: Use mono_field_get_name () for accessing a field's name.
9665
9666         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
9667         class.c
9668
9669         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
9670         field.
9671
9672         * loader.c (find_method_in_class): Reenable the metadata optimization by
9673         not using it for generic instances.
9674
9675         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
9676         data/def_type fields from MonoClassField into a separate structure.
9677         (struct MonoClassField): Remove data/def_type fields.
9678         (struct _MonoClass): Add a 'field_def_values' array to store the default
9679         values/RVA for fields.
9680
9681         * class.c reflection.c: Update after the changes.
9682         
9683         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
9684         for accessing field->data.
9685
9686         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
9687
9688         * loader.c (find_method_in_class): Revert the last change for now as
9689         it breaks Mono.C5 unit tests.
9690
9691         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
9692         'field_generic_types' and 'field_objects' which contain the information
9693         previously stored in MonoInflatedField.
9694         (MonoInflatedField): Delete.
9695         (struct _MonoClassField): Delete 'generic_info' field.
9696
9697         * reflection.c: Store the information which was previously in 
9698         field->generic_info in MonoDynamicGenericClass instead.
9699
9700         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
9701         MonoClassField changes.
9702
9703 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
9704
9705         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
9706         store the value inside the data array of the MonoMethodWrapper.
9707         This saves memory, is faster and fixes the lifetime issues (methods
9708         were never removed from the hash previously). May also fix bug#436996.
9709
9710 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
9711
9712         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
9713         generic instances, compute the type from the generic definition instead of
9714         looking in field->generic_info.
9715
9716         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
9717         for inflated fields, the only user was get_fieldref_token () which no
9718         longer needs it.
9719
9720         * class.c (mono_class_init): Revert the last change as it seems to cause
9721         crashes.
9722
9723         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
9724         bytes on 64 bit platforms.
9725
9726         * object.c (mono_class_create_runtime_vtable): Fix a warning.
9727         
9728         * object.c (mono_class_create_runtime_vtable): Don't initalize
9729         field->data/field->def_type here, it is done lazily by 
9730         mono_class_get_field_default_value ().
9731
9732         * icall.c (ves_icall_get_enum_info): Call 
9733         mono_class_get_field_default_value () instead of directly accessing
9734         field->data and field->def_type.
9735
9736         * object.c (get_default_field_value): Ditto.
9737
9738         * class.c (mono_field_get_data): Ditto.
9739         
9740         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
9741         call for generic instances.
9742
9743         * loader.c (find_method_in_class): If klass != from_class, then inflate
9744         the method with the context of from_class, since the caller assumes this.
9745
9746 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
9747
9748         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
9749         for accessing method->slot.
9750
9751 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
9752
9753         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
9754
9755 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
9756
9757         * class.c (mono_method_get_vtable_index): Use
9758         mono_method_get_vtable_slot () for accessing method->slot.
9759
9760         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
9761         accessing klass->methods.
9762
9763         * class.c (mono_method_get_vtable_slot): New helper function.
9764         (mono_class_get_vtable_entry): Ditto.
9765         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
9766         accessing method->slot.
9767
9768         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
9769         method to get_inflated_method ().
9770
9771         * class.c (mono_class_get_inflated_method): New helper method to obtain
9772         a method of an inflated class without calling setup_methods ().
9773         (mono_class_get_cctor): Use get_inflated_method.
9774
9775         * generic-sharing.c (mono_class_get_method_generic): Ditto.
9776         
9777         * marshal.c image.c: Lazily create all the marshal caches.
9778
9779         * image.c (mono_image_init): Move initialization of runtime_invoke
9780         caches to marshal.c.
9781
9782         * marshal.c (get_cache): New helper function to lazily initialize a 
9783         wrapper cache.
9784         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
9785
9786         * debug-helpers.c (mono_method_full_name): Include generic arguments.
9787
9788 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
9789
9790         * loader.c: fixed check for interface type.
9791
9792 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
9793
9794         * appdomain.c: check for NULL setup before it's referenced.
9795
9796 p
9797 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
9798
9799         * class.c: remove the unused old vtable setup code.
9800
9801 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
9802
9803         * class.c: don't depend on interface order in
9804         setup_interface_offsets (bug #435777).
9805         * reflection.c: sort the InterfaceImpl table (patch from
9806         Jb Evain  <jbevain@novell.com>).
9807
9808 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
9809
9810         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
9811         the low level assemblies lock.
9812
9813 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
9814
9815         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
9816         object.c, reflection.c, socket-io.c, threads.c: introduced
9817         mono_framework_version () to return the major framewrok version,
9818         changed the code that was using more complex patterns to use it.
9819         Return the correct value for PlatformID for OSX.
9820
9821 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
9822
9823         * icall-def.h, process.h, process.c: added an icall to get info about
9824         processes using mono-proclib.
9825
9826 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
9827
9828         * mono-perfcounters.c: use the mono-proclib functions to
9829         access process information.
9830
9831 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
9832
9833         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
9834         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
9835         reflection.c: remove rawbuffer usage: mmap support is more sanely
9836         provided by utils/mono-mmap.
9837
9838 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
9839
9840         * gc.c: use posix semaphores when possible so that
9841         mono_gc_finalize_notify() is signal safe.
9842
9843 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
9844
9845         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
9846         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
9847         be #ifdef-ed out, the linker will remove the rest.
9848
9849         * marshal.c: Implement DISABLE_COM.
9850
9851         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
9852
9853 2008-10-11  Miguel de Icaza  <miguel@novell.com>
9854
9855         * locales.c (string_invariant_compare_char): Optimization: do not
9856         call g_unichar_type unless we actually need the information.
9857
9858 2008-10-10  Mark Probst  <mark.probst@gmail.com>
9859
9860         * object.c, class-internals.h: Also create remoting trampolines
9861         for generic methods.  Pass the domain to the remoting trampoline
9862         creation function, too.
9863
9864 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
9865
9866         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
9867
9868 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
9869
9870         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
9871         Vector4ui.
9872
9873 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
9874
9875         * assembly.c:
9876         * locales.c: remove the use of g_strdown. Fixes bug #322313.
9877
9878 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
9879
9880         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
9881         for the least possible amount of time (extending the fix in r113458).
9882
9883 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
9884
9885         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
9886
9887 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
9888
9889         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
9890         as possible simd intrinsic types.
9891         Optimized the test to check for the common prefix first.
9892
9893 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
9894
9895         * class.c: back out part of a broken optimization committed on
9896         May 23th (bug #433908).
9897
9898 2008-10-09  Mark Probst  <mark.probst@gmail.com>
9899
9900         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
9901         Win32.  Should fix #432388 for most cases until we have the new
9902         profiler on Win32.
9903
9904 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
9905
9906         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
9907         instead of using inst->id so the hash is stable for AOT.
9908
9909 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
9910
9911         * appdomain.c:
9912         * icall.c: create a .ini file for shadow-copied assemblies that
9913         contains the location of the original assembly. Use this to return the
9914         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
9915         Also fix the number of '/' for windows when returning the CodeBase.
9916         Fixes bug #430920.
9917
9918 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
9919
9920         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
9921
9922         Code is contributed under MIT/X11 license.
9923
9924 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
9925
9926         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
9927           if if the class vtable needs initialized.
9928
9929         Code is contributed under MIT/X11 license.
9930
9931 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
9932
9933         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
9934           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
9935           STRING->BSTR, and CLASS->INTERFACE.
9936
9937         Code is contributed under MIT/X11 license.
9938
9939 2008-10-07  Marek Habersack  <mhabersack@novell.com>
9940
9941         * sysmath.h: changed the declaration of the
9942         ves_icall_System_Math_Round2 icall by adding an extra
9943         away_from_zero parameter.
9944
9945         * sysmath.c (ves_icall_System_Math_Round2): added support for
9946         away from zero rounding. The icall now takes an extra boolean
9947         parameter to signal that away from zero operation is requested.
9948
9949 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
9950
9951         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
9952         the delegate klass so it can work with full-aot.
9953         (mono_marshal_get_delegate_end_invoke): Ditto.
9954         (mono_marshal_get_delegate_invoke): Ditto.
9955
9956 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
9957
9958         * gc.c, attach.h, attach.c: remove a bad pattern:
9959         add_finalizer_callback () is not implemented correctly, it can't
9960         without adding more overhead to the finalizer loop and it's not
9961         even needed, since we know exactly what we need to call, so there is
9962         no need to do so through an expensive function pointer.
9963
9964 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
9965
9966         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
9967         for the no-gc case.
9968         * attach.c (mono_attach_init): Remove the #ifdef.
9969
9970 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
9971
9972         * attach.c (mono_attach_init): Don't use
9973         mono_gc_add_finalizer_thread_callback when compiling without GC.
9974         Fixes #432306.
9975         
9976         Code is contributed under MIT/X11 license.
9977
9978 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
9979
9980         * class.c (mono_class_create_from_typedef): Remove the 
9981         #ifndef DISABLE_SIMD stuff.
9982
9983 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
9984
9985         * class-internals.h (MonoClass): Added simd_type bit field.
9986
9987         * class.c (mono_class_create_from_typedef): Check if type is a simd
9988         intrinsic.
9989
9990 2008-10-03  Mark Probst  <mark.probst@gmail.com>
9991
9992         * object.c (mono_method_add_generic_virtual_invocation): Only add
9993         instantiations to the thunk whose count is at least as large as
9994         the threshold.
9995
9996 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
9997
9998         * icall.c: changed the Type of the exception thrown when trying to
9999         invoke a constructor on an abstract class. Part of the fix for bug
10000         #324185.
10001
10002 2008-10-02  Mark Probst  <mark.probst@gmail.com>
10003
10004         * class.c, class-internals.h (mono_method_get_vtable_index): New
10005         function which returns the index into the vtable and properly
10006         handles inflated virtual generic methods.
10007
10008 2008-10-01  Mark Probst  <mark.probst@gmail.com>
10009
10010         * object.c, domain.c, object-internals.h, domain-internals.h:
10011         Generalize IMT thunk machinery to also handle thunks for virtual
10012         generic method invokes.  When a virtual generic method is invoked
10013         more than a number of times we insert it into the thunk so that it
10014         can be called without lookup in unmanaged code.
10015
10016         * generic-sharing.c, class-internals.h: Fetching a
10017         MonoGenericInst* for a method from an (M)RGCTX.
10018
10019 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
10020
10021         * marshal.c (emit_marshal_string): Applied a variant of a patch by
10022         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
10023         marshalling. Fixes #431304.
10024
10025 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
10026
10027         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
10028           handle when ref is specified without In or Out.
10029
10030         Code is contributed under MIT/X11 license.
10031
10032 2008-09-30  Mark Probst  <mark.probst@gmail.com>
10033
10034         * loader.c (mono_get_method_constrained): Don't expand method with
10035         the class's context, because it's already a method of that class.
10036
10037 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
10038
10039         * attach.c : should be correct build fix.
10040
10041 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
10042
10043         * attach.c: Fix the previous change.
10044
10045 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
10046
10047         * attach.c : quick w32 build fix.
10048
10049 2008-09-27  Miguel de Icaza  <miguel@novell.com>
10050
10051         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
10052         crashes MonoDevelop: #430455.
10053
10054 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
10055
10056         * domain-internals.h (struct _MonoDomain): Move most fields used only by
10057         the JIT do MonoJitDomainInfo in ../mini/mini.h.
10058
10059         * domain.c: Remove initialization/cleanup of the removed fields.
10060
10061 2008-09-27  Mark Probst  <mark.probst@gmail.com>
10062
10063         * class.c (mono_class_generic_sharing_enabled): Enable generic
10064         code sharing for PPC.
10065
10066 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
10067
10068         * attach.c : Fixing the Windows builds.
10069
10070         Code is contributed under MIT/X11 license.
10071
10072 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
10073
10074         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
10075         the default generic sharing mode to 'all'.
10076
10077 2008-09-25  Mark Probst  <mark.probst@gmail.com>
10078
10079         * generic-sharing.c, class-internals.h: New function for checking
10080         whether a method needs a static RGCTX invoke wrapper.  A few
10081         funtions moved from mini/generic-sharing.c.
10082
10083         * icall.c: New function used.
10084
10085 2008-09-25  Mark Probst  <mark.probst@gmail.com>
10086
10087         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
10088         Static RGCTX invoke wrapping applies to value type methods, too.
10089
10090         * class.c (mono_class_setup_vtable_general): In generic-shared
10091         value types, wrap methods with a static RGCTX invoke wrapper.
10092
10093 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
10094
10095         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
10096         osx build.
10097
10098 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
10099
10100         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
10101         register a callback which is called when the finalizer thread is woken
10102         up.
10103         (finalizer_thread): Call the callback if it exists.
10104
10105         * attach.h attach.c: New files, implementing the attach mechanism.
10106
10107         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
10108         
10109         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
10110         by the previous change.
10111
10112 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
10113
10114         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
10115         loader.c, marshal.c, metadata-internals.h, metadata.c,
10116         method-builder.c, object.c, reflection.c: introduced specific functions
10117         to allocate from the domain and image mempools and cleaned up most of
10118         the code to use them (still missing a few in reflection.c).
10119         Keep the loader bytes counter updated.
10120
10121 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
10122
10123         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
10124         loader-related counters.
10125
10126 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
10127
10128         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
10129         added more MS-compatible counters.
10130
10131 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
10132
10133         * class.c (mono_class_setup_fields): Call setup_fields before accessing
10134         class->blittable. Fixes #428217.
10135
10136 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
10137
10138         * reflection.c (mono_image_get_field_on_inst_token): Call 
10139         field_encode_signature () since that handles custom modifiers too.
10140         Fixes #424663.
10141
10142 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
10143
10144         * reflection.c (add_custom_modifiers): New helper function to merge custom
10145         modifiers stored in objects to a MonoType.
10146         (fieldref_encode_signature): Encode custom modifiers.
10147         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
10148         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
10149
10150 2008-09-19  Kornél Pál  <kornelpal@gmail.com>
10151
10152         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
10153         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
10154         64-bit IL only images because imports are not resolved for IL only images.
10155         Special thanks to Bill Holmes for finding this bug and testing the patch.
10156         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
10157
10158         Contributed under MIT/X11 license.
10159
10160 2008-09-19  Miguel de Icaza  <miguel@novell.com>
10161
10162         * mono-config.c (dllmap_start): Add support for the bits keyword
10163         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
10164
10165 2008-09-19  Mark Probst  <mark.probst@gmail.com>
10166
10167         * reflection.c (inflate_mono_method): When the class the method is
10168         to be inflated for is itself not inflated, just return the method.
10169
10170 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
10171
10172         * mono-perfcounters.c: use more user friendly process instance names.
10173
10174 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
10175
10176         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
10177           handle "[in] ref" and "[in][out] ref" cases.
10178
10179         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
10180           to mono_mb_create_method.  This was causing problems calling native to
10181           managed passing Variants by value.
10182
10183         Code is contributed under MIT/X11 license.
10184
10185 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
10186
10187         * class.c (can_access_internals): Call mono_assembly_load_friends ()
10188         before accessing the friend_assembly_names field.
10189
10190         * assembly.c (mono_assembly_load_friends): Make this callable multiple
10191         times.
10192         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
10193         called lazily when it is needed.
10194
10195         * metadata-internals.h (struct _MonoAssembly): Add 
10196         'friend_assembly_names_inited' flag.
10197
10198 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
10199
10200         * mono-perfcounters-def.h: fix the types of a few counters.
10201         * mono-perfcounters.c: implemented the instance names getter
10202         and a few bugfixes.
10203
10204 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
10205
10206         * culture-info-table.h : regenerated.
10207
10208 2008-09-17  Robert Jordan  <robertj@gmx.net>
10209
10210         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
10211         context bound objects. Fixes #415577.
10212
10213         Code is contributed under MIT/X11 license.
10214
10215 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
10216
10217         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
10218         implementation (bug #423582).
10219
10220 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
10221
10222         * object.c (mono_object_get_virtual_method): Handle the case method->slot
10223         is not set. Fixes #426309.
10224
10225 2008-09-16  Jb Evain  <jbevain@novell.com>
10226
10227         * class.c (mono_class_from_name): fix the exported type look up
10228         when the type is defined in a referenced assembly.
10229
10230 2008-09-16  Jb Evain  <jbevain@novell.com>
10231
10232         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
10233         increment the next index counter on each iteration to make that work
10234         for more than one type forwarder. Unmanaged part to fix #422929.
10235
10236 2008-09-15  Mark Probst  <mark.probst@gmail.com>
10237
10238         * object-internals.h: enum ComInterfaceType in
10239         MonoInterfaceTypeAttribute is guint32, not guint16.
10240
10241 2008-09-12  Mark Probst  <mark.probst@gmail.com>
10242
10243         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
10244         writing code.
10245
10246 2008-09-11  Mark Probst  <mark.probst@gmail.com>
10247
10248         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
10249         not gboolean.
10250
10251 2008-09-11  Mark Probst  <mark.probst@gmail.com>
10252
10253         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
10254         Endianness fixes for MonoSymbolFileOffsetTable.
10255
10256 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
10257
10258         * process.c (complete_path) : Removing quotes from the 
10259           input path.  The glib file routines do not handle file paths
10260           that have quotes around them.
10261
10262         Code is contributed under MIT/X11 license.
10263
10264 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
10265
10266         * socket-io.h : Adding a comment to provide locations where 
10267           changes to MonoSocketAsyncResult need to be synced.
10268
10269         Code is contributed under MIT/X11 license.
10270
10271 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
10272
10273         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
10274         parameters as well. Fixes #425001.
10275
10276 2008-09-08  Miguel de Icaza  <miguel@novell.com>
10277
10278         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
10279         windows build.
10280
10281 2008-09-07  Miguel de Icaza  <miguel@novell.com>
10282
10283         * console-io.c: Add support for tracking the window size if it
10284         changes.
10285
10286         The setup is very simple: the TtySetup function will now return a
10287         pointer to a location in memory that tracks the current console
10288         size.  The managed code checks its current value every time its
10289         queried against the last value set, and updates accordingly.
10290
10291         With this setup we can work with multiple consoles, and we do not
10292         require to poke into managed code from a signal handler.
10293
10294         Additionally, the environment for COLUMNS and LINES is now handled
10295         in unmanaged code.
10296
10297         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
10298
10299 2008-09-07  Mark Probst  <mark.probst@gmail.com>
10300
10301         * marshal.c (mono_type_native_stack_size): Treat
10302         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
10303
10304 2008-09-04  Jb Evain  <jbevain@novell.com>
10305
10306         * class.c (mono_class_is_assignable_from): fix assignability of nullables
10307         to nullables.
10308
10309 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
10310
10311         * verify.c (verify_type_compatibility_full): Revert change
10312         to allow converting a native int to unmanaged pointer be verifiable
10313         under non-strict mode.
10314         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
10315
10316         * verify.c: Added some TODOs.
10317
10318 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
10319
10320         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
10321           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
10322           Changed to use GlobalAlloc for the memory returned on Windows platforms.
10323
10324         Code is contributed under MIT/X11 license.
10325
10326 2008-09-02  Jb Evain  <jbevain@novell.com>
10327
10328         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
10329
10330 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
10331
10332         reflection.c (typebuilder_setup_fields): Handle classes with
10333         explicit size.
10334
10335 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
10336
10337         class.c (mono_class_setup_events): Add memory barrier due to
10338         double checked locking.
10339         
10340         class.c (mono_class_setup_properties): Same.
10341
10342 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
10343
10344         * class.c (mono_class_is_assignable_from): Fix the build.
10345         
10346         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
10347         before accessing klass->interface_bitmap. Fixes #421744.
10348
10349 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
10350
10351         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
10352         the runtime into no-exec mode, useful when running the AOT compiler.
10353
10354         * appdomain.c gc.c object.c: Avoid executing managed code when running
10355         in no-exec mode.
10356         
10357         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
10358
10359         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
10360         special case when the mono_assembly_loaded () returns NULL because the 
10361         search hook is not installed.
10362
10363 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
10364
10365         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
10366         crashes in bstr marshalling on linux.
10367
10368 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
10369
10370         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
10371         with more than one parameter.
10372
10373 2008-08-24  Miguel de Icaza  <miguel@novell.com>
10374
10375         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
10376         start/stop flow control as well when turning off ICANON (allows
10377         C-s and C-q to be read by Console.ReadKey).
10378
10379 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
10380
10381         * class.c (mono_class_init): Move the initialization of nested classes
10382         into mono_class_get_nested_types (). Fixes #418433.
10383
10384         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
10385         flag.
10386
10387         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
10388         iterating tough the nested classes of a class.
10389
10390 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
10391
10392         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
10393         on arm.
10394
10395 2008-08-22  Miguel de Icaza  <miguel@novell.com>
10396
10397         * console-io.c (sigcont_handler): Support signal chaining for
10398         SIGCONT.
10399
10400         (console_set_signal_handlers): Use best practices with sigaction,
10401         clear the structure before using it. 
10402
10403 2008-08-22  Robert Jordan  <robertj@gmx.net>
10404
10405         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
10406         Fix the Windows build.
10407
10408 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
10409
10410         * class.c (mono_class_generic_sharing_enabled): Make the default
10411         sharing mode 'corlib'.
10412
10413 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
10414
10415         * console-io.c (console_set_signal_handlers): Fix a warning.
10416
10417         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
10418         method normally, the JIT will take care of avoiding recursion.
10419
10420 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
10421
10422         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
10423
10424         Code is contributed under MIT/X11 license.
10425
10426 2008-08-20  Miguel de Icaza  <miguel@novell.com>
10427
10428         * console-io.c (sigcont_handler): We need to restore the entire
10429         termios state, not only the original settings, as things like echo
10430         can be controlled after this (Booish exposes this issue with its
10431         own ReadLine implementation).
10432
10433         Additionally, we need to set the terminal back into keypad_xmit
10434         mode.
10435         
10436         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
10437         string as a paramter as well.   Otherwise we get different
10438         keyboard sequences.
10439
10440 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
10441
10442         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
10443         delegates with byref out parameter passing. Fixes #351520.
10444
10445         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
10446         a generic context.
10447         (mono_type_get_desc): Add the type arguments for GENERICINST.
10448         (mono_method_full_name): Stringify the class name using mono_type_full_name
10449         so it picks up generic arguments.
10450
10451 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
10452
10453         * console-io.c: Removed debug output.
10454
10455 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
10456
10457         reflection.c (mono_reflection_create_runtime_class): Alloc
10458         the nested classes linked list using the dynamic image mempool.
10459         Fixes leak in corlib compilation.
10460
10461 2008-08-19  Miguel de Icaza  <miguel@novell.com>
10462
10463         * console-io.c: Fix incredibly annoying behavior on the console
10464         after resuming execution after control-z.   This affected every
10465         console application.
10466
10467 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
10468
10469         * mempool-internals.h: Header for mono private mempool functions. The first
10470         two function are for allocating glib linked lists using pools.
10471
10472         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
10473
10474         * Makefile.am: Added mempool-internals.h.
10475
10476 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
10477
10478         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
10479         (mono_domain_free): Ditto.
10480
10481         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
10482         be used by the JIT to store its domain-specific information, instead of putting
10483         it directly into MonoDomain.
10484
10485         * domain.c (mono_install_create_domain_hook): New helper function to install
10486         a hook which initializes domain->runtime_info.
10487
10488         * domain.c (mono_install_free_domain_hook): Ditto.
10489         
10490 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
10491
10492         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
10493         asserting if the ares parameter is null.
10494
10495         * mono-perfcounters.c: Fix warnings.
10496
10497         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
10498         is not needed, don't check for interruptions either.
10499         (mono_marshal_get_delegate_end_invoke): Ditto.
10500
10501 2008-08-15  Marek Habersack  <mhabersack@novell.com>
10502
10503         * mono-perfcounters.c (predef_readonly_counter): added support for
10504         reading the ASP.NET Requests Queued counter from another process.
10505
10506 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
10507
10508         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
10509         MonoImage to simplify the AOT code.
10510
10511 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
10512
10513         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
10514         marshalling. Fixes #416078.
10515
10516 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
10517         
10518         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
10519         it is set, looking up the icall address is deferred to the JIT, since 
10520         in embedded scenarios, the icall might not be registered in the runtime
10521         doing the AOT compilation. Backported from the 2.0 branch.
10522
10523 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
10524
10525         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
10526         Fixes #415621.
10527
10528 2008-08-05  Marek Habersack  <mhabersack@novell.com>
10529
10530         * Makefile.am: added support for cross-compilation.
10531
10532 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
10533
10534         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
10535
10536 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
10537
10538         * mono-perfcounters.c: jitted methods and jitted bytes counters.
10539
10540 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
10541
10542         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
10543         mono-perfcounters.c: performance counters implementation.
10544
10545 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
10546
10547         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
10548         to gpointer, letting the AOT code decide what to store in it.
10549
10550 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
10551
10552         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
10553           mono_class_setup_methods if the methods are not initialized.
10554
10555         Code is contributed under MIT/X11 license.
10556
10557 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
10558
10559         * verify.c: Remove some debug code I commited by accident.
10560
10561         * verify.c (mono_method_is_valid_in_context): Change the return value
10562         to make possible to distinguish between invalid and unverifiable.
10563
10564         * verify.c (verifier_load_method): Don't return NULL for unverifiable
10565         methods.
10566
10567 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
10568
10569         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
10570         constraints. Fixes regression in gtest-253.
10571
10572 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
10573
10574         * verify.c (mono_verifier_verify_class): Don't allow generic types
10575         with explicit layout.
10576
10577         * verify.c (mono_method_verify): Check locals and argument types.
10578
10579 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
10580
10581         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
10582         wait if the thread is in StopRequested state.
10583
10584         * class.c (mono_class_from_name): Refactor the module searching code into
10585         a separate function so it can be reused in the AOT case too.
10586
10587 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
10588
10589         * verify.c (mono_type_is_valid_in_context): Improve the error message.
10590         Check both the type and it's generic type definition for loader errors.
10591         
10592         * verify.c (mono_method_is_valid_in_context): Don't generate another
10593         error when a type errors occur, this leads to the wrong exception been
10594         thrown.
10595
10596 2008-07-28  Dick Porter  <dick@ximian.com>
10597
10598         * icall-def.h
10599         * process.c
10600         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
10601         New internal calls to duplicate and close a process handle.
10602
10603 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
10604
10605         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
10606
10607 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
10608
10609         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
10610
10611 2008-07-27  Robert Jordan  <robertj@gmx.net>
10612
10613         * class.c (mono_class_init): Don't compute class.has_finalize for
10614         valuetypes. Fixes #412477.
10615
10616 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
10617
10618         * verify.c: Implement constraint equivalence checking.
10619         This is required when a generic parameter is used as
10620         argument to a constrained one.
10621
10622         Fixes #410637.
10623
10624 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
10625
10626         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10627
10628         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
10629
10630         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
10631         synch with managed object layout.
10632
10633 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
10634
10635         * verify.c (do_branch_op): Handle valuetypes and generic
10636         arguments properly.
10637
10638         * verify.c (do_cmp_op): Same.
10639
10640         Fixes #410383.
10641
10642 2008-07-24  Mark Probst  <mark.probst@gmail.com>
10643
10644         * generic-sharing.c: Fix memory leaks.
10645
10646         * class.c, class-internals.h: Make
10647         mono_class_inflate_generic_type_with_mempool() non-static.
10648
10649 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
10650
10651         * pedump.c (dump_verify_info): Dump full class name.
10652
10653 2008-07-24  Mark Probst  <mark.probst@gmail.com>
10654
10655         * generic-sharing.c: Removed some old code that didn't do anything.
10656
10657 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
10658         * profiler.c: Added runtime_initialized_event,
10659         mono_profiler_install_runtime_initialized and
10660         mono_profiler_runtime_initialized. This new hook tells the profiler
10661         when the runtime is sufficiently initialized to be able to call
10662         mono_thread_attach on the root appdomain.
10663         * profiler.h, profiler-private.h: Likewise.
10664
10665 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
10666
10667         * verify.c (do_cast): Do boxing for generic arguments as well.
10668
10669         * class.c (is_nesting_type): Drop generic instantiations before
10670         checking for nesting.
10671
10672         * class.c (can_access_instantiation): Allow access to generic
10673         arguments.
10674
10675 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
10676
10677         * verify.c (verify_class_for_overlapping_reference_fields):
10678         On some cases, the field size might be zero, guard against that.
10679         Fix the explicit layout check to work as expected.
10680
10681 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
10682
10683         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
10684         mono_thread_resume () during shutdown, since the thread we want to abort
10685         might be suspended.
10686
10687 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
10688
10689         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
10690         warning.
10691
10692         * debug-mono-symfile.c: Fix a warning.
10693
10694         * mono-perfcounters.c (get_cpu_times): Fix a warning.
10695
10696         * object.c (mono_class_vtable): Check if exception_type is set, and return
10697         NULL as defined by the function comments.
10698
10699 2008-07-22  Mark Probst  <mark.probst@gmail.com>
10700
10701         * mempool.c: Use malloc for every single mempool allocation if the
10702         configure option is set.  This makes it easier to track mempool
10703         allocations with tools like Valgrind.
10704
10705 2008-07-22  Jb Evain  <jbevain@novell.com>
10706
10707         * reflection.c (create_dynamic_mono_image): emit the same
10708         metadata version that SL2 does when creating a SL2 image.
10709
10710 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
10711
10712         * icall-def.h:
10713         * icall.c: New icall System.Enum:get_hashcode. This function
10714         avoids the overhead of boxing the enum to the underlying type.
10715
10716 2008-07-21  Mark Probst  <mark.probst@gmail.com>
10717
10718         * reflection.c (mono_method_get_object): Don't let static RGCTX
10719         invoke wrappers get into MonoReflectionMethods.
10720
10721 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
10722
10723         * object-internals.h:
10724         * object.c: New mono_runtime_class_init_full function
10725         that makes throwing the exception optinal.
10726
10727         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
10728         for the case where the exception object is supplied.
10729
10730 2008-07-16  Kornél Pál  <kornelpal@gmail.com>
10731
10732         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
10733         old ld versions.
10734
10735         Contributed under MIT/X11 license.
10736
10737 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
10738
10739         * string-icalls.c (ves_icall_System_String_InternalSplit):
10740         Optimize array allocation by caching the MonoClass of the
10741         array type.
10742
10743         * icall.c (ves_icall_Type_GetMethodsByName): Same.
10744
10745         * reflection.c (mono_param_get_objects): Same.
10746
10747 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
10748
10749         * icall-def.h:
10750         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
10751         It inflates the given type using the class context.
10752
10753 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
10754
10755         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
10756         the vtable if it already exists.
10757
10758         * object-internals.h: Add mono_class_try_get_vtable as part of the
10759         internal API.
10760
10761         * reflection.c (mono_type_get_object): Use the MonoObject from the
10762         vtable when possible. Reduces locking contention on reflection heavy
10763         code.
10764
10765 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
10766
10767         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
10768         g_bit_nth_msf () since that macro is not implemented in eglib.
10769
10770 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
10771
10772         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
10773         on platforms which do not support it.
10774
10775 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
10776
10777         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
10778
10779 2008-07-11  Martin Baulig  <martin@ximian.com>
10780
10781         * mono-debug-debugger.h
10782         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
10783
10784         * mono-debug-debugger.c
10785         (_mono_debugger_interruption_request): New global volatile variable.
10786         (mono_debugger_check_interruption): New public function.
10787
10788         * threads.c
10789         (mono_thread_current_check_pending_interrupt): Call
10790         mono_debugger_check_interruption().
10791         (mono_thread_interruption_checkpoint_request): Likewise.
10792
10793 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
10794
10795         * verify.c: Add more type checks for loaded types. Verify the result
10796         handle from ldtoken.
10797
10798 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
10799
10800         * loader.c (field_from_memberref): Don't crash if the field
10801         wasn't found.
10802
10803 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
10804
10805         * verify.c: Verify if type and method instantiations
10806         don't have invalid VAR or MVAR arguments.
10807
10808 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
10809
10810         * verify.c: Fix double free of function pointer list.
10811
10812 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
10813
10814         * object.c (mono_string_to_utf8): Comment the new code as it
10815         breaks under eglib.
10816
10817 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
10818
10819         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
10820
10821 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
10822
10823         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
10824           is not throw too many times.
10825
10826         Code is contributed under MIT/X11 license.
10827
10828 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
10829
10830         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
10831         debugging is turned off.
10832
10833 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
10834
10835         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
10836
10837 2008-07-04  Mark Probst  <mark.probst@gmail.com>
10838
10839         * class-internals.h, class.c: Added new generic sharing option:
10840         Share only stuff in System.Collections.Generic, which is now the
10841         default.
10842
10843 2008-07-04  Mark Probst  <mark.probst@gmail.com>
10844
10845         * generic-sharing.c, class-internals.h: New function for getting a
10846         generic method in a generic class given the corresponding method
10847         for a different instantiation of the class.  Partly refactored
10848         from mini-trampolines.c.
10849
10850         * class.c: Make sure generic methods have a class_inst if they are
10851         part of a generic class.
10852
10853         * metadata.c (mono_type_stack_size_internal): Handle type
10854         variables.
10855
10856 2008-07-04  Mark Probst  <mark.probst@gmail.com>
10857
10858         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
10859         Signifies whether information on the this/vtable/mrgctx variable
10860         is available.
10861
10862 2008-07-04  Mark Probst  <mark.probst@gmail.com>
10863
10864         * object.c, object-internals.h, icall.c: New function
10865         mono_delegate_ctor_with_method(), which does the same as
10866         mono_delegate_ctor(), but takes an explicit method argument
10867         instead of taking the method from the jit info.
10868
10869         * marshal.c: When creating a delegate with an inflated method take
10870         the "this" argument as the target class for the castclass.
10871
10872 2008-07-03  Mark Probst  <mark.probst@gmail.com>
10873
10874         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
10875         mono_jit_info_table_find() to perform very badly in some cases.
10876
10877 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
10878
10879         * icall.c (type_from_typename): Handle 'string'.
10880
10881         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
10882         wrappers into the wrapper_hash, since the key is not a MonoMethod.
10883
10884 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
10885
10886         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
10887
10888         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
10889         number of available managed allocator types.
10890
10891         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
10892         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
10893
10894 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
10895
10896         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
10897         which is a low level lock protecting just the 'jit_code_hash' hash table.
10898
10899         * domain.c: Initialize+cleanup jit_code_hash_lock.
10900         
10901 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
10902
10903         * coree.c (mono_load_coree): Set coree_module_handle global variable only
10904         after initialization.
10905
10906         * coree.h: Make MonoFixupExe internal.
10907
10908         Contributed under MIT/X11 license.
10909
10910 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
10911
10912         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
10913         because that is platform independent. Check NumberOfRvaAndSizes in PE32
10914         as well.
10915         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
10916         image being loaded is a CLI image and _CorValidateImage gets called.
10917
10918         * coree.h: Add MonoLoadImage.
10919
10920         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
10921         instead of LoadLibrary.
10922
10923         Contributed under MIT/X11 license.
10924
10925 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
10926
10927         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
10928         for any primitive type.
10929
10930 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
10931
10932         * object.c (mono_array_new_specific): Optimize this and the other allocation
10933         functions a bit.
10934         
10935         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
10936         domains too if mono_dont_free_domains is set.
10937
10938         * domain-internals.h (mono_dont_free_domains): New internal option controlling
10939         whenever to free appdomain data after it has been unloaded.
10940
10941         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
10942         
10943 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
10944
10945         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
10946         (mono_method_get_equivalent_method): Fix a warning.
10947
10948         * object.c (mono_message_init): Avoid looking up array types for each call.
10949
10950 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
10951
10952         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
10953         call.
10954
10955         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
10956         even more.
10957
10958         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
10959         each iteration.
10960
10961         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
10962         fields of an enum.
10963
10964 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
10965
10966         * object.c (mono_value_box): Fix boxing of nullables.
10967
10968 2008-06-26  Kornél Pál  <kornelpal@gmail.com>
10969
10970         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
10971         mono_module_handle that is defined by the linker; no initialization required.
10972         * coree.h: Remove mono_module_handle, add __ImageBase, update
10973         mono_image_open_from_module_handle.
10974         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
10975         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
10976         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
10977         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
10978         to 4 GB away from image base address. IA64 version is not tested but was very
10979         easy to implement and should work if we ever need it.
10980         * domain.c (mono_init_internal): Avoid system error message boxes.
10981         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
10982         with has_entry_point. Handle do_mono_image_load fauilre correctly.
10983         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
10984         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
10985         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
10986
10987         Contributed under MIT/X11 license.
10988
10989 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
10990
10991         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
10992         as part of the private mono API.
10993         
10994         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
10995         Do proper argument checking for methods that belong to generic classes.
10996         Do proper type resolution for GMFH/2.
10997         Fixes #377324.
10998         
10999 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
11000
11001         * verify.c (do_switch): Fix a memory corruption bug with
11002         the jump index is out of bound.
11003
11004 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
11005
11006         * verify.c: Disable debug code.
11007
11008 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
11009
11010         * reflection.c (mono_image_get_methodbuilder_token): Use
11011         mono_image_get_methodspec_token_for_generic_method_definition
11012         instead of mono_image_get_memberref_token. We cache more memberef
11013         entries now.
11014
11015 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
11016
11017         * verify.c: Inflate exception clause types.
11018         Fixes #402606.
11019         
11020 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
11021
11022         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
11023         name.
11024
11025         * reflection.c (mono_image_get_ctorbuilder_token): Same.
11026
11027         * reflection.c (mono_image_create_method_token): Same.
11028
11029 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
11030
11031         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
11032         It does the same as mono_image_get_methodref_token but works on
11033         MethodBuilder.
11034
11035         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
11036         and always generate a methodspec. This follows the old behavior and fixes
11037         the regressions in System.Core. 
11038
11039 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
11040
11041         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
11042         don't event mono_class_get () succeeds. Fixes #402182.
11043
11044 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
11045
11046         * metadata-internals.h: Added MonoDynamicImage::methodspec
11047         hashtable to store methodspec tokens created for MethodBuilders.
11048
11049         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
11050         MethodBuilders as open instantiations if a methodspec was requested.
11051
11052         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
11053
11054         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
11055
11056         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
11057
11058         Fixes bug #349190.
11059
11060 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
11061
11062         * loader.c (method_from_methodspec): Avoid crashing if the
11063         method lookup fails.
11064
11065 2008-06-20  Dick Porter  <dick@ximian.com>
11066
11067         * socket-io.c (get_socket_assembly): Cope with Moonlight network
11068         classes being in a different assembly.  Fixes bug 399184.
11069
11070 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
11071
11072         * loader.c (mono_loader_init): Make this callable multiple times.
11073         (mono_dllmap_insert): Call mono_loader_init () so this works even before
11074         the runtime is initialized. Fixes #401755.
11075
11076 2008-06-19  Dick Porter  <dick@ximian.com>
11077
11078         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
11079         Fixes bug 349688.
11080
11081 2008-06-19  Dick Porter  <dick@ximian.com>
11082
11083         * socket-io.c:
11084         * icall-def.h: Implement Socket generic Send() and Receive()
11085         methods.  Fixes bug 395168.
11086
11087 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
11088
11089         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
11090
11091         Contributed under MIT/X11 license.
11092
11093 2008-06-18  Martin Baulig  <martin@ximian.com>
11094
11095         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
11096         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
11097         set to 80.0.  The debugger <-> runtime interface is now frozen as
11098         well.   
11099
11100         * mono-debug.c
11101         (mono_debug_debugger_version): Bump to 4.
11102
11103 2008-06-18  Martin Baulig  <martin@ximian.com>
11104
11105         * debug-mono-symfile.c
11106         (load_symfile): Don't check the minor version.
11107
11108         * debug-mono-symfile.h: Bump the version number to 50.0.
11109
11110 2008-06-18  Martin Baulig  <martin@ximian.com>
11111
11112         * debug-mono-symfile.c
11113         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
11114         minimum required version.
11115
11116 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
11117
11118         * reflection.c (mono_custom_attrs_from_property): Fix support for
11119         retriveving cattrs of dynamic inflated generic types.
11120
11121         * reflection.c (mono_custom_attrs_from_event): Same.
11122
11123         * reflection.c (mono_custom_attrs_from_field): Same;
11124
11125         * reflection.c (typebuilder_setup_events): Same cattrs of events.
11126
11127         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
11128         Moved to metadata.c.
11129
11130         * metadata.c: New functions to retrive the equivalent field, event
11131         of property from the generic type definition.
11132
11133         * metadata-internals.h: Added new functions from metadata.c.
11134
11135 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
11136
11137         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
11138         to cached in a mempool is used.
11139
11140         * metadata.c (free_generic_class): In some situations field generic_info type
11141         is not properly dup'ed and leads to double free'ing.
11142
11143         Fixes #400643.
11144
11145 2008-06-17  Mark Probst  <mark.probst@gmail.com>
11146
11147         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
11148         this arguments (will be needed later for generic methods).
11149         Collect stats.
11150
11151 2008-06-17  Mark Probst  <mark.probst@gmail.com>
11152
11153         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
11154         Create a static RGCTX invoke wrapper for methods which require it.
11155
11156 2008-06-17  Mark Probst  <mark.probst@gmail.com>
11157
11158         * object.c, class-internals.h: New function for checking whether
11159         an individual field is special static.
11160
11161 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
11162
11163         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
11164         linear search since the table is sorted.
11165
11166         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
11167         Fixes #324180.
11168
11169 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
11170
11171         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
11172         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
11173
11174         * gc.c (mono_domain_finalize): Allow an infinite timeout.
11175
11176         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
11177         
11178         * threads.c (mono_thread_request_interruption): Get rid of locking, use
11179         InterlockedCompareExchange to query and modify 
11180         thread->interruption_requested.
11181
11182         * object-internals.h (struct _MonoThread): Change interruption_requested
11183         to a gint32 so it can be modified by atomic operations. Add 
11184         'critical_region_level' from the managed side, change small_id to a guint32,
11185         add new set of 'unused' fields.
11186
11187         * appdomain.c: Bump corlib version.
11188
11189 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
11190
11191         * class.c (mono_class_from_name): Search modules as well. Fixes
11192         #322332.
11193
11194 2008-06-13  Mark Probst  <mark.probst@gmail.com>
11195
11196         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
11197         templates.  Templates are generalized with an additional type_argc
11198         argument.  RGCTX templates have type_argc==0, MRGCTX templates
11199         have type_argc>0.
11200
11201         * domain-internals.h, domain.c: New hash table for looking up
11202         MRGCTXs.
11203
11204         * metadata.c, metadata-internals.h: Rename hash and equal
11205         functions for MonoGenericInst's and make them public.
11206
11207         * class-internals.h: New data structures for the MRGCTX.  Macros
11208         for distinguishing slots in the RGCTX and the MRGCTX.
11209
11210 2008-06-13  Mark Probst  <mark.probst@gmail.com>
11211
11212         * object.c (mono_method_get_imt_slot): Put the same methods of
11213         different instantiations of the same generic interface in the same
11214         IMT slots, to make generic sharing simpler.
11215
11216 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
11217
11218         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
11219
11220         * metadata.c (mono_metadata_field_info_with_mempool): Added.
11221         This function works just like mono_metadata_field_info, but
11222         accept a mempool as argument to be used allocating memory.
11223
11224         * marshal.c (mono_marshal_load_type_info): Use new function
11225         to load marshal data into image mempool.
11226
11227 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
11228
11229         * class.c (mono_class_inflate_generic_type_with_mempool):
11230         This function allows to inflate a generic type using
11231         a mempool.
11232
11233         * class.c (inflate_generic_type): Take a mempool as argument
11234         and use it to do type dup'ing.
11235
11236         * class.c (mono_class_setup_fields): Field type for generic
11237         generic classes are allocated from the image mempool.
11238
11239         * metadata.c (free_generic_class): Inflated field type is
11240         now allocated in the image mempool.
11241
11242 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
11243
11244         * threads.c (thread_cleanup): Free MonoThread::name.
11245
11246 2008-06-12  Marek Habersack  <mhabersack@novell.com>
11247
11248         * appdomain.c (ensure_directory_exists): avoid unnecessary
11249         mkdir(2) calls when the shadow directory already exists.
11250         (mono_make_shadow_copy): copy also satellite assemblies from the
11251         private bin directories.
11252
11253 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
11254
11255         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
11256         
11257         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
11258         a page boundary. Fixes #396219.
11259
11260 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11261
11262         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
11263         due to double-checked locking.
11264
11265 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11266
11267         * assembly.c (build_assembly_name): Release memory on failure.
11268
11269         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
11270
11271 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11272
11273         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
11274         memory on failure.
11275
11276 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11277
11278         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
11279         memory on failure.
11280
11281 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11282
11283         * loader.c (field_from_memberref): Check if field signature type is equal
11284         to the non-inflated type of the field. Fixes #398980.
11285
11286 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
11287
11288         * assembly.c (mono_assembly_load_from_full): Call 
11289         mono_assembly_load_friends () outside the assemblies lock, since it can
11290         acquire the loader lock. Fixes #323696.
11291
11292         * reflection.c (resolve_object): Inflate the inst with the context for
11293         FieldOnTypeBuilderInst. Fixes #399010.
11294
11295 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11296
11297         * reflection.c (mono_image_get_field_on_inst_token): Don't
11298         inflate the field to encode it's signature. If it's a
11299         VAR or MVAR it should stay that way in the signature.
11300         Fixes #399047.
11301
11302 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11303
11304         * reflection.c (resolve_object): Release memory of inflated types.
11305
11306 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11307
11308         * loader.c (mono_method_get_signature_full): Remove assert about
11309         loading a methodspec to a generic method. We have such methods, such as
11310         System.Threading.Interlocked::CompareExchange<T>.
11311         This assert was removed since it crashes the verifier when it checks
11312         methods calling CompareExchange<T>.
11313
11314 2008-06-10  Marek Safar  <marek.safar@gmail.com>
11315
11316         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
11317         of Type array and not MonoType.
11318
11319 2008-06-10  Marek Habersack  <mhabersack@novell.com>
11320
11321         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
11322         <lupus@ximian.com>
11323
11324 2008-06-10  Martin Baulig  <martin@ximian.com>
11325
11326         * debug-mono-symfile.h
11327         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
11328         changes to the file format, but we were generating incorrect
11329         source file indices in the line number table due to a bug, which
11330         made backtraces report an incorrect source file.
11331
11332 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
11333
11334         * mono-debug.c: Moved mono_debug_free_method_jit_info from
11335         mini/debug-mini.c to here.
11336
11337         * mono-debug.c (il_offset_from_address): Free memory from find_method.
11338
11339         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
11340         use it to release structs returned by mono_debug_find_method.
11341
11342 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
11343
11344         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
11345         since it needs to set method->slot for all interface methods.
11346
11347 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
11348
11349         * class-internals.h: Forgot to add.
11350
11351 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
11352
11353         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
11354
11355         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
11356         Lookup the custom attributes from property_hash.
11357
11358         * reflection.c (mono_save_custom_attrs): Save the custom attributes
11359         in property_hash. Allocate all data using the image mempool.
11360
11361         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
11362         for dynamic_custom_attrs to checks if the image is dynamic.
11363
11364 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
11365
11366         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
11367         assemblies array.
11368         
11369         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
11370         runtime functions while holding the domain assemblies lock.
11371
11372 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
11373
11374         * verify.c: Reapplied the last bit of the reverted changes.
11375
11376 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
11377
11378         * verify.c: Reapplied more of the reverted changes.
11379
11380 2008-06-09  Martin Baulig  <martin@ximian.com>
11381
11382         * debug-mono-symfile.c (load_symfile): Check the major version
11383         first; if it's wrong, don't print the minor version in the error message.
11384
11385 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
11386
11387         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
11388         lock instead of the domain lock to avoid deadlocks, since the thread might
11389         already hold the loader lock.
11390
11391         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
11392         (mono_thread_attach): Ditto.
11393
11394         * monitor.c: Use a TLS variable for holding the current thread id instead
11395         of calling pthread_self ().
11396         (mono_monitor_init_tls): New internal function to initialize the TLS
11397         variable.
11398         (mono_monitor_try_enter_internal): Put the owner == id check after the
11399         owner == 0 check.
11400
11401         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
11402         missed optimizations when using gcc-4.3.
11403
11404 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
11405
11406         * reflection.c (mono_dynamic_image_free): Free the memory
11407         used by MonoGenericParam in MonoDynamicImage::gen_param.
11408
11409         * reflection.c (mono_reflection_setup_generic_class): Allocate
11410         container from mempool.
11411
11412         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
11413         container from mempool.
11414
11415 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
11416
11417         * threads.c (mono_set_pending_exception): New internal function to set the
11418         pending exception of the current thread.
11419         (mono_thread_get_and_clear_pending_exception): Check for 
11420         thread->pending_exception as well.
11421
11422         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
11423
11424         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
11425         it can trigger a collection.
11426
11427 2008-06-06  Martin Baulig  <martin@ximian.com>
11428
11429         Merged the `debugger-kahalo' branch.
11430
11431         * mono-debug.h
11432         (MONO_DEBUGGER_VERSION): Bumped to 72.
11433
11434         * debug-mono-symfile.h
11435         (MonoSymbolFileMethodIndexEntry): Removed.
11436         (MonoSymbolFileMethodEntry): New public typedef.
11437         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
11438         (MonoSymbolFileSourceEntry): Remove everything except `index' and
11439         `data_offset'.
11440         (MonoSymbolFileMethodEntry): Removed.
11441         (MonoSymbolFileLexicalBlockEntry): Removed.
11442         (MonoSymbolFileLineNumberEntry): Removed.
11443         (MonoDebugLexicalBlockEntry): Removed.
11444         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
11445         removed `num_il_offsets' and `il_offsets'.
11446         (MonoSymbolFile): Replace `version' with `major_version' and
11447         `minor_version'.
11448         (MONO_SYMBOL_FILE_VERSION): Replace with
11449         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
11450         `MONO_SYMBOL_FILE_MINOR_VERSION'.
11451
11452         * debug-mono-symfile.c
11453         (mono_debug_symfile_lookup_location): Add support for the new line
11454         number table format.
11455
11456 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
11457
11458         * metadata.c (free_generic_class): Release the inflated
11459         MonoClass of dynamic generic classes if it's not a generic
11460         type definition.
11461
11462 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
11463
11464         * verify.c: Reapplied more of the reverted changes.
11465
11466 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
11467
11468         * reflection.c (lookup_custom_attr): Clean the cached flag or
11469         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
11470         for SRE types.
11471
11472 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
11473
11474         * verify.c: Reapplied a small part of the reverted changes.
11475
11476 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
11477
11478         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11479
11480         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
11481         previously in managed code.
11482         (mono_monitor_exit): Ditto.
11483         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
11484
11485         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
11486         the managed definition.
11487
11488 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
11489
11490         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
11491
11492 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
11493
11494         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
11495         
11496         * monitor.c: Add some micro optimizations.
11497
11498         * icall.c (type_from_typename): Handle 'bool'.
11499
11500 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
11501
11502         * verify.c: Implement constructor verification per P III 1.8.1.4.
11503         Fixes #396716.
11504
11505 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
11506
11507         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
11508         holding the assemblies lock here too.
11509
11510 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
11511
11512         * verify.c: Kill stack_top function.
11513
11514 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
11515
11516         * verify.c: Kill stack_get function.
11517
11518 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
11519
11520         * verify.c (mono_method_verify): Last change broke the build. Fixed.
11521
11522 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
11523
11524         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
11525         more reliable.
11526
11527         * verify.c (mono_method_verify): Inflate params and locals to avoid
11528         mismatch when checking for compatibility.
11529
11530 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
11531
11532         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
11533         Length prefix should be size in bytes. Fix bug #339530.
11534         
11535         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
11536         Length prefix should be size in bytes. Fix bug #339530.
11537
11538         Code is contributed under MIT/X11 license.
11539
11540 2008-06-05  Bill Holmes <billholmes54@gmail.com>
11541
11542         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
11543
11544         Contributed under MIT/X11 license.
11545
11546 2008-06-05  Martin Baulig  <martin@ximian.com>
11547
11548         * mono-debug-debugger.c
11549         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
11550
11551 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
11552
11553         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
11554         while holding the assemblies lock to prevent deadlocks. Handle the case
11555         where the search hook returns NULL but the assembly was still loaded.
11556         Fixes #323696.
11557
11558         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
11559         modify domain state.
11560
11561 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
11562
11563         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
11564         * Makefile.am (pedump_LDADD): Post-process object files and
11565         add dtrace-generated object file, if necessary.
11566
11567         Code is contributed under MIT/X11 license.
11568
11569 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
11570
11571         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
11572
11573 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
11574
11575         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
11576
11577 2008-06-04  Mark Probst  <mark.probst@gmail.com>
11578
11579         * threads.c: Try to free everything from the delayed free table
11580         when shutting down threads, and set the variable to NULL after the
11581         table is freed so that calling
11582         mono_thread_hazardous_try_free_all() when shutting down the root
11583         domain doesn't crash.
11584
11585 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
11586
11587         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
11588         the caller if resulting type was inflated.
11589
11590         * class.c (mono_class_create_from_typespec): Free the MonoType if it
11591         was inflated.
11592
11593         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
11594
11595
11596 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
11597
11598         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
11599         class library tests.
11600
11601         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
11602         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
11603         #396989.
11604
11605 2008-06-04  Mark Probst  <mark.probst@gmail.com>
11606
11607         * domain.c, domain-internals.h: The JIT infos are now freed by the
11608         JIT info table code.  They are freed immediately if there only a
11609         single JIT info table in circulation.  If there is more, the free
11610         is delayed via a queue.
11611
11612         * threads.c, threads-types.h: New hazard pointer function for
11613         freeing all freeable delayed items in one sitting.
11614
11615 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
11616
11617         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
11618
11619         * reflection.c (typebuilder_setup_properties): Same.
11620
11621         * reflection.c (typebuilder_setup_events): Same.
11622
11623 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
11624
11625         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
11626         and use it for allocating memory.
11627
11628         * reflection.c (mono_marshal_spec_from_builder): Same.
11629
11630         * reflection.c: Change code to use new signatures.
11631
11632         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
11633
11634 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
11635
11636         * decimal.c (rescale128): Put back one line which was accidently commented
11637         out.
11638         
11639         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
11640         to cause crashes.
11641
11642 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
11643
11644         * reflection.c (mono_reflection_generic_class_initialize): Name must
11645         be always malloc'ed so we can free it later on. Do this for field, property
11646         and event.
11647
11648         * metadata.c (free_generic_class): Free field, property and event names.
11649
11650 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
11651
11652         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
11653         instead of g_memdup.
11654
11655         * reflection.c (typebuilder_setup_fields): Same.
11656
11657 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
11658
11659         * decimal.c (rescale128): Optimize this function a bit more.
11660
11661 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
11662
11663         * metadata.c (free_generic_class): Release some memory from
11664         SRE generic classes.
11665
11666 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
11667
11668         * reflection.c (mono_image_get_generic_field_token): No reference
11669         to name is kept, free it.
11670
11671         * reflection.c (mono_reflection_generic_class_initialize): Free
11672         more memory of the inflated field.
11673
11674 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
11675
11676         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
11677         code.
11678
11679 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
11680
11681         * reflection.c (mono_dynamic_image_free): Release memory used by
11682         MonoDynamicImage::array_methods elements.
11683
11684         * reflection.c (assembly_add_win32_resources): Release memory after
11685         encoding.
11686
11687 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
11688
11689         * decimal.c (log2_32): Use an optimized version for this function too.
11690         
11691         * decimal.c (log2_64): Fix this on 32 bit machines.
11692
11693 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
11694
11695         * class.c (mono_dup_array_type): Implement allocation using a mempool.
11696
11697         * class.c (mono_metadata_signature_deep_dup): Same.
11698
11699         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
11700         a mempool.
11701
11702         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
11703
11704         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
11705
11706         * metadata-internals.h: Added mono_metadata_signature_dup_full.
11707
11708         * class-internals.h: Update signatures to take a MonoMemPool.
11709
11710 2008-06-02  Dick Porter  <dick@ximian.com>
11711
11712         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
11713         * icall-def.h: Add
11714         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
11715         FormatMessage API to get the error text.  Fixes bug 321827.
11716
11717 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
11718
11719         * decimal.c: Add some micro optimizations to make decimal operations faster.
11720
11721 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
11722
11723         * reflection.c (method_encode_clauses): Take a mempool
11724         as parameter and use it to allocate the clause array.
11725
11726         * reflection.c (mono_image_get_field_on_inst_token): Free
11727         the inflated type after encoding it.
11728
11729         * reflection.c (mono_dynamic_image_free): Free each element
11730         of MonoDynamicImage::gen_params.
11731
11732         * reflection.c (reflection_methodbuilder_to_mono_method):
11733         Allocate the generic param array from the mempool.
11734         Allocate signature params from the mempool.
11735
11736         * reflection.c (mono_reflection_generic_class_initialize):
11737         Free inflated fields after been used.
11738
11739 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
11740
11741         * icall.c: Reapply the memory leak fixes as they no
11742         longer make mono crash.
11743
11744 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
11745
11746         * reflection.c (mono_type_get_object): Don't store the suplied
11747         MonoType with type_hash. A caller which pass a type that
11748         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
11749         might end with a pointer to freed memory.
11750         The solution is to use byval_arg or this_arg from the associated
11751         MonoClass of the supplied type.
11752
11753 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
11754
11755         * icall.c: Revert the rest of the last change as it breaks the build too.
11756
11757 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
11758
11759         * icall.c: Revert a leak fix as it's breaking the build.
11760
11761 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
11762
11763         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
11764
11765 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
11766
11767         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
11768
11769 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
11770
11771         * icall.c: Fix some memory leaks.
11772
11773 2008-05-29  Dick Porter  <dick@ximian.com>
11774
11775         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
11776         async socket operations from the pending list when a socket
11777         closes.  Leaving it until the threadpool services the event
11778         exposes a race condition when a socket descriptor is reused.
11779         Fixes bug 377589.
11780
11781 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
11782
11783         * object.c: Fix negative index check for array alocation.
11784
11785 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
11786
11787         * icall.c, marshal.c: Delegate wrappers should skip visibility.
11788         This check is performed by the verifier for IL created delegates
11789         and by Delegate::CreateDelegate for programatically created ones.
11790         Fixes #372406.
11791
11792 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
11793
11794         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
11795         Fix code to use mono_array_size_t instead of int.
11796
11797         Based on patch by Luis F. Ortiz.
11798         Contributed under X11 license.
11799         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11800
11801 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
11802
11803         * icall.c: Added ves_icall_System_Array_GetLongLength and
11804         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
11805         arrays.
11806
11807         * icall.h: Export both new functions.
11808
11809         Based on patch by Luis F. Ortiz.
11810         Contributed under X11 license.
11811         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11812
11813 2008-05-28  Martin Baulig  <martin@ximian.com>
11814
11815         The debugger now requires exactly r103463.
11816
11817         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
11818         This version is not supported by the debugger, wait for 72.
11819
11820 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
11821
11822         * object.h: Changed array related functions to use
11823         mono_array_size_t instead of guint32. Forgot to commit this file.
11824
11825         Patch by Luis F. Ortiz.
11826         Contributed under X11 license.
11827         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11828
11829
11830 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
11831
11832         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
11833         don't define it. Use the number literal instead.
11834
11835 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
11836
11837         * icall.c: Changed array related functions to use
11838         mono_array_size_t instead of guint32.
11839
11840         * icall.c (ves_icall_System_Array_GetLength): Check for length
11841         overflow under MONO_BIG_ARRAYS.
11842
11843         Based on patch by Luis F. Ortiz.
11844         Contributed under X11 license.
11845         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11846
11847 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
11848
11849         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
11850
11851         Based on patch by Luis F. Ortiz.
11852         Contributed under X11 license.
11853         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11854
11855 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
11856
11857         * object.c, object.h: Changed array related functions to use
11858         mono_array_size_t instead of guint32.
11859
11860         Patch by Luis F. Ortiz.
11861         Contributed under X11 license.
11862         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11863
11864 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
11865
11866         * object.h: Introduced mono_array_size_t typedef. This must be used
11867         in all places an array length is expected. This is 64bits wide if
11868         MONO_BIG_ARRAYS is enabled.
11869
11870         Patch by Luis F. Ortiz.
11871         Contributed under X11 license.
11872         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
11873
11874 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
11875
11876         * security-manager.c class.c: Set the class exception info by calling
11877         mono_class_set_failure ().
11878
11879         * class.c (mono_class_get_exception_data): New accessor function.
11880         (mono_class_set_failure): Store exception_data in the property hash.
11881
11882         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
11883         the struct as a property.
11884
11885         * loader.c (mono_get_method_full): Store the lookup result for method
11886         tokens in method_cache, the others in methodref_cache to decrease the memory
11887         usage of hash tables.
11888
11889         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
11890         (mono_image_init): method_cache is lazy inited now.
11891
11892         * metadata-internals.h (struct _MonoImage): Change method_cache to
11893         a MonoValueHashTable, add a separate methodref_cache.
11894
11895 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
11896
11897         * number-formatter.h: Fix tables to avoid arithemtic overflow in
11898           Double.ToString as exposed by Bug #383531.
11899
11900 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
11901
11902         * number-formatter.h: Make some tables static.
11903
11904         * class.c (mono_method_set_generic_container): New accessor function.
11905         (mono_method_get_generic_container): Ditto.
11906
11907         * class-internals.h (struct _MonoMethod): Remove rarely used 
11908         'generic_container' field, store it in the property hash instead. Add 
11909         'is_generic' boolean field instead.
11910
11911         * image.c (mono_image_init): Initialize property_hash.
11912         (mono_image_close): Destroy property_hash.
11913
11914         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
11915         hold rarely used fields of runtime structures belonging to this image.
11916
11917         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
11918         to get/set method->generic_container.
11919
11920         * loader.c (mono_get_method_from_token): Avoid loading the method header for
11921         generic methods.
11922
11923 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
11924
11925         * class.c (mono_class_inflate_generic_method_full): Don't increase
11926         mono_stats.inflated_method_count for methods found in the cache.
11927
11928         * threads.c (mono_thread_request_interruption): Add a comment about 
11929         QueueUserAPC ().
11930
11931 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
11932
11933         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
11934         interface_offsets_packed table.
11935         
11936         * class.c (mono_class_init): Remove some dead code.
11937
11938         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
11939         mono_class_setup_vtable () when CAS is active to detect security problems.
11940
11941 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
11942
11943         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
11944
11945         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
11946         parameters as it's irrelevant for delegate checking.
11947
11948 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
11949
11950         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
11951
11952         * class.c (mono_class_init): Control the creation of a generic vtable using
11953         a global which is true by default, but set to false by the runtime startup code.
11954         
11955         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
11956         Disabled for now since it breaks the embedding API.
11957         Move the setup of class->methods for arrays to mono_class_setup_methods ().
11958         (mono_class_setup_methods): Add a memory barrier.
11959
11960         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
11961         when mono_class_init () doesn't compute the generic vtable.
11962         
11963 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
11964         * profiler.c: Added mono_profiler_install_statistical_call_chain,
11965         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
11966         to support call chains (backtrace) in the stat profiler.
11967         * profiler.c, profiler-private.h: Likewise.
11968
11969 2008-05-22  Mark Probst  <mark.probst@gmail.com>
11970
11971         * generic-sharing.c: Init generic class when a method of it is
11972         requested via a runtime generic context.
11973
11974 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
11975
11976         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
11977
11978         * reflection.c (mono_type_get_object): Add a FIXME.
11979
11980         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
11981
11982         * class.c (mono_class_get_method_by_index): New helper function, returning an
11983         entry in the class->methods array.
11984
11985 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
11986
11987         * class.c (mono_class_init): Only do the array optimization for szarrays. 
11988         Avoid creating a generic vtable for generic instances as well.
11989         (mono_class_get_method_from_name_flags): Don't search in the metadata for
11990         generic instances.
11991
11992 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
11993
11994         * loader.c (mono_get_method_constrained): Inflate the signature
11995         with class context. Fix #325283.
11996
11997 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
11998
11999         * object.c (mono_class_create_runtime_vtable): Add a comment.
12000
12001         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
12002         where needed.
12003         (setup_interface_offsets): Handle the case when this is called twice for arrays.
12004         (mono_class_setup_vtable_general): Add an assert.
12005         (mono_class_init): Avoid creating a generic vtable for arrays.
12006
12007         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
12008         here, let mono_class_init () do that.
12009
12010         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
12011         interfaces in mscorlib.
12012
12013         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
12014         interfaces. Add some comments.
12015         (mono_class_init): Call mono_class_setup_methods () here since it is no
12016         longer called by mono_class_setup_vtable ().
12017
12018         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
12019         not set in class->vtable.
12020         (mono_class_create_runtime_vtable): Reenable the disabled code.
12021
12022         * object.c (mono_class_create_runtime_vtable): Disable the last change for
12023         now as it causes some test failures.
12024
12025         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
12026         if using the vtable trampoline. Also remove some strange code which put the
12027         generic methods themselves into the vtable slots. Remove the AOT init_vtable
12028         stuff as it is no longer needed.
12029
12030 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
12031
12032         * pedump.c: Give make --verify all option check code as well.
12033         Using --verify code won't check for metadata now.
12034
12035 2008-05-19  Martin Baulig  <martin@ximian.com>
12036
12037         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
12038
12039         * mono-debug.c
12040         (_mono_debug_using_mono_debugger): New global variable; it's set
12041         directly by the debugger, so mono_debug_using_mono_debugger() also
12042         works after attaching.
12043
12044 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
12045
12046         * object.c (mono_class_create_runtime_vtable): Use memory barriers
12047         as we do double checked locking on MonoClass::runtime_info and
12048         MonoClassRuntimeInfo::domain_vtables.
12049
12050 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
12051
12052         * debug-helpers.c (print_field_value): Fix a warning.
12053
12054 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
12055
12056         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
12057         set in the AOT case.
12058
12059 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
12060
12061         * class.c (mono_class_setup_vtable_general): Use memory barriers
12062         as we do double checked locking on MonoClass::vtable.
12063
12064 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
12065
12066         * reflection.c (resolve_object): Inflate only if the generic context
12067         is not null. Fixes #389886.
12068
12069 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
12070
12071         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
12072         instead of g_free.
12073
12074         Code is contributed under MIT/X11 license.
12075
12076 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
12077
12078         * class.c: Revert unrelated change.
12079
12080 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
12081
12082         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
12083         a generic instantiation, use mono_class_from_mono_type instead of playing
12084         with MonoType directly.
12085
12086 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
12087
12088         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
12089         checks must ignore generic instantiations, so mono_class_has_parent is not
12090         suitable. Fixes #390128.
12091
12092 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
12093
12094         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
12095         it to avoid registering tokens during metadata generation. Fixes #390023.
12096
12097 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
12098
12099         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
12100         consistent.
12101
12102         Contributed under MIT/X11 license.
12103
12104 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
12105
12106         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
12107         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
12108         to fixup the EXE image.
12109         (mono_cleanup): Use mono_close_exe_image.
12110         (mono_close_exe_image): New function.
12111         * image.c: Include "marshal.h".
12112         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
12113         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
12114         counting when the image is loaded outside of mono_image_open_full. Set status
12115         based on GetLastError.
12116         * coree.c: Include required headers. Add init_from_coree.
12117         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
12118         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
12119         (_CorExeMain): Set init_from_coree.
12120         (CorExitProcess): Only call ExitProcess for now.
12121         (CorBindToRuntimeEx): New stub implementation.
12122         (CorBindToRuntime): New function.
12123         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
12124         (MonoFixupExe): ILONLY executables require no fixups.
12125         (mono_set_act_ctx): New function to set activation context.
12126         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
12127         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
12128         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
12129         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
12130         as MONO_INTERNAL.
12131         * domain-internals.h: Add mono_close_exe_image.
12132
12133         Contributed under MIT/X11 license.
12134
12135 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
12136
12137         * metadata.c (mono_metadata_compute_size): Correctly calculate field
12138         size for generic param and event tables. Fixes #388977.
12139
12140 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
12141
12142         * loader.c (mono_method_signature): Use memory barriers because of the double
12143         checked locking pattern.
12144
12145         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
12146         aborting or aborted as well. Fixes #376391.
12147         
12148         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
12149         existing runtime state in the Suspend handler during shutdown.
12150
12151 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
12152
12153         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
12154
12155         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
12156         which are starting up or shutting down.
12157
12158         * threads.c (mono_threads_set_shutting_down): Don't return a value since
12159         this function never returns if the runtime is already shutting down.
12160
12161         * icall.c (ves_icall_System_Environment_Exit): Update after 
12162         mono_threads_set_shutting_down () signature change.
12163         
12164 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
12165
12166         * class.c: Added can_access_instantiation to verify if the instantiation
12167         is visible. Fix access check for nested types as they returned TRUE
12168         before doing type and generic instantiation visibility checks.
12169
12170 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
12171
12172         * reflection.c (mono_reflection_create_generic_class): The created type
12173         must have a different container from its TypeBuilder. Otherwise they
12174         will end sharing generic arguments, which is wrong.
12175
12176         Due to the sharing, making a generic instance of the created type using
12177         the TypeBuider generic arguments resulted in the generic type definition
12178         been returned, which is wrong as well.
12179
12180         As a bonus the code was leaking the type_params array. This memory should
12181         be allocated from the image mempool.
12182
12183         This fixes bug #354047.
12184
12185 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
12186
12187         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
12188         to here         as they are now used in assembly.c new code.
12189         Added a skipverification flag to MonoAssembly.
12190         New internal function mono_assembly_has_skip_verification.
12191
12192         * assembly.c: New function mono_assembly_has_skip_verification. It checks
12193         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
12194         part of #387274.
12195
12196 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
12197
12198         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
12199         needed. Fixes #387034.
12200
12201         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
12202
12203 2008-05-06  Miguel de Icaza  <miguel@novell.com>
12204
12205         * assembly.c (mono_assembly_load_reference): Prevent crash while
12206         disassembling Silverlight 2.0 executables while we still do not
12207         have GACed libraries.
12208
12209 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
12210
12211         * reflection.c: Special case generic type definitions as well. Fixes #383444.
12212
12213 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
12214
12215         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
12216         of the dynamic case. Fixes #387404.
12217
12218 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
12219
12220         *verify.c (mono_verifier_is_class_full_trust): If under
12221         verify_all and the verifier mode was not set, only
12222         gac and corlib types are fulltrust. This makes --verify-all
12223         usable to detect unverifiable code, which is the expected
12224         use case.
12225
12226 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
12227
12228         * verify.h: Ops, commited the header with debug
12229         enabled.
12230
12231 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
12232
12233         * verify.c (merge_stack): Use the new value on unverifiable
12234         stack merges.
12235
12236         * verify.c (verify_type_compatibility_full): Comparison
12237         of nullable types can't use mono_class_is_assignable_from.
12238
12239         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
12240         that makes all verification errors be reported.
12241
12242         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
12243         mono_method_verify.
12244
12245 2008-05-05  Robert Jordan  <robertj@gmx.net>
12246
12247         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
12248         support for value types. See #386415.
12249
12250         * object.c: comments.
12251
12252         Code is contributed under MIT/X11 license.
12253
12254 2008-05-05  Martin Baulig  <martin@ximian.com>
12255
12256         * debug-mono-symfile.h
12257         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
12258         for old pre-terrania symbol files.
12259
12260 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
12261
12262         * mono-config.c: Add ppc64 architecture.
12263
12264         Code is contributed under MIT/X11 license.
12265
12266 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
12267
12268         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
12269           PPC64 uses function descriptors as well.
12270
12271         Code is contributed under MIT/X11 license.
12272
12273 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
12274
12275         * object.c (compute_class_bitmap): Ignore literal static fields.
12276
12277         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
12278         var has an invalid format.
12279         (describe_ptr): Add some sanity checks for the vtable.
12280         (add_nursery_frag): Clear unused nursery fragments.
12281         (major_collection): Clear all remaining nursery fragments.
12282
12283 2008-05-03  Robert Jordan  <robertj@gmx.net>
12284
12285         * image.c, metadata-internals.h: add thunk_invoke_cache.
12286
12287         * marshal.c, marshal.h: implement
12288         mono_marshal_get_thunk_invoke_wrapper ().
12289
12290         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
12291
12292         Code is contributed under MIT/X11 license.
12293
12294 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
12295
12296         * verify.c (do_leave): Empty the stack.
12297
12298 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
12299
12300         * class.c (mono_class_is_assignable_from): Variance
12301         doesn't work between reference and value types. For example,
12302         given type C<T+>, C<int32> is not assignable to C<object>.
12303         Break the argument checking loop on first error. 
12304
12305 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
12306
12307         * icall.c : base64_to_byte_array() needs some more strict
12308           check for sequence of '=' characters. Patch by Santa
12309           Marta (http://deee.g.hatena.ne.jp/santamarta).
12310
12311           Contributed under MIT/X11 license.
12312           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
12313
12314 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
12315
12316         * domain.c: Disable LoadLibrary support to fix Win32 build.
12317
12318         Code is contributed under MIT/X11 license.
12319
12320 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
12321
12322         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
12323         to help with cache behaviour.
12324
12325 2008-05-01  Miguel de Icaza  <miguel@novell.com>
12326
12327         * appdomain.c (mono_domain_from_appdomain): Add new accessor
12328         method. 
12329
12330 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
12331
12332         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
12333
12334 2008-05-01  Dick Porter  <dick@ximian.com>
12335
12336         * process.c (process_get_fileversion): Only pass 16 bits of
12337         language ID to VerLanguageName.  Fixes bug 381204.
12338
12339 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
12340
12341         * verify.c (mono_method_verify): Fix the comparison
12342         operator for code bounds check.
12343
12344 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
12345
12346         * verify.c (mono_method_verify): Check the bounds of
12347         all access of the code array.
12348
12349 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
12350
12351         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
12352
12353 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
12354
12355         * image.c (mono_image_strong_name_position): Fix return value when the rva is
12356         not valid.
12357
12358 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
12359
12360         * loader.c (mono_get_method_from_token, mono_method_signature): Add
12361         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
12362         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
12363         fixup main EXE images when using mono.exe for mixed-mode assembly support.
12364         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
12365         mono_runtime_load.
12366         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
12367         runtime initialization from metadata.
12368         * assembly.c: Remove obsolete ceGetModuleFileNameA.
12369         (mono_set_rootdir): Use mono_get_module_file_name.
12370         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
12371         handles.
12372         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
12373         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
12374         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
12375         MonoCLIImageInfo. Add support for module handles.
12376         (load_cli_header): Update mono_cli_rva_image_map signature.
12377         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
12378         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
12379         (mono_image_rva_map): Add support for module handles.
12380         (mono_image_ensure_section_idx): Add support for module handles.
12381         (mono_image_close): Add support for module handles.
12382         (do_load_header): Add support for module handles.
12383         (mono_image_open_from_module_handle): New function for internal use.
12384         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
12385         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
12386         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
12387         handles.
12388         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
12389         * image.h: Add mono_image_fixup_vtable.
12390         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
12391         support.
12392         * coree.h: New file.
12393         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
12394         unsupported native code.
12395         (mono_marshal_set_callconv_from_modopt): New function splitted from
12396         mono_marshal_get_managed_wrapper.
12397         (mono_marshal_get_managed_wrapper): Use
12398         mono_marshal_set_callconv_from_modopt.
12399         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
12400         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
12401         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
12402         that results in a deadlock when the runtime is loaded in _CorDllMain.
12403         * Makefile.am: Add coree.c and coree.h.
12404
12405         Contributed under MIT/X11 license.
12406
12407 2008-04-28  Mark Probst  <mark.probst@gmail.com>
12408
12409         * generic-sharing.c: Search for type arguments in array element
12410         types as well.
12411
12412 2008-04-28  Mark Probst  <mark.probst@gmail.com>
12413
12414         * class-internals.h, generic-sharing.c: New, small runtime generic context.
12415
12416         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
12417
12418         * object.c: Don't setup the RGCTX when the vtable is created,
12419         because we're setting it up lazily now.
12420
12421 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
12422
12423         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
12424         64 bit support.
12425
12426 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
12427
12428         * verify.c (verify_class_for_overlapping_reference_fields): 
12429         If class is under fulltrust allow reference types to overllap
12430         if they have the same RVA.
12431
12432 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
12433
12434         * pedump.c: Added new flag valid-only, that makes the verifier
12435         behaves just like --security=validil. It won't fail type load
12436         due to unverifiable restrictions.
12437
12438 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
12439
12440         * class-internals.h (struct MonoMethod): Added a verification_success
12441         field to cache verifier executions. Reduced MonoMethod:slot size by
12442         one bit.
12443
12444 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
12445
12446         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
12447         instead of a 'vt' argument to save an indirection and to allow these to be used
12448         for valuetypes.
12449         (scan_vtype): New helper function to scan an area using a gc descriptor.
12450         (mono_gc_wbarrier_value_copy): Implement this.
12451         (handle_remset): Add support for REMSET_VTYPE.
12452         (find_in_remset_loc): Ditto.
12453         (mono_gc_base_init): Allow some debugging options to be controlled through the
12454         use of the MONO_GC_DEBUG env variable.
12455         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
12456         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
12457
12458 2008-04-23  Martin Baulig  <martin@ximian.com>
12459
12460         * domain.c (mono_domain_create): Move the call to
12461         mono_debug_domain_create() down, after allocating the domain id.
12462
12463 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
12464
12465         verify.c (verify_class_for_overlapping_reference_fields): Skip
12466         static fields while verifying for overlapping fields as they
12467         don't matter at all.
12468
12469 2008-04-23  Marek Habersack  <mhabersack@novell.com>
12470
12471         * domain-internals.h: added a declaration of
12472         mono_make_shadow_copy.
12473
12474         * assembly.c (mono_assembly_open_full): shadow copying of
12475         assemblies moved to here, so that all the assemblies within the
12476         application domain's private binary directories can be
12477         processed. Fixes bug #380546
12478
12479         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
12480         mono_make_shadow_copy and made non-static. The decision whether
12481         to shadow-copy an assembly is made based on its location - it's
12482         copied if it's in one of the private application domain binary
12483         directories and its different to the target file in the shadow
12484         directory. Fixes bug #380546
12485
12486 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
12487
12488         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
12489
12490         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
12491         types.
12492
12493         * reflection.c (mono_image_create_token): Handle 
12494         Method/ConstructorOnTypeBuilderInst.
12495         (resolve_object): Ditto.
12496         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
12497         so it can be called from resolve_object. Also handle the case when the inflated
12498         class already has its methods setup.
12499
12500 2008-04-21  Martin Baulig  <martin@ximian.com>
12501
12502         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
12503
12504 2008-04-20  Geoff Norton  <gnorton@novell.com>
12505
12506         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
12507         pointer dereference.
12508
12509 2008-04-15  Marek Habersack  <mhabersack@novell.com>
12510
12511         * appdomain.c (try_load_from): if IOMAP is in effect, call the
12512         portability API to look up the assembly file. Fixes behavior in
12513         situations when the application has a bin/ directory, but the
12514         assembly search patch refers to Bin/ (and thus the requested file
12515         name is Bin/SomeLibrary.dll). Fixes bug #379888
12516
12517 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
12518
12519         verify.c (mono_type_is_generic_argument): Extracted this check
12520         from a dozen places to here.
12521
12522         verify.c: Fixed all issues related to boxing generic arguments
12523         and their constraints.
12524
12525 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
12526
12527         verify.c (mono_class_interface_implements_interface): Fix win32 build.
12528
12529 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
12530
12531         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
12532         isn't finished yet. Fixes #363447.
12533
12534 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
12535
12536         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
12537         Fixes #346419.
12538
12539 2008-04-13  Jb Evain  <jbevain@novell.com>
12540
12541         * domain.c: update the 2.1 profile versions.
12542         Merged from the Moonlight 2 branch.
12543
12544 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
12545
12546         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
12547         mscorlibs for the non-refonly case as well.
12548
12549         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
12550         in mono_assembly_load_from_full (). Fixes #378924.
12551
12552 2008-04-11  Geoff Norton  <gnorton@novell.com>
12553
12554         * icall.c: The global extern environ doesn't exist on Mac.  We
12555         need to call NSGetEnviron instead.
12556
12557 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
12558
12559         verify.c: Add generic method constraint verification.
12560
12561 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
12562
12563         class.c (mono_class_inflate_generic_method_full): Add a long
12564         explanation to the is_mb_open hack. Remove the FIXME.
12565
12566 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
12567
12568         * verify.c (mono_method_verify): Mark all unknown opcodes
12569         as invalid. Mark jmp as unverifiable.
12570
12571 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
12572
12573         * verify.c: Add code to do type constraint verification on class instances.
12574
12575         * verify.c (mono_verifier_verify_class): Use the type constraint 
12576         verification code.
12577
12578 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
12579
12580         * class.c (mono_class_get_field_default_value): Don't pass cindex
12581         as hint to mono_metadata_get_constant_index. The local is not initialized
12582         and should contain garbage most of the time. This could only work
12583         with a lot of luck.
12584
12585 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
12586
12587         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
12588
12589 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
12590
12591         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
12592
12593         * class.c (mono_class_from_generic_parameter): Save the token of the
12594         generic param in MonoClass::sizes.generic_param_token.
12595
12596         * reflection.c (mono_custom_attrs_from_class): If the class type is
12597         VAR or MVAR retrieve the attributes of the generic param.
12598
12599 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
12600
12601         * class.c (mono_class_init): Do class verification if the verifier
12602         is enabled.
12603
12604 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
12605
12606         * verify-internal.h: Added mono_verifier_verify_class.
12607
12608         * verify.c: Added mono_verifier_verify_class. It checks for
12609         classes with explicit layout that have overlapping reference fields.
12610
12611         * pedump.c: Init the verifier state prior to verification. Fixed
12612         command line arguments.
12613
12614 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
12615
12616         * Makefile.am: Added verify-internals.h, hopefully fix the build.
12617
12618 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
12619
12620         * verify-internals.h: Fix a warning.
12621
12622 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
12623
12624         * verify-internals.h: New header with the verifier configuration
12625         extracted from mini.c.
12626
12627         * verify.c: Implemented the new functions exported by verify-internals.h.
12628
12629 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
12630
12631         * verify.c: Add proper verification of ckfinite.
12632
12633 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
12634
12635         * verify.c (do_conversion): Improved error message to something
12636         more meanfull.
12637
12638         * verify.c (check_is_valid_type_for_field_ops): Fix to work
12639         with primitive types.
12640
12641 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
12642
12643         * verify.c: Added tail prefix checking. Marked icall
12644         as unverifible.
12645
12646 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
12647
12648         * verify.c: Fix the detection of branches to the middle
12649         of an instruction.
12650
12651 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
12652
12653         * verify.c: Implemented verification of volatile. and
12654         unaligned. prefix. Check if a type is valid after retrieving it.
12655
12656 2008-04-01  Dick Porter  <dick@ximian.com>
12657
12658         * process.c (process_get_fileversion): If there's no string block,
12659         set the file language to en_US.  Fixes the other new part of bug
12660         374600.
12661
12662 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
12663
12664         * class.c: New functions mono_method_can_access_field_full and
12665         mono_method_can_access_method_full. They perform type visibility
12666         and type site check.
12667
12668         * class-internal.h: Added exported functions.
12669
12670         * verify.c: Use new functions to implement proper visibility checks.
12671
12672 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
12673
12674         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
12675
12676 2008-03-28  Dick Porter  <dick@ximian.com>
12677
12678         * process.c (process_get_fileversion): Use the first language ID
12679         we see, rather than insisting on an invariant language.  Fixes bug
12680         374600.
12681
12682 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
12683
12684         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
12685         the streams to fix reading of invalid memory later.
12686
12687         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
12688         to ease debugging.
12689
12690 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
12691
12692         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
12693         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
12694
12695 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
12696         * threads.h: Added MonoThreadManageCallback type and
12697         mono_thread_set_manage_callback prototype
12698         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
12699         (used to store the mono_thread_manage callback).
12700         * threads.c: Added mono_thread_set_manage_callback, and handle
12701         "MonoThread->manage_callback" in build_wait_tids.
12702
12703 2008-03-26  Dick Porter  <dick@ximian.com>
12704
12705         * process.c (process_get_fileversion): Set FileVersionInfo strings
12706         to Empty when the resource doesn't have the particular info.
12707         Fixes bug 355717.
12708
12709 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
12710
12711         * verify.c (mono_method_verify): Proper prefix validation.
12712
12713 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
12714
12715         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
12716         itself in a separate argument instead of throwing them. Fixes #373448.
12717
12718         * appdomain.c: Bump corlib version.
12719
12720 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
12721
12722         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
12723
12724 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
12725
12726         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
12727         version macros.
12728
12729 2008-03-20  Mark Probst  <mark.probst@gmail.com>
12730
12731         * generic-sharing.c, class-internals.h: Code for putting
12732         reflection types into the runtime generic context.
12733
12734 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
12735
12736         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
12737         Fixes #340662. 
12738
12739
12740 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
12741
12742         * verify.c (VerifyContext): Added instruction prefix data to the struct.
12743
12744         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
12745
12746         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
12747
12748         * verify.c (do_cast): Let the result value keep the boxed status.
12749
12750         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
12751
12752 2008-03-17  Jb Evain  <jbevain@novell.com>
12753
12754         * reflection.c: when running on a 2.0 runtime, emit
12755         unconditionally the #~ header version as 2.0, and the
12756         CLI header version as 2.5, for symmetry's sake with csc.
12757
12758 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
12759
12760         * class.c: Remove the unused cache_interface_offsets stuff.
12761
12762         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
12763         profiler.c: Fix warnings.
12764
12765 2008-03-16  Mark Probst  <mark.probst@gmail.com>
12766
12767         * generic-sharing.c, class-internals.h: Support for putting
12768         methods into the runtime generic context.
12769
12770 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
12771
12772         * class.c (mono_class_setup_fields): Ignore calls made to this function for
12773         classes which are generic instances of not-yet finished typebuilders. Fixes
12774         #351172.
12775
12776         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
12777
12778 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
12779
12780         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
12781
12782         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
12783         field, replace it with a hash table in MonoDynamicImage.
12784
12785         * reflection.c (inflate_mono_method): Access the generic definition object from
12786         image->generic_def_objects instead of imethod->reflection_info.
12787
12788         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
12789
12790         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
12791         
12792         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
12793         function in reflection.c so it is easier to keep in sync with the dynamic image
12794         creation code.
12795
12796         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
12797         mono_image_close ().
12798
12799 2008-03-15  Mark Probst  <mark.probst@gmail.com>
12800
12801         * class.c (mono_class_generic_sharing_enabled): Disable generic
12802         sharing for all architectures except AMD64 and x86 to fix build.
12803
12804 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
12805
12806         * verify.c: Use the generic definition MonoGenericContext when available.
12807         Remove code for checking generics instance compatibility in favor of
12808         mono_class_is_assignable_from.
12809
12810 2008-03-14  Mark Probst  <mark.probst@gmail.com>
12811
12812         * marshal.c, marshal.h, metadata-internals.h, image.c,
12813         wrapper-types.h: New wrapper for invoking a shared static method
12814         without having to pass the runtime generic context argument.
12815
12816 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
12817
12818         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
12819
12820 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
12821
12822         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
12823         
12824         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
12825         create a token from a FieldOnTypeBuilderInst.
12826         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
12827         (resolve_object): Ditto.
12828
12829         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
12830         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
12831
12832 2008-03-14  Martin Baulig  <martin@ximian.com>
12833
12834         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
12835
12836         * debug-mono-symfile.h
12837         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
12838         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
12839
12840 2008-03-10  Martin Baulig  <martin@ximian.com>
12841
12842         * debug-mono-symfile.h
12843         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
12844         `lexical_block_table_offset'.
12845         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
12846         `lexical_blocks'.
12847         (MonoSymbolFile): Added `version'.
12848
12849         * mono-debug.h
12850         (MonoDebugLexicalBlockEntry): Removed.
12851         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
12852         `lexical_blocks'.
12853
12854         * mono-debug.c (mono_debug_add_method): Don't compute lexical
12855         blocks here; the debugger now does this internally.
12856
12857 2008-02-27  Martin Baulig  <martin@ximian.com>
12858
12859         * object.c (mono_runtime_exec_main): Call
12860         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
12861         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
12862
12863 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
12864
12865         * verify.c (verify_type_compatibility_full): Allow native int to be converted
12866         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
12867
12868 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
12869
12870         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
12871         ldftn with a virtual method.
12872
12873 2008-03-13  Geoff Norton  <gnorton@novell.com>
12874
12875         * decimal.c:  Only include memory.h if the platform has it.
12876
12877 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
12878
12879         * assembly.c, class.c, metadata-internals.h: make sure public key
12880         tokesns are compared in a case-insensitive way. Also, all
12881         the lookups in the GAC use a lowercase public key token
12882         (gaacutil already does the lowercasing on install). Fixes
12883         bug #369541.
12884
12885 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
12886
12887         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
12888         and return value.
12889
12890 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
12891
12892         * image.c: when someone loads a mscorlib from a file, return the
12893         currently loaded mscorlib (fixes bug #369253).
12894
12895 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
12896
12897         * class.c: handle types with no parents by forcing them to have
12898         System.Object as a parent and marking them as broken (this currently
12899         allows the first part of bug #369173 to work as well, likely because
12900         we don't check for typeload exceptions everywhere yet).
12901
12902 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
12903
12904         * class.c: more complete check that types belong to corlib
12905         (fixes second part of bug #369173).
12906
12907 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
12908
12909         * generic-sharing.c:  Including glib.h for the MSVC builds to define
12910           "inline" to "__inline" before including mono-membar.h.
12911           
12912         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
12913           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
12914           MSVC builds.
12915
12916         Contributed under MIT/X11 license.
12917
12918 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
12919
12920         * verify.c (do_invoke_method): Remove return type validation.
12921
12922         * verify.c (do_ret): Do return type validation at return site instead of
12923         call site.
12924
12925 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
12926
12927         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
12928
12929         * verify.c: Some todos cleaned and improved a few error messages.
12930
12931 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
12932
12933         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
12934
12935 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
12936
12937         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
12938         system types correctly.
12939
12940         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
12941         function.
12942
12943 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
12944
12945         * assembly.c (build_assembly_name): Fix a warning.
12946
12947 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
12948
12949         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
12950         the called function takes an object type argument. Fixes storing or
12951         valuetypes across remoting as well as reducing memory usage.
12952         * image.c, metadata-internals.h: remove now unused ldfld_remote and
12953         stfld_remote wrapper caches.
12954
12955 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
12956
12957         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
12958         is not found.
12959
12960         * reflection.c (mono_image_register_token): New helper function to save
12961         a token->object mapping.        
12962
12963         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
12964         managed code.
12965
12966         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
12967         one dimension arrays. Fixes #367670.
12968         (mono_reflection_get_type_internal): Ditto.
12969
12970 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
12971
12972         * marshal.c: mono_load_remote_field_new() always returns object.
12973         so use the proper signature (fixes bug #366445).
12974
12975 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
12976         
12977         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
12978         add an 'inline_failure' flag instead.
12979
12980 2008-03-04  Mark Probst  <mark.probst@gmail.com>
12981
12982         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
12983         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
12984         contains the location of "this", used for exception handling.
12985
12986 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
12987
12988         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
12989         their size on all platforms for perf reasons.
12990
12991 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
12992
12993         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
12994         object-internal.h
12995
12996         * object-internal.h: Same.
12997
12998 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
12999
13000         * reflection.h: Fix the build I just broke.
13001
13002 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
13003
13004         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
13005         Test if a token is valid, this remove explicit usage of 
13006         MonoDynamicImage::tokens from the verifier code.
13007
13008         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
13009
13010         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
13011         instead of direct access to MonoDynamicImage::tokens.
13012
13013 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
13014
13015         * verify.c (token_bounds_check): Fix the build I just broke.
13016
13017 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
13018
13019         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
13020
13021         * verify.c (verifier_load_method): Fixed the errors message.
13022
13023         * verify.c (mono_method_verify): Fixed a debug message.
13024
13025 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
13026
13027         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
13028         mono-perfcounters.h, class-internals.h: support for predefined
13029         writable counters, query of categories and counters, bugfixes.
13030
13031 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
13032
13033         * verify.c (do_refanytype): Verify the refanytype opcode.
13034
13035         * verify.c (mono_method_verify): Use do_refanytype.
13036
13037 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
13038
13039         * verify.c (do_mkrefany): Verify the mkrefany opcode.
13040
13041         * verify.c (mono_method_verify): Use do_mkrefany.
13042
13043 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
13044
13045         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
13046         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
13047         implementation.
13048
13049 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
13050
13051         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
13052         the type load exception.
13053
13054 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
13055
13056         * verify.c: Added a few FIXME for method signatures
13057
13058         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
13059         of mono_method_get_signature and get vararg call working. Removed unused
13060         checks for return value.
13061
13062         * verify.c (do_refanyval): Verify the refanyval opcode.
13063
13064         * verify.c (mono_method_verify): Implemented verification of arglist and
13065         use do_refanyval.
13066
13067 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
13068
13069         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
13070         vtypes to marshal.c.
13071
13072         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
13073         it works for AOT as well.
13074
13075 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
13076
13077         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
13078         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
13079         the system time is adjusted.
13080
13081 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
13082
13083         * icall.c, icall-def.h: use the new time functions (fixes the
13084         non-monotonic behaviour of TickCount).
13085
13086 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
13087
13088         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
13089         it breaks the build.
13090         
13091         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
13092         cattr is not finished yet.
13093
13094 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
13095
13096         * verify.c: Proper token validation for field, method and type.
13097
13098 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
13099
13100         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
13101
13102         * loader.c (method_from_memberref): Generate type load error instead of method missing
13103         if the type is not found.
13104
13105 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
13106
13107         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
13108         some of the conversions caused the generation of a marshal directive exception.
13109
13110 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
13111
13112         verify.c: Report which exception should be thrown by the JIT.
13113         Added a lot of FIXME notes.
13114
13115 2008-02-22  Mark Probst  <mark.probst@gmail.com>
13116
13117         * generic-sharing.c: Runtime generic context slots are not
13118         instantiated on init anymore.  Instead, provide function to do the
13119         instantiating on demand.
13120
13121         * class-internals.h: Added vtable to runtime generic context.
13122         Macros for encoding direct and indirect slot offsets in one
13123         guint32.
13124
13125 2008-02-21  Mark Probst  <mark.probst@gmail.com>
13126
13127         * object.c, generic-sharing.c: Moved some generic sharing code
13128         from object.c to generic-sharing.c.
13129
13130         * generic-sharing.c: Added support for extensible runtime generic
13131         context.
13132
13133         * metadata-internals.h: Two new hash tables in MonoImage for
13134         extensible runtime generic context support.
13135
13136         * domain.c: Unregister generic vtables upon domain unloading.
13137
13138         * image.c: Destroy new hash tables upon image unloading.
13139
13140         * metadata.c: Unregister generic subclasses upon image unloading.
13141
13142         * class-internals.h: New data structure for runtime generic
13143         context template.  New fields in the runtime generic context for
13144         extensible part.
13145
13146         * Makefile.am: Added generic-sharing.c.
13147
13148 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
13149
13150         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
13151         there is a pending loader exception, raise it.
13152
13153         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
13154         same.
13155
13156         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
13157         same.
13158
13159         Fixes #363450.
13160
13161 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
13162
13163         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
13164
13165         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
13166         
13167         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
13168         ref-only requests for compatibility with MS.
13169
13170 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
13171
13172         * reflection.c (mono_custom_attrs_from_method): Don't silently
13173         return an empty list for generic method instances.
13174         (mono_custom_attrs_from_param): Likewise.
13175
13176 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
13177             Raja R Harinath  <harinath@hurrynot.org>
13178
13179         Fix #354757
13180         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
13181         * class.c (mono_class_inflate_generic_method_full): Initialize it
13182         when a fully-open method is instantiated.
13183         * metadata.c (inflated_method_equal, inflated_method_hash): Update
13184         to new field.
13185         * reflection.c (inflate_mono_method): Don't create a temporary context.
13186
13187 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
13188
13189         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
13190         Compute correct value, to prepare for imethod->reflection_info going away.
13191
13192 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
13193
13194         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
13195
13196 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
13197
13198         * verify.c: Implement skip visibility flag.
13199
13200 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
13201
13202         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
13203         which contains an extra field to tell the kind of exception that should be thrown.
13204
13205         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
13206
13207 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
13208
13209         * loader.c (mono_method_get_param_names): Initialize 'klass' after
13210         'method' is updated.
13211
13212 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
13213
13214         * class.c (mono_class_layout_fields): Set class->min_align for classes using
13215         explicit layout as well. Fixes #360375.
13216
13217 2008-02-11  Geoff Norton  <gnorton@novell.com>
13218
13219         * loader.c: Guard and dereference against inflated generic methods
13220
13221 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
13222
13223         * class.c: Include Retargetable spec in assembly name.
13224         * assembly.c: Always include PublicKeyToken spec in assembly name
13225         (with value "null" if assembly is not signed), and include
13226         Retargetable spec.
13227         * icall-def.h: Added icall for Assembly.get_fullname.
13228         * icall.c: Added icall returning the fullname of an assembly.
13229
13230 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
13231
13232         * class.c (mono_class_setup_vtable_general): Add a missing call to
13233         mono_class_setup_methods () which is needed in the AOT case.
13234
13235 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
13236
13237         * verify.c (mono_type_get_stack_name): Added. Return the name for the
13238         stack type of the given MonoType.
13239
13240         * verify.c (verify_type_compatibility_full): Handle the void type.
13241
13242         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
13243         way stack merging works.
13244
13245         * verify.c (store_local): Improved verification message.
13246
13247         * verify.c (do_branch_op): If the merging is invalid, the method
13248         is unverifiable and not invalid. Improved error message.
13249
13250         * verify.c (merge_stacks): Properly merge a boxed valuetype and
13251         a reference type diferent than System.Object. Improved error
13252         message.
13253
13254 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
13255
13256         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
13257
13258         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
13259         type of an enum even if the argument is byref.
13260
13261         * verify.c: Replace all explicit uses of enumtype and enum_basetype
13262         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
13263
13264         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
13265
13266         *verify.c (verify_type_compatibility_full): Make enum types
13267         compatible with their base types.
13268
13269         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
13270         types are compatible for the special case of a boxed valuetype and
13271         System.Object.
13272
13273         * verify.c (verify_stack_type_compatibility): The function
13274         is_compatible_boxed_valuetype was extracted from here.
13275
13276         * verify.c (push_arg): Only set ctx->has_this_store if the method
13277         is not static.
13278
13279         * verify.c (do_ldelem): Fixed a typo in an error message and added
13280         strict check for mixing int32 and native int as the array type
13281         and ldelem type.
13282
13283         * verify.c (merge_stacks): Consider boxed valuetypes in the
13284         compatibility checks.
13285
13286 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
13287         * profiler.h: (MonoGCEvent): Added start-stop the world events.
13288
13289 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
13290         *class.c: use_new_interface_vtable_code: renamed the env var to have
13291         a "MONO_" prefix, and fix the logic to enable it by default.
13292
13293 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
13294         *class.c:
13295         mono_class_setup_vtable_general: rewrote the way in which interface
13296         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
13297         makes the code more maintainable.
13298         For now the old code is still there, and can be activated setting
13299         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
13300
13301 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
13302
13303         * verify.c: guarded some debug functions around and #ifdef.
13304
13305         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
13306
13307 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
13308
13309         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
13310         changes for now since they seem to break too many things.
13311
13312 2008-02-05  Mark Probst  <mark.probst@gmail.com>
13313
13314         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
13315         mono_marshal_find_nonzero_bit_offset): Added macro and function
13316         for finding the byte- and bit-offset of a bitfield within a
13317         struct.
13318
13319 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
13320
13321         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
13322         (mono_marshal_get_struct_to_ptr): Ditto.
13323
13324         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
13325         cctor_signature.
13326
13327 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
13328
13329         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
13330         between methods for non-corlib types.
13331
13332 2008-02-02  Geoff Norton  <gnorton@novell.com>
13333
13334         * loader.c (mono_method_get_param_names): Populate the parameter name for 
13335         generic parameters as well. (Fixes #342536)
13336
13337 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
13338
13339         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
13340
13341         * verify.c (do_invoke_method): Fix for calling with byref structs.
13342
13343         * verify.c (do_cast): push a boxed value type based on the type token and not
13344         the type of stack.
13345
13346 2008-01-31  William Holmes  <billholmes54@gmail.com>
13347
13348         * process.c (process_module_string_read): Check the size returned form 
13349           VerQueryValue to avoid out of memory exception. 
13350
13351 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
13352
13353         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
13354         Handle properly modules which are not in the moduleref table. Fixes
13355         #356938.
13356
13357 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
13358
13359         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
13360         the dynamic case which is now in managed code.
13361         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
13362
13363         * marshal.c (mono_string_to_bstr): Fix a warning.
13364         (init_com_provider_ms): Ditto.
13365
13366         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
13367
13368         * exception.c (mono_get_exception_out_of_memory): New helper function.
13369
13370 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
13371
13372         * marshal.c: Add support for BSTR marshalling
13373         using other COM systems.
13374
13375         Code is contributed under MIT/X11 license.
13376
13377 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
13378
13379         * object.c (mono_runtime_invoke_array): reverted previous
13380         commit as it breaks the build.
13381
13382 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
13383
13384         * object.c (mono_runtime_invoke_array): Verify arguments for
13385         invalid types. Fixes #348522.
13386
13387 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
13388
13389         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
13390         non-final virtual calls using call. 
13391
13392         * verify.c (do_invoke): fixed some TODOs.
13393
13394         * verify.c (push_arg): set has_this_store for "ldarga 0".
13395
13396 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
13397
13398         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
13399         which belong to an inflated class. Fixes #356531.
13400
13401 2008-01-26  Robert Jordan  <robertj@gmx.net>
13402
13403         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
13404         which resort to FindFirstFile when a certain error condition
13405         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
13406         Code is contributed under MIT/X11 license.
13407
13408 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
13409
13410         * marshal.c (emit_marshal_string): Fix out string marshalling
13411         to use specified encoding. Fixes #323900.
13412
13413         Code is contributed under MIT/X11 license.
13414
13415 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
13416
13417         * class.c (mono_class_inflate_generic_method_full): Don't modify
13418         iresult->context after cache check.
13419
13420 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
13421
13422         * class.c (mono_class_inflate_generic_method_full): Change the
13423         struct assignments to memcpy for better visibility and add some comments.
13424
13425 2008-01-23  Dick Porter  <dick@ximian.com>
13426
13427         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
13428         procedure, and make it work on windows.
13429
13430 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
13431
13432         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
13433         a MonoReflectionTypeBuilder since it is always of that type.
13434
13435         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
13436
13437         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
13438
13439         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
13440         
13441         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
13442
13443         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
13444
13445         * reflection.c (mono_reflection_create_runtime_class): Remove already created
13446         instantiations from the type cache.
13447
13448 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
13449
13450         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
13451
13452         * verify.c (do_unbox_value): push a controled mutability managed pointer.
13453
13454 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
13455
13456         * verify.c (do_ldstr): added, verifies if the #US token is valid.
13457
13458         * verify.c (mono_method_verify): removed old TODO
13459
13460 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
13461
13462         * verify.c (do_newobj): add visibility check.
13463
13464 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
13465
13466         * verify.c (do_load_function_ptr): add visibility check.
13467
13468 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
13469         *class.c:
13470         mono_generic_class_get_class: hook profiler events.
13471         mono_field_get_offset: added to support heap-shot in the new profiler.
13472         *class.h: exported mono_field_get_offset.
13473         * reflection.c:
13474         mono_reflection_setup_internal_class: hook profiler events.
13475
13476 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
13477
13478         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
13479         argument here too and use it to avoid checking for pending exceptions if 
13480         possible.
13481
13482 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
13483
13484         * assembly.c (build_assembly_name): add arg for passing the assembly
13485         flags. Do not consider a PublicKey with value "null" valid.
13486         (mono_assembly_name_parse_full): added boolean argument that will be
13487         set if the assembly name contains a PublicKeyToken spec. Added support
13488         for the Retargetable spec for which only Yes or No are allowed as valid
13489         value. Consider assembly name invalid if Retargetable spec is set, but
13490         either version, culture or public key (token) are not specified.
13491         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
13492         with implementation in assembly.c.
13493         * icall.c (fill_reflection_assembly_name): also copy assembly flags
13494         from MonoAssemblyName.
13495         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
13496         introduced argument for mono_assembly_name_parse_full to know if the
13497         assembly name has a PublicKeyToken spec, and if it has instruct
13498         fill_reflection_assembly_name to use default value for keyToken (if
13499         PublicKeyToken is null).
13500
13501 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
13502
13503         * verify.c (mono_method_verify): fixed ovf ops with
13504         float values. They are unverifiable now.
13505
13506 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
13507
13508         * class.c (set_failure_from_loader_error): add BadImageException to the
13509         list of exceptions that can cause a type to fail to load.
13510
13511         * class.c (mono_class_get_exception_for_failure): same.
13512
13513 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
13514
13515         * verify.c (in_any_exception_block): added, check if offset
13516         is part of any exception handling clause.
13517
13518         * verify.c (get_stack_type): added VAR and MVAR types.
13519
13520         * verify.c (do_stobj): better error messages.
13521
13522         * verify.c (do_cpobj): added, check cpobj.
13523
13524         * verify.c (do_initobj): added, check initobj.
13525
13526         * verify.c (do_sizeof): added, check sizeof.
13527
13528         * verify.c (do_localloc): added, check localloc.
13529
13530         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
13531
13532 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
13533
13534         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
13535         save_lmf/restore_lmf opcodes.
13536
13537         * threads.c (mono_threads_install_notify_pending_exc): New function to
13538         install a callback notifying the JIT there is a pending exception on a thread.
13539         (mono_thread_request_interruption): Call the new callback.
13540         (mono_thread_get_and_clear_pending_exception): New function to return the
13541         exception pending on a thread.
13542
13543         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
13544         to turn off checking for pending exceptions.
13545         (mono_marshal_get_native_wrapper): Ditto.
13546
13547 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
13548
13549         * threads-types.h: Get rid of the unnecessary extern declarations.
13550
13551 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
13552
13553         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
13554         return field from parent class if not private.
13555         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
13556         returns fields from parent class if they are not private.
13557         (method_nonpublic): added function to determine if a given method
13558         should be considered non-public. Returns false for private methods
13559         on parent class, and internal methods from parent on the 1.0 profile.
13560         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
13561         use method_nonpublic function to determine whether method should be
13562         returned.
13563         (property_accessor_public): use newly introduced method_nonpublic
13564         function to determine whether accessor is non-public. 
13565         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
13566         event from parent class if not private. Only return static event if
13567         Static flag is set, and only return static event from parent class if
13568         FlattenHierarchy flag is set.
13569         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
13570         include non-private events from parent class.
13571
13572 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
13573
13574         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
13575         warning.
13576
13577 2008-01-16  Wade Berrier <wberrier@novell.com>
13578
13579         * security.c: Add assembly.h header to appease some warnings
13580
13581 2008-01-16  Dick Porter  <dick@ximian.com>
13582
13583         * process.c (process_module_string_read): Remove trailing null
13584         when saving string.
13585
13586 2008-01-16  Mark Probst  <mark.probst@gmail.com>
13587
13588         * class-internals.h: A new data structure describing the layout of
13589         a runtime generic context (MonoRuntimeGenericContextTemplate).
13590
13591         * metadata-internals.h: Added a hash table to MonoDomain that maps
13592         from open generic classes to their runtime generic context
13593         templates.
13594
13595         * object.c: Building of the runtime generic context, including
13596         proper handling of generic type arguments of superclasses.
13597         Building of the runtime generic context according to the template.
13598
13599 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
13600
13601         * class.c (mono_class_setup_fields): Set field.count for generic instances.
13602         Fixes #350856.
13603
13604         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
13605         mono_portability_find_file (). Fixes #325466.
13606         (mono_image_get_public_key): Fix a warning.
13607
13608 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
13609
13610         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
13611         Fixes #353550.
13612         (mono_class_from_name_case): Ditto.
13613
13614 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
13615
13616         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
13617           common storage for the tables used in the System/NumberFormatter class.
13618
13619 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
13620
13621         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
13622
13623 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
13624
13625         * verify.c (get_boxable_mono_type): check if the token is valid.
13626
13627         * verify.c (set_stack_value): changed to add an error if an
13628         invalid type is set on stack. Changed all callers due to signature change.
13629
13630         * verify.c (do_stobj): implement stobj validation.
13631
13632 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
13633
13634         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
13635         set container->is_method, it was set earlier.
13636
13637         * metadata.c (type_in_image): Handle MVARs which belong to not finished
13638         generic methods.
13639
13640         * reflection.c (mono_reflection_initialize_generic_parameter): Set
13641         is_method of the generic container to TRUE for methods.
13642
13643 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
13644
13645         * metadata.c (type_in_image): Handle type parameters properly.
13646
13647         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
13648         memory ownership of this structure.
13649
13650 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
13651
13652         * verify.c (get_boxable_mono_type): make typedref types been just
13653         unverifiable. check for void type.
13654
13655         * verify.c (do_unbox_any): added, verify opcode unbox.any.
13656
13657         * verify.c (do_load_function_ptr): accept method spec tokens.
13658
13659 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
13660
13661         * marshal.c (mono_class_native_size): Always set *align even if this is called
13662         recursively.
13663
13664 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
13665
13666         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
13667         out-of-date.
13668
13669 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
13670
13671         * verify.c: removed some old unused tables. A huge bunch of small fixes
13672         to things found while testing the verifier with mono basic.
13673
13674         * verify.c (dump_stack_value): dump null literal flag to.
13675
13676         * verify.c (verify_type_compatibility_full): fix comparison
13677         for types that have a generic super type.
13678
13679         * verify.c (verify_stack_type_compatibility): fix compatibility
13680         between null literals and reference types. fix compatibility between
13681         boxed valuetypes and object. fix corner case test for enums.
13682
13683         * verify.c (do_cmp_op): proper verification of cgt.un in case
13684         of reference types.
13685
13686         * verify.c (do_invoke_method): fix error message.
13687
13688         * verify.c (do_store_indirect
13689
13690         * verify.c (check_is_valid_type_for_field_ops): proper verification
13691         of managed pointers to valuetypes and boxed valuetypes. proper verification
13692         of null literals.
13693
13694         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
13695         allow token to be a reference type.
13696
13697         * verify.c (do_cast): proper handling of boxes valuetypes.
13698
13699         * verify.c (do_stelem): proper handling of storing a boxed valuetype
13700         in object[].
13701
13702         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
13703         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
13704         fixed the decoding of unbox_any
13705
13706 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
13707
13708         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
13709
13710 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
13711
13712         * verify.c (do_newobj): do delegate verification.
13713
13714         * verify.c (verify_delegate_compatibility): perform delegate
13715         verification.
13716
13717         * verify.c (verify_ldftn_delegate): perform tests related to
13718         ldftn delegates.
13719
13720         * verify.c (mono_delegate_signature_equal): perform the
13721         slightly diferent signature comparison required by delegates.
13722
13723         * metadata.c (mono_metadata_type_equal_full): added and exported
13724         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
13725         allows signature only comparison.
13726
13727         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
13728         as MONO_INTERNAL.
13729
13730 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
13731
13732         * verify.c: added a bunch of stack_slot_* functions to
13733         make access to stack slot type easier. This is required to
13734         allow optional flags, like null literal, boxed value and
13735         this pointer.
13736         All access paths to IlStackDesc::stype have been changed 
13737         to use these new funcions.
13738         Removed a bunch of unused functions and cleared all warnings.
13739         This patch introduces the usage of the this pointer and 
13740         boxed value flags.
13741
13742 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
13743
13744         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
13745
13746 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
13747
13748         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
13749         match managed version.
13750
13751         * appdomain.c: Bump corlib version.
13752         
13753         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
13754         argument.
13755
13756 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
13757
13758         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
13759         Set public key token to zero-length byte array if assembly is not
13760         strongnamed.
13761
13762 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
13763
13764         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
13765         writing a vtype array elem.
13766
13767 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
13768
13769         * assembly.c (build_assembly_name): return FALSE if length of token is
13770         not 16 (if not "null").
13771         (mono_assembly_name_parse_full): return FALSE if value of version,
13772         culture, token or key is 0.
13773         * icall.c (fill_reflection_assembly_name): add boolean arguments to
13774         specify whether public key and public key token must be set to default
13775         value (zero-length byte array) if not available. Set versioncompat to
13776         SameMachine. If public key is available or the default is set, then
13777         set PublicKey flag.
13778         (ves_icall_System_Reflection_Assembly_FillName): if no public key
13779         is available, use empty byte array as default value. On the 2.0
13780         profile, use default value for public key token if not set.
13781         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
13782         profile, use default value for public key if not set. On the 2.0
13783         profile, use default value for public key token if not set.
13784         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
13785         default values for public key and public key token.
13786
13787 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
13788
13789         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
13790         field to keep it in synch with the managed object.
13791
13792         * marshal.c (emit_marshal_object): Add support for byref marshalling of
13793         delegates. Fixes #351520.
13794
13795         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
13796         contains defined memory.
13797         
13798         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
13799
13800         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
13801         
13802         * sgen-gc.c (check_consistency): New helper function to do a consistency check
13803         of the GC data structures.
13804
13805         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
13806
13807         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
13808         
13809         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
13810         barrier.
13811         (mono_array_clone_in_domain): Ditto.
13812         (mono_array_clone_in_domain): Ditto.
13813
13814         * threads.c (start_wrapper): Register the thread start argument as a GC root.
13815         (cache_culture): Use a write barrier.
13816
13817         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
13818         (ves_icall_get_property_info): Ditto.
13819
13820         * object.h (MONO_STRUCT_SETREF): New macro.
13821
13822         * class-internals.h (MonoStats): Add some GC statistics.
13823
13824         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
13825
13826 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
13827
13828         * exception.c (mono_exception_from_name_two_strings):
13829         Break from loop after method is found.
13830
13831 2008-01-04  Dick Porter  <dick@ximian.com>
13832
13833         * process.c (process_module_string_read): Rename variable to
13834         reflect correct usage, after fixing bug 345972.
13835
13836 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
13837
13838         * verify.c (mono_type_create_fnptr_from_mono_method): 
13839         created a MonoType function pointer instance to be used during
13840         verification. The verifier releases this memory at end.
13841
13842         * verify.c (mono_method_is_constructor): extracted repeated
13843         checks for constructor into a single class.
13844
13845         * verify.c (do_push_field): use new extracted method
13846         for constructor check.
13847
13848         * verify.c (do_newobj): same.
13849
13850         * verify.c (do_ldftn): renamed to do_load_function_ptr
13851         and make it verify ldvirtftn too.
13852
13853         * verify.c (mono_method_verify: proper verification
13854         of ldvirtftn. release created MonoMethod instances.
13855
13856 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
13857
13858         * verify.c (token_bounds_check): added.
13859
13860         * verify.c (do_ldftn): added.
13861
13862         * verify.c (mono_method_verify): proper verificartion of ldftn.
13863
13864 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
13865
13866         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
13867         than the table row count. It's the resposibility of the caller to
13868         make the bounds check and raise the correct error.
13869
13870         * metadata.c (mono_metadata_decode_row_col): Same.
13871
13872         * loader.c (mono_get_method_from_token): perform bounds check
13873         on token for methoddef table.
13874
13875 2007-12-29  Miguel de Icaza  <miguel@novell.com>
13876
13877         * icall.c
13878         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
13879         assert into a negative result, the managed code already coped with
13880         that.
13881
13882         Some folks on Windows reported this error. 
13883
13884 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
13885
13886         * appdomain.c: Bump corlib version.
13887         * icall.c:
13888         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
13889         CultureInfo.CreateCulture to create CultureInfo for name.
13890         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
13891         create CultureInfo for name. Fixes bug #347174.
13892
13893 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
13894
13895         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
13896         flags.
13897
13898         * verify.c (is_valid_branch_instruction): allow branching to the
13899         first instruction of the protected block.
13900
13901         * verify.c (is_valid_cmp_branch_instruction): same.
13902
13903         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
13904         avoid double initialization.
13905
13906         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
13907         detect which cases the eval stack should just be copied.
13908
13909         * verify.c (mono_method_verify): check if the eval stack
13910         is empty when entering a protected block.
13911
13912 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
13913
13914         * verify.c: added is_clause_in_range, is_clause_inside_range,
13915         is_clause_nested and verify_clause_relationship. They perform
13916         the verifications stated in P1 12.4.2.7.
13917
13918         * verify.c (mono_method_verify): remove some unused variables,
13919         add the new exception clause checks, add instruction border
13920         checks for protected block start/end, improved some error 
13921         messages and fixed a bug in the way invalid instruction access
13922         is detected.
13923
13924 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
13925
13926         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
13927         from GC 7.0 if available.
13928
13929         * object.c: Remove an unused define.
13930         
13931         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
13932
13933         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
13934
13935         * null-gc.c (mono_gc_make_descr_for_array): Implement.
13936
13937         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
13938
13939         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
13940         to take the same arguments as the other make_descr functions.
13941
13942         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
13943
13944         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
13945         directly.
13946
13947         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
13948         mini.c.
13949
13950         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
13951         call to boehm-gc.c.
13952
13953         * boehm-gc.c (mono_gc_register_root): Fix a warning.
13954
13955         * null-gc.c (mono_gc_register_root): Fix a warning.
13956
13957         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
13958
13959         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
13960         (mono_gc_base_init): Call GC_init ().
13961
13962         * null-gc.c: Define mono_gc_register_root () as a no-op.
13963
13964         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
13965
13966 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
13967
13968         * verify.c: add prototype for merge_stacks at top
13969
13970         * verify.c (do_switch): added.
13971
13972         * verify.c (merge_stacks): on some cases the stack merging
13973         was not happening properly. Unequal stack sizes at merge
13974         points should be invalid.
13975
13976         * verify.c (mono_method_verify): added more debug info on stack state.
13977         verify switch properly.
13978
13979 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
13980
13981         * method-builder.h: New file, moved the mono_mb_ declarations here from 
13982         marshal.h.
13983
13984         * boehm-gc.c marshal.c: Include method-builder.h.
13985
13986         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
13987
13988         * marshal.c: Remove some code which is now in method-builder.c.
13989
13990 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
13991
13992         * method-builder.c: New file, extraction of the method builder functionality 
13993         from marshal.c.
13994
13995         * marshal.c: Move the mb functions into method-builder.c.
13996
13997         * marshal.h marshal.c: Export some mono_mb_... functions.
13998
13999         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
14000
14001         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
14002         the caller.
14003
14004         * class.c (mono_class_get_full): Check the token type in the dynamic case.
14005
14006         * loader.c (mono_field_from_token): Ditto.      
14007
14008         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
14009         type as well.
14010         
14011         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
14012         Fixes #342565.
14013
14014         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
14015         a helper function for setting it.
14016
14017         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
14018
14019         
14020         * assembly.c: Significally simplify code now that referenced assemblies are 
14021         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
14022
14023         * threads.h: Don't include  the internal threads-types.h header file. Fixes
14024         #349952.
14025
14026 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
14027
14028         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
14029         instructions that were target of branches or are at protected block boundaries.
14030
14031         * verify.c (in_same_block): handle filter clauses.
14032
14033         * verify.c (is_valid_branch_instruction): added. checks the target of
14034         instructions br or brtrue/false.
14035
14036         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
14037         binary branch instructions such as beq and bge.
14038
14039         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
14040         and made it pin the instruction as been part of the exception block.
14041
14042         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
14043         of in_same_block.
14044
14045         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
14046         of in_same_block.
14047
14048         * verify.c (do_ret): ret from a protected block is unverifiable and
14049         not invalid.
14050
14051         * verify.c (do_static_branch): verify br and br.s instructions.
14052
14053         * verify.c (merge_stacks): add extra param to support detection
14054         of branches in the middle of instructions.
14055         
14056         * verify.c (mono_method_verify): verify branches and exception blocks
14057         that target the middle of instructions. Proper verification of br and br.s.
14058
14059 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
14060
14061         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
14062         skip_visibility field.
14063         (reflection_methodbuilder_from_dynamic_method): Ditto.
14064
14065         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
14066         registrations. Fixes #348193.
14067
14068         * threads.h: Move the internal mono_thread_get_pending_exception () to
14069         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
14070
14071 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
14072
14073         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
14074         icall registration. Fixes #348193.
14075
14076         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
14077         for corlib classes into object. Fixes #349621.
14078
14079 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
14080
14081         * icall.c (property_accessor_nonpublic): new function to determine
14082         whether an accessor allows a property to be considered non-public.
14083         Returns false for private accessor(s) from parent class, and internal
14084         accessor(s) from parent on 2.0 profile (and higher).
14085         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
14086         to determine whether property should be included if NonPublic flag
14087         is set. Fixes bug #349078.
14088
14089 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
14090
14091         * verify.c (init_stack_with_value): added.
14092
14093         * verify.c (mono_method_verify): extracted common
14094         code for exception initialization into init_stack_with_value.
14095
14096         * verify.c (mono_method_verify): initialize the exception
14097         for handler clauses as well.
14098
14099         * verify.c (mono_method_verify): fix the exception clause
14100         ordering rules, it should use handler end offset and not
14101         start offset.
14102
14103 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
14104
14105         * rawbuffer.c: remove useless warning.
14106
14107 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
14108
14109         * threads.h, threads-types.h: move functions to the correct header
14110         (fixes bug#349952).
14111
14112 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
14113
14114         * verify.c (mono_method_verify): proper verification
14115         of exception handling clauses ranges and fallthru in
14116         and out of protected blocks.
14117
14118 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
14119
14120         * verify.c (mono_method_verify): fixed compilation issue.
14121
14122 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
14123
14124         * verify.c (mono_method_verify): a printf slipped in, changed
14125         to use verifier debug macro.
14126
14127 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
14128
14129         * verify.c (is_correct_leave): check for filter clauses.
14130
14131         * verify.c (do_filter): added.
14132
14133         * verify.c (mono_method_verify): property verification of leave.
14134
14135
14136 2007-12-18  Mark Probst  <mark.probst@gmail.com>
14137
14138         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
14139         Win32 build, until we figure out how to do the proper thing on
14140         Win32.
14141
14142 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
14143
14144         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
14145         by the previous patch.
14146         
14147         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
14148         the assembly resolve handler for refonly assemblies.
14149
14150 2007-12-17  Mark Probst  <mark.probst@gmail.com>
14151
14152         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
14153         Make sure only one thread is allowed to commence shutdown, and
14154         don't allow new threads to be started once shutdown is in
14155         progress.
14156
14157 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
14158
14159         * verify.c (is_correct_endfilter): added.
14160
14161         * verify.c (is_unverifiable_endfilter): added.
14162
14163         * verify.c (do_endfilter): added.
14164
14165         * verify.c (mono_method_verify): property verification of endfilter
14166         and fixed a corner case or endfinally.
14167
14168 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
14169
14170         * verify.h: new flags to support fail fast of unverifiable code and
14171         do non-strict verification. Non-strict verification is required to
14172         have MS runtime compatibility. There are a huge amount of unverifiable
14173         code that it accepts as verifiable. The strict mode verifies the code
14174         as the specs says.
14175         Non-strict mode will be required in cases where code needs to be
14176         accepted as verifiable but fails under strict mode.
14177
14178         * pedump.c: added support to fail fast and non-strict verification.
14179
14180         * verify.c: added support for both fail fast and non-strict verification.
14181
14182 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
14183
14184         * verify.c (is_correct_endfinally): added.
14185
14186         * verify.c (mono_method_verify): property verification of endfinally.
14187
14188 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
14189
14190         * verify.c (in_any_block): check for filter clauses.
14191
14192         * verify.c (is_correct_rethrow): added.
14193
14194         * verify.c (mono_method_verify): property verification of rethrow.
14195
14196         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
14197
14198 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
14199
14200         * verify.c (do_throw): added.
14201
14202         * verify.c (mono_method_verify): property verification of throw
14203
14204 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
14205
14206         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
14207         assemblies. Fixes #346425.
14208
14209 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
14210
14211         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
14212         FieldBuilders.
14213
14214         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
14215
14216         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
14217         prevent asserts when this is called with a token which might not be valid.
14218
14219         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
14220         lookup_dynamic_token_class with valid_token == FALSE.
14221
14222         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
14223
14224         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
14225
14226         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
14227         
14228 2007-12-10  Mark Probst  <mark.probst@gmail.com>
14229
14230         * gc.c: Don't delay threadpool thread finalization unless Mono is
14231         shutting down.
14232
14233 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
14234
14235         * threads.c: turn an assert into a non-fatal warning.
14236
14237 2007-12-09  Robert Jordan  <robertj@gmx.net>
14238
14239         * icall.c (GetVirtualMethod): Add missing argument validation.
14240
14241 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
14242
14243         * verify.c (do_cast): added.
14244
14245         * verify.c (mono_method_verify): property verification of castclass and isinst.
14246
14247
14248 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
14249
14250         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
14251
14252         * verify.c (do_stelem): added.
14253
14254         * verify.c (mono_method_verify): property verification of stelem.X.
14255
14256 2007-12-07  Mark Probst  <mark.probst@gmail.com>
14257
14258         * class.c, class-internals.h: Introduce an environment variable
14259         (MONO_GENERIC_SHARING) through which the extent of generic code
14260         sharing can be controlled (share all classes, share only corlib
14261         classes, or share nothing).
14262
14263         * object.c: Only create runtime generic context for classes for
14264         which sharing is enabled.
14265
14266 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
14267
14268         * verify.c (do_ldelem): refactor it to work with ldelem.any.
14269
14270         * verify.c (mono_method_verify): property verification of ldelem.any.
14271
14272 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
14273
14274         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
14275         added ldelem.X opcodes.
14276
14277         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
14278
14279         * verify.c: proper verification of ldelem.X 
14280
14281 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
14282
14283         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
14284
14285 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
14286
14287         * verify.c (mono_method_verify): null literal requires special handling,
14288         the value pushed on stack need to be flagged as so.
14289
14290         * verify.c (do_ldelema): Verify ldelema properly.
14291
14292 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
14293
14294         * verify.c: Verify ldlen properly.
14295
14296 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
14297
14298         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
14299         to the target object's type. Fixes #346160.
14300
14301 2007-12-05  Dick Porter  <dick@ximian.com>
14302
14303         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
14304         Solaris needs the same workaround as BSD-derived systems.  Fixes
14305         bug 323524, patch by Burkhard Linke
14306         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
14307
14308 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
14309
14310         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
14311         handle to use when error dialog is shown; otherwise, update mask
14312         to show no error dialog when an error occurs.
14313
14314 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
14315
14316         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
14317
14318         * class.c (mono_class_get_field_default_value): New helper function to initialize
14319         field->def_type and field->data.
14320
14321 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
14322
14323         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
14324         the general one.
14325
14326         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
14327
14328         * marshal.c: Avoid depending on delegate->method_info being set.
14329
14330         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
14331         
14332         * object.c (mono_delegate_ctor): Set delegate->method.
14333
14334         * object-internals.h (struct _MonoDelegate): Add 'method' field.
14335
14336         * appdomain.c: Bump corlib version.
14337
14338 2007-11-27  Raja R Harinath  <harinath@gmail.com>
14339
14340         * metadata.c (mono_generic_inst_equal_full): Short-circuit
14341         equality check if we're comparing canonicalized MonoGenericInsts.
14342
14343 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
14344
14345         * class.c (generic_array_methods): Call mono_class_setup_methods () before
14346         accessing class->methods.
14347
14348 2007-11-22  Dick Porter  <dick@ximian.com>
14349
14350         * threads.c: Ensure that the synch_cs is set before trying to use
14351         it.
14352
14353 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
14354
14355         * profiler.c: r89126 broke the statistial profiler, unbreak.
14356
14357 2007-11-22  Martin Baulig  <martin@ximian.com>
14358
14359         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
14360
14361         * mono-debug.c
14362         (mono_debug_debugger_version): Bump to 3.
14363         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
14364         -> mono_debugger_class_initialized().
14365
14366         * mono-debug-debugger.c
14367         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
14368
14369         * class.c
14370         (mono_debugger_start_class_init_func): Removed.
14371         (mono_debugger_class_loaded_methods_func): Added.
14372         (mono_class_setup_methods): Call it here.
14373
14374 2007-11-22  Martin Baulig  <martin@ximian.com>
14375
14376         * mono-debug.c
14377         (mono_debug_add_delegate_trampoline): New public method.
14378         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
14379
14380         * mono-debug.h
14381         (MonoSymbolTable): Added `global_data_table'.
14382         (MonoDebuggerTypeKind): Removed.
14383
14384 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
14385
14386         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
14387         these methods.
14388
14389         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14390         
14391 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
14392
14393         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
14394
14395 2007-11-20  Martin Baulig  <martin@ximian.com>
14396
14397         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
14398
14399         * mono-debug-debugger.c
14400         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
14401         (mono_debugger_remove_breakpoint): Likewise.
14402         (mono_debugger_check_breakpoints): Likewise.
14403         (mono_debugger_register_class_init_callback): New public method.
14404         (mono_debugger_remove_class_init_callback): Likewise.
14405         (mono_debugger_add_type): Likewise.
14406
14407         * mono-debug-debugger.h
14408         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
14409
14410 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
14411
14412         * class.c: more interface implementations needed for the
14413         array enumerator (fixes bug #341112).
14414
14415 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
14416
14417         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
14418         fix ParamName of ArgumentNullExceptions.
14419
14420 2007-11-17  Miguel de Icaza  <miguel@novell.com>
14421
14422         * reflection.c (mono_reflection_encode_sighelper): Generate the
14423         modopts and modreqs.   I have a useless test that crashes monodis,
14424         but that shows the code working.
14425
14426 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
14427
14428         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
14429         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
14430
14431 2007-11-15  Dick Porter  <dick@ximian.com>
14432
14433         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
14434         When joining a thread, it's the thread that's calling Join that
14435         gets WaitSleepJoin state not the target.  Fixes the standalone
14436         test case in bug 334740, and hopefully the whole bug too.
14437
14438 2007-11-15  Dick Porter  <dick@ximian.com>
14439
14440         * process.c: Read file version info from the files pointed at by
14441         process modules, not the current process.  Fixes bug 315969.
14442
14443         Use windows typedef names in some places to fix warnings on the
14444         windows build.
14445
14446 2007-11-15  Mark Probst  <mark.probst@gmail.com>
14447
14448         * image.c, metadata-internals.h: Added a generic_class_cache hash
14449         to MonoImage for looking up generic classes when sharing generics.
14450
14451 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
14452
14453         * sgen-gc.c: warning cleanups.
14454
14455 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
14456
14457         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
14458         inherited properties.
14459
14460 2007-11-14  Mark Probst  <mark.probst@gmail.com>
14461
14462         * object.c, class-internals.h: Added more information to the
14463         runtime generic context.
14464
14465 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
14466
14467         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
14468         instead of just the target method. Generalize the abstract method handling to
14469         handle any non-static method.
14470
14471         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
14472         mono_marshal_get_delegate_invoke () signature change.
14473
14474 2007-11-13  Mark Probst  <mark.probst@gmail.com>
14475
14476         * class.c, class-internals.h: Made
14477         mono_type_get_basic_type_from_generic () public.  Fixed member
14478         access check for shared generics.
14479
14480         * loader.c: Don't insert field into field cache if it's part of a
14481         non-inflated generic class.
14482
14483         * domain.c, domain-internals.h: The generic sharing context is now
14484         part of the jit info data structure.  Added two accessor
14485         functions.
14486
14487 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
14488
14489         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
14490         the array Get/Set/Address methods, since the JIT inlines them.
14491
14492         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
14493
14494         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
14495         (mono_image_init): Initialize runtime_invoke_direct_cache.      
14496
14497         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
14498         mono_marshal_get_delegate_invoke signature change.
14499
14500         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
14501         an additional argument. Add support for invoking abstract methods.
14502
14503         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
14504
14505         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
14506
14507 2007-11-09  Mark Probst  <mark.probst@gmail.com>
14508
14509         * class.c: Do field layout for open generic classes as well.
14510
14511 2007-11-09  Mark Probst  <mark.probst@gmail.com>
14512
14513         * gc.c, gc-internal.h: Don't finalize threadpool threads with
14514         other objects, because the threadpool is still around.  Put them
14515         in a list instead and after finalizing all other objects in the
14516         root domain shut down the thread pool and then finalize the
14517         threads.  Fixes bug #337383.
14518
14519         * threads.c, thread-types.h: New mono_thread_create_internal()
14520         function for marking a thread with the threadpool flag before it
14521         started.  Set synch_cs to NULL after freeing it.
14522
14523         * threadpool.c: Mark threadpool threads before they start.
14524
14525 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
14526
14527         * reflection.h, reflection.c: don't export random functions
14528         and lazy load dbnull and missing objects.
14529
14530 2007-11-07  Jonathan Chambers <joncham@gmail.com>
14531
14532         * class.c: Initialize COM types if COM interfaces
14533         are present (not just COM classes).
14534         
14535         Code is contributed under MIT/X11 license.
14536
14537 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
14538         * reflection.c:
14539         create_dynamic_mono_image: hook module profiler events (dynamic case).
14540         mono_image_basic_init: hook assembly profiler events (dynamic case).
14541
14542 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
14543         * profiler.c:
14544         simple_appdomain_unload: completely terminate the profiler
14545         instead of only processing the statistical samples.
14546         simple_shutdown: make sure this is really called exactly once,
14547         even in multithreaded applications, and always listen to
14548         appdomain events.
14549         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
14550         here, the "[un]load" functions will do it.
14551         Fixes bugs #333791 and #325261.
14552
14553 2007-11-07  Geoff Norton  <gnorton@novell.com>
14554
14555         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
14556         rather than depend on __APPLE__.
14557
14558 2007-11-07  Mark Probst  <mark.probst@gmail.com>
14559
14560         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
14561
14562 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
14563
14564         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
14565         UTF16 MonoString. Fix the crash from bug #335488
14566
14567 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
14568
14569         * marshal.c: Correct (for non-Win32 OS) length != size in 
14570         mono_string_from_bstr. Fix #339530.
14571
14572 2007-11-06  Geoff Norton  <gnorton@novell.com>
14573
14574         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
14575         to succeed
14576
14577 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
14578
14579         * process.c: Added run-time GetProcessId API detection for Windows.
14580
14581 2007-11-04  Miguel de Icaza  <miguel@novell.com>
14582
14583         * reflection.c  (mono_param_get_objects): If a parameter has the
14584         attribute [System.Runtime.InteropServices.Optional] we should
14585         set the DefaultValue of the ParameterInfo to be
14586         System.Reflection.Missing instead of DBNull.
14587
14588         See bug #339013.
14589
14590         (mono_get_reflection_missing_object): New method,
14591         returns the System.Reflection.Missing.Value singleton instance.
14592
14593 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
14594
14595         * culture-info-table.h : regenerated.
14596
14597 2007-11-02  Jonathan Chambers <joncham@gmail.com>
14598
14599         * icall.c: Use GetEnvironmentStrings on windows
14600         so we are using the same environment block as 
14601         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
14602         #333740.
14603         
14604         Code is contributed under MIT/X11 license.
14605
14606 2007-10-31  Martin Baulig  <martin@ximian.com>
14607
14608         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
14609
14610         * mono-debug-debugger.h
14611         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
14612
14613 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
14614
14615         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
14616         classes.
14617
14618 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
14619
14620         * culture-info-table.h : regenerated.
14621
14622 2007-10-30  Robert Jordan  <robertj@gmx.net>
14623
14624         * icall-def.h, icall.c:
14625         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
14626
14627         Code is contributed under MIT/X11 license.
14628
14629 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
14630
14631         * class.c (mono_class_setup_vtable): Find the inflated methods in the
14632         inflated class instead of inflating them again.
14633         
14634         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
14635         dynamic case.
14636
14637         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
14638         Call setup_supertypes () after klass->parent is set.
14639         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
14640
14641         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
14642         for inflated instances of not yet created dynamic generic classes.
14643         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
14644         times from inflated_method.
14645         (methodbuilder_to_mono_method): Ditto.
14646
14647 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
14648
14649         * gc.c: code cleanup and removed old untested option of not creating the
14650         finalizer thread.
14651
14652 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
14653
14654         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
14655         creating a jump trampoline for dynamic methods.
14656
14657 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
14658
14659         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
14660         generic TypeBuilders when called from another method of the same type (bug #335131).
14661
14662
14663 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
14664
14665         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
14666         doesn't seem to work perfectly.
14667         
14668         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
14669         called multiple times.
14670         (methodbuilder_to_mono_method): Ditto.
14671         (resolve_object): Inflate FieldBuilder's.
14672
14673 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
14674
14675         * string-icalls.c, string-icalls.h, appdomain.c: patch from
14676         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
14677         RemoveEmptyEntries in the string.Split implementation (bug #322375).
14678
14679 2007-10-26  Dick Porter  <dick@ximian.com>
14680
14681         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
14682         Thread initialisation changes
14683
14684 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
14685
14686         * verify.c: fix compatibility check between arrays and System.Array
14687
14688 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
14689
14690         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
14691         too. Fixes #336999.
14692
14693 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
14694
14695         * object.c (mono_value_box): Use typed allocation here.
14696
14697 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
14698
14699         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
14700         trampoline instead of compiling the method right away.
14701
14702         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
14703
14704 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
14705
14706         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
14707         related fields for dynamic classes. Fixes #334493.
14708
14709 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
14710
14711         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
14712         
14713         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
14714
14715         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
14716         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
14717
14718         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
14719
14720         * reflection.c (create_generic_typespec): Initialize klass->generic_container
14721         if needed.
14722         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
14723
14724 2007-10-18  Jonathan Chambers <joncham@gmail.com>
14725
14726         * marshal.c: Use correct key when removing item
14727         from ccw_hash.
14728         
14729         Code is contributed under MIT/X11 license.
14730
14731 2007-10-17  William Holmes  <billholmes54@gmail.com>
14732
14733         *marshal.c: Adding a case to marshal booleans to U1
14734
14735         Code is contributed under MIT/X11 license.
14736
14737 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
14738
14739         * class.c (mono_class_from_name): Search the modules compromising dynamic
14740         assemblies. Fixes #331601.
14741
14742 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
14743
14744         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
14745         exception if the type name contains an assembly component. Fixes #334203.
14746
14747         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
14748         modules inside dynamic assemblies. Fixes #334200.
14749         
14750         * reflection.c: Set image->public_key and image->public_key_length;
14751
14752         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
14753         fields.
14754
14755         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
14756         
14757 2007-10-16  Mark Probst  <mark.probst@gmail.com>
14758
14759         * metadata.c: Implemented correct comparing of generic classes.
14760         An inflated generic class can be equal to a non-inflated one if it
14761         is inflated with generic type variables as type arguments.  Fixes
14762         bug #333798.
14763
14764 2007-10-15  Dick Porter  <dick@ximian.com>
14765
14766         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
14767         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
14768         81646.
14769
14770         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
14771         instead of a monitor lock.  This means that monitor_try_enter and
14772         co can set the thread state safely.
14773         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
14774         thread_interrupt_requested, so interrupt actually works.
14775
14776         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
14777         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
14778         state accessor function
14779
14780 2007-10-15  Martin Baulig  <martin@ximian.com>
14781
14782         * mono-debug.h
14783         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
14784         the debugger with the current runtime.
14785
14786 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
14787
14788         * object.c, object-internals.h: added the ability to set a single
14789         trampoline for all the slots in a vtable.
14790
14791 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
14792
14793         * marshal.c: deal with a possible race condition during multicast
14794         delegate invocation.
14795
14796 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
14797
14798         * class.c: ensure value type methods don't have the synchronized
14799         flag set.
14800
14801 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
14802
14803         * string-icalls.c, string-icalls.h: reverted unapproved patch that
14804         breaks the build.
14805
14806 2007-10-11  Joel Reed  <joelwreed@comcast.com>
14807
14808         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
14809         to take an options parameter so that empty entries can be removed during
14810         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
14811
14812 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
14813
14814         * marshal.c: make sure we don't store the signature from a dynamic
14815         method into the runtime invoke cache (bug #327189).
14816
14817 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
14818
14819         * marshal.c: make sure the wrapper methods are properly initialized.
14820
14821 2007-10-11  Mark Probst  <mark.probst@gmail.com>
14822
14823         * metadata.c, metadata-internals.h: Generalized
14824         mono_type_stack_size() to mono_type_stack_size_internal() which
14825         takes an additional argument specifying whether it allows open
14826         types.
14827
14828 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
14829
14830         * verify.c (do_invoke_method): handle typedbyref params
14831         correctly and check for unverifiable return values.
14832
14833         * verify.c (do_newobj): fix a warning.
14834
14835 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
14836
14837         * verify.c: don't tread typedbyref as allways unverifable,
14838         so uses, like (ld/st)loc.0 are valid. verify for the cases
14839         that it matters, like boxing related operations.
14840
14841 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
14842
14843         * verify.c: add verification of the newobj opcode. verification
14844         of delegate instantation still missing due ldftn and virldftn not
14845         pushing the function type on stack
14846
14847 2007-10-08  Mark Probst  <mark.probst@gmail.com>
14848
14849         * class-internals.h: Runtime generic context data structure
14850         definition.
14851
14852         * object.c: Initialization of runtime generic context at runtime
14853         vtable creation time.
14854
14855 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
14856         * class.c (mono_class_create_from_typedef,
14857         mono_class_from_generic_parameter, mono_ptr_class_get,
14858         mono_fnptr_class_get, mono_bounded_array_class_get)
14859         * domain.c (mono_domain_create, mono_domain_free)
14860         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
14861         * image.c (do_mono_image_load, mono_image_close):
14862         Hooked up load-unload profiler events.
14863
14864 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
14865
14866         * domain.c: track statistics about the actual amount of native code
14867         allocated.
14868
14869 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
14870
14871         * class.c: the valuetype enumerators don't have the additional
14872         supertypes interfaces.
14873
14874 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
14875
14876         * class.c: need more interfaces setup for the IEnumerator<T>
14877         object created for arrays (tests/ienumerator-interfaces.2.cs).
14878
14879 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
14880
14881         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
14882
14883 2007-10-05  Alp Toker  <alp@atoker.com>
14884
14885         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
14886         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
14887         #315863.
14888
14889 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
14890
14891         * verify.c (verify_type_compatibility_full): verification of
14892         compatibility improved, validates correctly non-strict checks between
14893         native int and I4 types different than (unsigned)int32.
14894
14895         * verify.c (do_store_indirect): added, do all verification of
14896         ldind.X opcodes. 
14897
14898         * verify.c (get_load_indirect_mono_type): renamed to
14899         get_indirect_op_mono_type, as it now returns the MonoType for 
14900         ldind.X and stind.X opcodes.
14901
14902 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
14903
14904         * reflection.c: Fix the encoding of generic type definition for
14905         TypeBuilders.
14906
14907         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
14908         mono_image_typedef_or_ref but allows to specify if typespec lookups should
14909         be made. Typespec check is done prior to typeref cache lookup.
14910
14911         * reflection.c (mono_image_typedef_or_ref): now just delegate to
14912         mono_image_typedef_or_ref_full.
14913
14914         * reflection.c (encode_generic_class): encode the generic class
14915         directly instead of calling encode_type.
14916
14917         * reflection.c (encode_type): encode the generic type definition
14918         MonoClass as a generic instantiation.
14919
14920         * reflection.c (create_typespec): cache typespec tokens in
14921         the assembly->typespec cache. Don't create typespec for a generic
14922         instance MonoClass. Create typespec for the generic type defintion.
14923
14924         * reflection.c (create_generic_typespec): encode the generic
14925         class directly instead of calling encode_type.
14926
14927         * reflection.c (mono_image_create_token): encode the generic
14928         type definition not using a typespec for MonoType instances.
14929
14930
14931 2007-10-04  Raja R Harinath  <rharinath@novell.com>
14932
14933         Fix #328812
14934         * class.c (mono_image_init_name_cache): Don't return nested
14935         'protected internal' classes.
14936         (mono_class_from_name_case): Likewise.
14937
14938 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
14939
14940         * icall-def.h, icall.c : get_bundled_machine_config() is now the
14941           common function used by both DefaultConfig in System.dll and
14942           InternalConfigurationHost in System.Configuration.dll.
14943
14944 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
14945
14946         * class.c: automatically add to vectors only a few essential explicit
14947         generic interfaces. The rest of the interfaces that arrays should
14948         provide are currently implicitly added (but still not lazily, see the
14949         design in the discussion of bug#325495 for the details of what is
14950         needed for that). Additionally, implicit interfaces are assigned the
14951         same vtable slot as the explicit interfaces (as they are compatible):
14952         this enables huge memory savings since we don't need to instantiate
14953         as many memthods and as large vtables anymore. Also, Since
14954         GetEnumerator<T> returns an instance of a type that is required to
14955         support a similarly large set of interfaces as arrays, we add
14956         implicit interfaces and interface offset sharing support to those
14957         types, too. This change adds all the required interfaces so that
14958         the anonarray.cs test case in the bug report works (we don't add
14959         all the interfaces to arrays of arrays 3-level deep and more because
14960         of the memory requirements explained in the bug and since they are much
14961         less common: the lazy-loading support will enabled them to work, too).
14962
14963 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
14964
14965         * verify.c (merge_stacks): major clean up, all type compatibility
14966         checks are done by verify_type_compatibility. This fix my earlier lack
14967         of understanding of the CLR type system and merge_stacks no longer looks
14968         scary.
14969
14970         * verify.c: fixed some bad spelling.
14971
14972 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
14973
14974         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
14975         a given stack slock.
14976         
14977         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
14978         verify_type_compatibility_full. This removed a near indentical function and fixed
14979         handling of Int32 and IntPtr across all opcodes.
14980
14981 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
14982
14983         * class.c: only vectors have the additional generic interfaces.
14984
14985 2007-10-01  Jonathan Chambers <joncham@gmail.com>
14986
14987         * mono-config.c: Use g_strcasecmp instead of
14988         strcasecmp like everywhere else to fix
14989         compilation with MSVC.
14990         
14991         Code is contributed under MIT/X11 license.
14992
14993 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
14994
14995         * object.c, object-internals.h: refactored the IMT code to enable
14996         building a single slot at a time and lazily creating the IMT trampolines
14997         and thunks.
14998
14999 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
15000
15001         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
15002
15003         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
15004         Fixes #328501.
15005         
15006 2007-09-29  Raja R Harinath  <harinath@gmail.com>
15007
15008         * loader.c (method_from_methodspec): Rearrange to avoid
15009         un-necessary exposition.  Don't assert out if the method's
15010         declaring type is a generic type definition.
15011
15012 2007-09-28  Martin Baulig  <martin@ximian.com>
15013
15014         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
15015
15016 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
15017
15018         * class-internals.h: optimize field layout of MonoClass to
15019         requires less cachelines at runtime and save a few bytes on 64 bit
15020         systems.
15021
15022 2007-09-28  Jb Evain  <jbevain@novell.com>
15023
15024         * reflection.c: when encoding type names in custom attributes,
15025         if the type is a closed generic type, its generic arguments
15026         have to be serialized as AssemblyQualifiedName, so that when
15027         they are deserialized, it's possible to re-create them properly.
15028         Fixes #329450.
15029
15030
15031 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
15032
15033         * object.c, class-internals.h: added delegate-creation counter.
15034
15035 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
15036
15037         * class.c: cleanup of the code that synthetizes interfaces for
15038         arrays in 2.0: saves quit a bit of corlib mempool memory.
15039         Code to fix bug #325495 ifdeffed out for now until the issues
15040         with memory usage and O(n^2) behaviour are fixed.
15041
15042 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
15043
15044         * marshal.c: when possible, do not duplicate the name of the methods
15045         in the method builder and in the generated MonoMethod.
15046
15047 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
15048         * verify.c: added support for type checking ldind_* opcodes.
15049
15050 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
15051
15052         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
15053         which is used to distinguish the fully open instantiation of a TypeBuilder
15054         with the rest. This temporary hack is required to restore the property that
15055         the fully open instantiation is the same type of the generic type definition.
15056
15057         * class-internals.h (mono_generic_class_is_generic_type_definition):
15058         new function as part of the internal API.
15059
15060         * class.c (inflate_generic_type): return NULL when the generic inst is
15061         fully open. The fully open generic type is now the same as the generic type
15062         definition for non TypeBuilder types.
15063
15064         * class.c (mono_generic_class_get_class): removed assert since it is
15065         no longer valid, gklass->cached_class can point to the generic type definition.
15066
15067         * class.c (mono_generic_class_is_generic_type_definition): new.
15068
15069         * metadata.c (mono_generic_class_hash): added is_tb_open field
15070         to the hash calculation.
15071
15072         * metadata.c (free_generic_class): if the generic class is associated
15073         with the generic type definition, its field will come from the mempool and
15074         must not be freed.
15075
15076         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
15077         new, this function identifies the corner case of a TypeBuilder fully open
15078         instantiation.
15079
15080         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
15081         for lookup. Set gclass->cached_class to be the container class in case of
15082         the fully open instantiation of non TypeBuilder types.
15083
15084         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
15085         to compare generic classes.
15086
15087         * reflection.c (method_encode_methodspec): remove assert that
15088         no longer is valid.
15089
15090         * reflection.c (mono_reflection_generic_class_initialize): add
15091         an aditional assert to ensure the proper type is used.
15092
15093 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
15094
15095         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
15096         to enjoy it.
15097
15098 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
15099
15100         * verify.c (push_arg): Fixed support for ldarga
15101         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
15102         MonoType used as first arg in case of instance calls.
15103
15104 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
15105
15106         * verify.c: Support for verifying VAR and MVAR types, 
15107
15108 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
15109
15110         * icall.c (ves_icall_get_property_info): Set the reflected type of the
15111         accessors correctly.
15112
15113 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
15114
15115         * threads.c: support OSX and other systems in
15116         mono_thread_get_stack_bounds (bug #328026).
15117
15118 2007-09-25  Martin Baulig  <martin@ximian.com>
15119
15120         * mono-debug.h
15121         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
15122
15123 2007-09-24  Martin Baulig  <martin@ximian.com>
15124
15125         * mono-debug.h
15126         (MonoDebugClassEntry): Moved the definition of this struct into
15127         mono-debug.c to make it private.
15128
15129         * mono-debug.c
15130         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
15131         type table per symbol file, we don't need to store the symfile id
15132         any longer.
15133
15134 2007-09-24  Martin Baulig  <martin@ximian.com>
15135
15136         Create one type table per symbol file, since a `MonoClass *' gets
15137         invalid when its image is unloaded.
15138
15139         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
15140         (MonoDebugHandle): Added `type_table'.
15141
15142 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
15143
15144         * mempool.c, mempool.h: added mono_mempool_new_size () API
15145         to be able to specify a smaller initial size for the pool.
15146         Adjusted the code to slowly increase pool size before using
15147         the previous default size.
15148         * image.c: use a small initial size for image mempools.
15149
15150 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
15151
15152         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
15153         Fixes ##320990.
15154
15155         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
15156         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
15157
15158 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
15159
15160         * metadata.c (mono_type_create_from_typespec): Remove an invalid
15161         free. Fixes #327438.
15162
15163 2007-09-21  Raja R Harinath  <harinath@gmail.com>
15164
15165         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
15166         generic instantiations, etc.
15167         <MONO_TYPE_ARRAY>: Likewise.
15168
15169 2007-09-21  Martin Baulig  <martin@ximian.com>
15170
15171         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
15172         these structs were never defined.
15173         (MonoDebugHandle): Removed the `_priv' field, it was never used.
15174
15175 2007-09-21  Martin Baulig  <martin@ximian.com>
15176
15177         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
15178
15179 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
15180
15181         * image.c: removed the guid hash tables: we can get the same info
15182         without the additional memory usage hit (partially fixes also bug #327052).
15183
15184 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
15185
15186         * profiler.h, profiler-private.h, profiler.c: add a new profiler
15187         event to handle unloading methods. After the event is called, the
15188         corresponding MonoMethod* must be considered invalid.
15189         * loader.c (mono_free_method): call the new mono_profiler_method_free
15190         event.
15191
15192 2007-09-20  Mark Probst  <mark.probst@gmail.com>
15193
15194         * domain-internals.h: New flag in MonoJitInfo which marks shared
15195         generic methods.  New hash table (shared_generics_hash) in
15196         MonoDomain to keep track of shared generic methods.  Prototypes
15197         for functions to register and lookup shared generic methods.
15198
15199         * domain.c: Support for registering and looking up shared generic
15200         methods via a hash table (shared_generics_hash) in MonoDomain.
15201
15202         * class-internals.h: New exception to signal failure of shared
15203         compilation of a generic method.  New counters for generics
15204         sharing in MonoStats.
15205
15206 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
15207
15208         * image.c, metadata-internals.h: don't keep a file descriptor open
15209         for loaded assemblies (bug#325988).
15210
15211 2007-09-19  Raja R Harinath  <rharinath@novell.com>
15212
15213         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
15214         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
15215         use the corresponding datatypes.
15216         (type_in_image): Update to changes.
15217         (CleanForImageUserData): Simplify.
15218         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
15219         Avoid quadratic behaviour in handling the "stolen" list by
15220         separating the filter predicate out, and by prepending the stolen
15221         items rather than appending them.
15222         (steal_ginst_in_image): Likewise.
15223         (mono_metadata_clean_for_image): Update to changes.
15224
15225 2007-09-19  Martin Baulig  <martin@ximian.com>
15226
15227         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
15228
15229 2007-09-19  Martin Baulig  <martin@ximian.com>
15230
15231         * mono-debug.c (mono_debug_cleanup): Don't call
15232         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
15233
15234 2007-09-19  Raja R Harinath  <harinath@gmail.com>
15235
15236         Fix crash on 'make run-test' in mcs/errors
15237         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
15238         Avoid more potential allocations in mono_class_from_mono_type.
15239         (ginst_in_image): Update to changes.
15240         (gclass_in_image): Rearrange slightly.
15241
15242 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
15243
15244         * class.c (mono_class_init): Move the code that sets up class->methods to 
15245         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
15246
15247         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
15248         canonical instance of an inflated generic signature.
15249         (mono_type_create_from_typespec): Remove an invalid free.
15250
15251         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
15252
15253 2007-09-18  Marek Habersack  <mhabersack@novell.com>
15254
15255         * domain-internals.h: added a declaration of the
15256         mono_assembly_load_full_nosearch internal function.
15257
15258         * assembly.c (mono_assembly_load_with_partial_name): use
15259         mono_try_assembly_resolve return value properly.
15260         (mono_assembly_load_full_nosearch): copied the function body from
15261         mono_assembly_load_full, without the code to invoke assembly
15262         search hooks.
15263         (mono_assembly_load_full): calls the above new function and if the
15264         assembly is not resolved, invokes the search hooks.
15265
15266         * appdomain.c (mono_runtime_init): restore the global postload
15267         assembly search handlers.
15268
15269 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
15270
15271         * class.c (mono_class_init): Make sure class->methods and class->properties
15272         are never NULL in the generics case.
15273
15274         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
15275
15276 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
15277
15278         * metadata.c (free_generic_class): Disable some code to fix the build.
15279
15280         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
15281
15282         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
15283         from the image mempool.
15284
15285         * metadata.c (free_generic_class): Free more data from the inflated class.
15286
15287         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
15288
15289         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
15290         mempool.
15291         (mono_type_create_from_typespec): Ditto.
15292
15293         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
15294         MonoImage to the caller.
15295         (mono_init_internal): Save the opened image in a global variable.
15296         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
15297
15298         * reflection.c (resolve_object): Fix a leak.
15299
15300         * metadata.c: Fix the freeing of data in the generics caches.
15301         
15302         * metadata.c (free_generic_inst): Comment this out to fix the build.
15303         (free_generic_class): Ditto.
15304
15305         * metadata.c: Free cached generic methods, instantinations and classes when
15306         they are removed from the caches.
15307         (mono_metadata_free_type): Free the type itself.
15308
15309         * class.c: Free the result of mono_class_inflate_generic_type () in a few
15310         places.
15311
15312 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
15313
15314         * boehm-gc.c: restrict managed allocs to __thread supporting
15315         architectures.
15316
15317 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
15318
15319         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
15320         (mono_generic_class_get_class): Fix a leak.
15321
15322         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
15323         mono_metadata_free_type ().
15324         (mono_metadata_inflate_generic_inst): Fix a leak.
15325
15326 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
15327
15328         * mono-debug.c (free_header_data): Fix a leak missed earlier.
15329
15330         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
15331         mempool.
15332
15333         * mono-debug.c (mono_debug_close_image): Fix call to 
15334         g_hash_table_remove ().
15335
15336 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
15337
15338         * icall-def.h: redirect all the string ctor to the managed
15339         CreateString () methods.
15340         * string-icalls.c, string-icalls.h: removed dead code for string
15341         ctors and icalls.
15342
15343 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
15344
15345         * mono-debug.c: Fix memory leaks.
15346
15347 2007-09-14  Jonathan Chambers <joncham@gmail.com>
15348
15349         * threads-types.h: Implement mono_hazard_pointer_set and 
15350         mono_hazard_pointer_clear macros using do/while(0) to fix
15351         compilation with MSVC.
15352         
15353         Code is contributed under MIT/X11 license.
15354
15355 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
15356
15357         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
15358         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
15359
15360 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
15361
15362         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
15363         icalls.
15364
15365 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
15366
15367         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
15368         managed-code allocated as well.
15369
15370 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
15371
15372         * class.c (mono_class_is_assignable_from): Add support for generic variance.
15373
15374 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
15375
15376         * boehm-gc.c: fixed the build after the AOT changes.
15377
15378 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
15379
15380         * wrapper-types.h: Add an ALLOC wrapper type.
15381
15382         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
15383         reference managed allocator methods.
15384
15385 2007-09-12  Marek Safar  <marek.safar@gmail.com>
15386
15387         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
15388         of Type array and not MonoType, a fix suggested by Hari.
15389         
15390 2007-09-12  Jonathan Chambers <joncham@gmail.com>
15391
15392         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
15393         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
15394         
15395         Code is contributed under MIT/X11 license.
15396
15397 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
15398
15399         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
15400
15401 2007-09-12  Marek Habersack  <mhabersack@novell.com>
15402
15403         * image.c (do_mono_image_open): if assembly file fails to open and
15404         MONO_IOMAP is in effect, try to find the path in a
15405         case-insensitive way.
15406
15407         * appdomain.c (mono_runtime_init): do not install postload hooks -
15408         tests show that MS.NET doesn't use anything of that sort to
15409         trigger the AppDomain.AssemblyResolve event.
15410         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
15411         made non-static.
15412         (mono_runtime_init): init portability helpers here.
15413
15414         * assembly.c (mono_assembly_load_with_partial_name): if other   
15415         attempts fail, trigger the AppDomain.AssemblyResolve event handler
15416         to resolve the assembly.
15417
15418         * domain-internals.h: added mono_try_assembly_resolve and marked
15419         it as internal.
15420
15421 2007-09-11  Jb Evain  <jbevain@novell.com>
15422
15423         * object-internals.h (MonoReflectionDynamicMethod): add
15424         a `MonoReflectionType *owner` field. The owner is used
15425         * reflection.c:
15426         (mono_reflection_create_dynamic_method): use the owner of the dynamic
15427         method as the class declaring the dynamic method.
15428         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
15429         dynamic method to the declaring type of the methodbuilder.
15430
15431 2007-09-11  Mark Probst  <mark.probst@gmail.com>
15432
15433         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
15434         rules for calling methods via reflection.
15435
15436 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
15437
15438         * reflection.c (resolve_object): Add support for MonoGenericClass. 
15439         Inflate MonoType's.
15440
15441 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
15442
15443         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
15444         provide a managed method that does fast allocations without needing
15445         a managed->unmanaged transition. Boehm GC implementation currently
15446         enabled for ptrfree objects on sane architectures.
15447
15448 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
15449
15450         * marshal.c, marshal.h: exported a couple of useful functions and
15451         added mono_mb_get_label () to easily handle backward branches.
15452
15453 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
15454
15455         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
15456
15457 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
15458
15459         * loader.c (find_method): Fixed the regression introduced while
15460         fixing bug #81466.
15461
15462 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
15463
15464         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
15465         well.
15466         
15467         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
15468         icall.c reflection.c: Pass a MonoGenericContext argument to 
15469         mono_lookup_dynamic_token ().
15470
15471         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
15472         #82744.
15473         
15474 2007-09-09  Robert Jordan  <robertj@gmx.net>
15475
15476         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
15477         for generic methods.
15478
15479         * object.c (mono_object_get_virtual_method): Handle generic methods.
15480         Fixes bug #78882.
15481
15482         Code is contributed under MIT/X11 license.
15483
15484 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
15485
15486         * image.c: fix locking in mono_image_load_file_for_image ().
15487
15488 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
15489
15490         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
15491         used only as a cache: added an icall to fill it.
15492
15493 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
15494
15495         * reflection.h: exposed mono_reflection_free_type_info
15496         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
15497         since mono_reflection_bind_generic_parameters makes a copy of it.
15498         * reflection.c (free_type_info): subinfos should be freed.
15499         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
15500         made non static.
15501         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
15502         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
15503         this fixes #82695 and #81726.
15504    
15505
15506 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
15507
15508         * process.h, process.c:  added support for user profile/info in
15509           ProcessStartInfo. For now only Windows works.
15510
15511 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
15512
15513         * metadata.c: consider the generic arguments when comparing
15514         signatures (bug #82614).
15515
15516 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
15517
15518         * cil-coff.h, image.c: updated assembly loader to cope with the
15519         PE32+ 64 bit file format.
15520
15521 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
15522
15523         * assembly.c, class.c, domain.c, loader.c: remove useless
15524         inclusion of cil-coff.h.
15525
15526 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
15527
15528         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
15529         if interface is marked with CoClassAttribute. 
15530    
15531         Code is contributed under MIT/X11 license.
15532
15533 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
15534
15535         * sgen-gc.c: ensure no object from the to space is copied again or finalized
15536         if it's seen twice in major collections.
15537
15538 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
15539
15540         * sgen-gc.c: big objects are not copied to the gray area, but they
15541         need to be considered for scanning, too, if they are brought alive
15542         by an object ready for finalizations or a survived one.
15543
15544 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
15545
15546         * sgen-gc.c: properly account the number of disappearing links when
15547         they are nullified.
15548
15549 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
15550
15551         * sgen-gc.c: share the code to scan the registered roots between the
15552         different types of collections.
15553
15554 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
15555
15556         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
15557
15558 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
15559
15560         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
15561         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
15562
15563 2007-08-28  Mark Probst  <mark.probst@gmail.com>
15564
15565         * security-manager.c (mono_security_manager_get_methods):
15566         LinkDemandSecurityException now has 2 arguments instead of 3.
15567
15568 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
15569
15570         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
15571         platforms which need it.
15572
15573 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
15574
15575         * sgen-gc.c: unregister thread data structures with a pthread_key_t
15576         dtor.
15577
15578 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
15579
15580         * threads.c: free the thread static data on thread exit.
15581
15582 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
15583
15584         * class.c: walk the hierarchy to find the generic definition for
15585         a class (fixes runtime part of bug #82498).
15586
15587 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
15588
15589         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
15590         ...
15591
15592         * image.c (mono_image_close): Here. Hopefully fixes #82510.
15593
15594 2007-08-24  Mark Probst  <mark.probst@gmail.com>
15595
15596         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
15597
15598 2007-08-24  Robert Jordan  <robertj@gmx.net>
15599
15600         * appdomain.c: don't perform the ':'->';' substitution on Win32.
15601
15602 2007-08-24  Jb Evain  <jbevain@novell.com>
15603
15604         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
15605         for byref types.
15606
15607 2007-08-24  Mark Probst  <mark.probst@gmail.com>
15608
15609         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
15610         #82286.
15611
15612 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
15613
15614         * assembly.c: Fix a warning.
15615         
15616 2007-08-23  Marek Habersack  <mhabersack@novell.com>
15617
15618         * appdomain.c: parse the <runtime> section looking for the probing
15619         element with the 'privatePath' attribute, which sets additional
15620         directories in which the runtime should look for assemblies.
15621
15622 2007-08-23  Robert Jordan  <robertj@gmx.net>
15623
15624         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
15625         Fixes #82499.
15626
15627 2007-08-23  Martin Baulig  <martin@ximian.com>
15628
15629         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
15630         _mono_debug_init_corlib() and remove it from the header file.
15631
15632 2007-08-23  Martin Baulig  <martin@ximian.com>
15633
15634         * mono-debug-debugger.c
15635         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
15636         don't notify the debugger about it.
15637
15638         * mono-debug-debugger.h
15639         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
15640
15641 2007-08-23  Robert Jordan  <robertj@gmx.net>
15642
15643         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
15644         Code is contributed under MIT/X11 license.
15645
15646 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
15647
15648         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
15649
15650 2007-08-22  Martin Baulig  <martin@ximian.com>
15651
15652         * mono-debug.c: Store debugging info on a per-domain basis and
15653         free it on domain unload.  Add support for unloading symbol files.
15654
15655         * mono-debug.h
15656         (MonoDebugList): New typedef.
15657         (MonoSymbolTable):
15658         - add `data_tables and `type_table'.
15659         - replace 'symbol_files' and `num_symbol_files' with a
15660           `MonoDebugList *'.
15661         (mono_debug_data_table): Removed.
15662         (mono_debug_list_add): New public function.
15663         (mono_debug_list_remove): New public function.
15664         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
15665         (mono_debug_init_2_memory): Renamed into
15666         mono_debug_open_image_from_memory().
15667         (mono_debug_close_image): New public function.
15668         (mono_debug_domain_create): Likewise.
15669         (mono_debug_domain_unload): Likewise.
15670         (MONO_DEBUGGER_VERSION): Bump to 60.
15671
15672         * mono-debug-debugger.h
15673         (MonoDebuggerEvent):
15674         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
15675         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
15676         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
15677         - rename `THREAD_CREATED' and `THREAD_EXITED' into
15678           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
15679         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
15680           meaning.
15681         (mono_debugger_add_symbol_file): Removed.
15682         (mono_debugger_add_type): Removed.
15683         (mono_debugger_lookup_type): Removed.
15684         (mono_debugger_lookup_assembly): Removed.
15685
15686         * domain.c
15687         (mono_domain_create): Call mono_debug_domain_create().
15688         (mono_init_internal): Call mono_debug_init_corlib().
15689
15690         * assembly.c
15691         (mono_assembly_close): Call mono_debug_close_image().
15692
15693 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
15694
15695         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
15696         mmap call.
15697
15698 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
15699
15700         * sgen-gc.c: ensure section->pin_queue_end is initialized
15701         correctly when non pinning objects in the section have been found.
15702
15703 2007-08-22  Marek Habersack  <mhabersack@novell.com>
15704
15705         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
15706         containing a list of directories separated by ':'. MSDN docs say
15707         the directories should be separated with ';'. Part of a bugfix for
15708         bug #81446
15709
15710 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
15711
15712         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
15713         it should MonoType and not MonoClass.
15714
15715 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
15716
15717         * culture-info-table.h : regenerated.
15718
15719 2007-08-20  William Holmes  <billholmes54@gmail.com>
15720
15721         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
15722          to call ReplaceFile Kernel32 on windows or in io-layer.
15723         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
15724         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
15725          as an internal call.
15726
15727         Code is contributed under MIT/X11 license.
15728
15729 2007-08-20  Jb Evain  <jbevain@novell.com>
15730
15731         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
15732         and MONO_EXCEPTION_FIELD_ACCESS.
15733
15734         * debug-helpers.[c|h]: new mono_field_full_name function.
15735
15736 2007-08-20  Mark Probst  <mark.probst@gmail.com>
15737
15738         * class.c: Removed class_security_level() and moved it to
15739         security-core-clr.c.
15740
15741         * security-core-clr.c, security-core-clr.h: class_security_level()
15742         is now public and renamed to mono_security_core_clr_class_level().
15743         It also looks for security attributes in the classes a class is
15744         nested in.
15745
15746 2007-08-20  Mark Probst  <mark.probst@gmail.com>
15747
15748         * security-core-clr.c, security-core-clr.h: CoreCLR security
15749         utility functions.
15750
15751         * Makefile.am: Added security-core-clr.[ch].
15752
15753         * security-manager.c, security-manager.h: Functions and enum for
15754         setting and getting the security mode.
15755
15756         * class.c: CoreCLR security checks.
15757
15758 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
15759
15760         * icall-def.h, process.c, process.h: implemented icall to get
15761         user/system processor times.
15762
15763 2007-08-17  Mark Probst  <mark.probst@gmail.com>
15764
15765         * domain.c, threads.c, class-internals.h, domain-internals.h: New
15766         reader-lock-free jit_info_table.
15767
15768 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
15769
15770         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
15771
15772         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
15773
15774         * object-internals.h (MonoException): Add missing _data member.
15775
15776 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
15777
15778         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
15779         checking that only methods with matching qname or fqname are picked
15780         from implemented interfaces.
15781
15782 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
15783
15784         * verify.c (do_newarr):added, do type verification of
15785         newarr ops, push the right value on the eval stack.
15786         * verify.c (mono_method_verify): use do_newarr
15787
15788
15789 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
15790
15791         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
15792         factored the common code into get_boxable_mono_type, which
15793         is now using mono_type_get_full, this fixed byref related tests.
15794
15795 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
15796
15797         * class.c: added mono_type_get_full, this function has the same
15798         behavior of mono_class_get_full but the returned MonoType has
15799         all metadata of the associated token in case of a typespec token.
15800         * class.c: added mono_type_retrieve_from_typespec, used by 
15801         mono_type_get_full to retrieve the token type.
15802         * class.c (mono_class_create_from_typespec): changed to use
15803         mono_type_retrieve_from_typespec.
15804         * class.c (mono_ldtoken): changed to use mono_type_get_full
15805         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
15806         * class-internals.h: exported mono_type_get_full for internal use.
15807
15808 2007-08-16  Jb Evain  <jbevain@novell.com>
15809
15810         * domain.c (supported_runtimes): add entry for
15811         the 'moonlight' runtime version.
15812
15813 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
15814
15815         * verify.c (mono_method_verify): small typo sliped in.  
15816
15817 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
15818
15819         * verify.c (do_unbox_value): added, do type verification of
15820         unboxing ops
15821         * verify.c (mono_method_verify): use do_unbox_value
15822
15823
15824 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
15825
15826         * verify.c (dump_stack_value): fixed typo, was printing string
15827         instead of object on stack.
15828         * verify.c (do_box_value): moved the byref check up as it leads
15829         to invalid code and should be done earlier.
15830         * verify.c: improved error messages for and ldobj
15831
15832 2007-08-15  William Holmes  <billholmes54@gmail.com>
15833
15834         * marshal.c (emit_marshal_custom): Omit the call to 
15835           marshal_native_to_managed when calling native to managed 
15836           and the argument is specified as an out argument.
15837
15838         Code is contributed under MIT/X11 license.
15839
15840 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
15841
15842         * verify.c: fixed the type checks for generics, function pointers and vectors.
15843         Added type verification for ldobj and ldtoken. The verifier
15844         would segfault if header or signature of a method contained references
15845         to non-existant types.
15846
15847 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
15848
15849         * marshal.c (cominterop_get_ccw): Patch from
15850         Bill Holmes to no walk up interface hierarchy. 
15851         All parent methods should be present in the interface for COM.
15852    
15853         Code is contributed under MIT/X11 license.
15854
15855 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
15856
15857         * marshal.c (emit_marshal_com_interface): Patch from
15858         Bill Holmes to handle COM Interfaces as return values
15859         for native->managed calls.
15860    
15861         Code is contributed under MIT/X11 license.
15862
15863 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
15864
15865         * marshal.c (cominterop_get_idispatch_for_object): Implement
15866         for runtime callable wrappers.
15867    
15868         Code is contributed under MIT/X11 license.
15869
15870 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
15871
15872         * pedump.c (main): changed from mono_init to mono_init_from_assembly
15873         so 2.0 types are accessible
15874
15875
15876 2007-08-13  Miguel de Icaza  <miguel@novell.com>
15877
15878         * domain.c (mono_init_internal): Call mono_assembly_load_friends
15879         once we load mscorlib.   Due to the order in which we initialize,
15880         the mono_assembly_load_full routine that loads mscorlib did not
15881         load friends.   We now load it once we load the
15882         mono_defaults.internals_visible_class class. 
15883
15884         * assembly.c: Expose the mono_load_friend_assemblies method.
15885
15886 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
15887
15888         * verify.c: improved the handling of boxing, better
15889         type checking for unary ops and conversion. Fix bug
15890         regarding managed pointer compatibility checking
15891
15892 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
15893
15894         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
15895
15896         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
15897
15898 2007-08-09  Raja R Harinath  <rharinath@novell.com>
15899
15900         * reflection.c (dup_type): Remove.
15901         * class.c (dup_type): Remove.
15902         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
15903         instead of the dodgy 'dup_type'.
15904         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
15905         handle the case where 'dup_type' needed the second argument.
15906
15907 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
15908
15909         * domain.c: Fix a warning.
15910
15911 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
15912
15913         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
15914         checking that methods with the same fqname are not overridden
15915         with a method from an ancestor.
15916
15917 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
15918
15919         * threads.c (free_thread_static_data_helper): Avoid a crash if
15920         thread->static_data is not yet set.
15921
15922 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
15923
15924         * marshal.c: Use correct image when emitting
15925         native wrapper for COM calls.
15926    
15927         Code is contributed under MIT/X11 license.
15928
15929 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
15930
15931         * icall-def.h, security.c, security.h :
15932           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
15933
15934 2007-08-07  Martin Baulig  <martin@ximian.com>
15935
15936         * mono-debug-debugger.h
15937         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
15938
15939         * domain.c (mono_domain_free): Call
15940         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
15941
15942 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
15943
15944         * verify.c (check_underflow, check_overflow): error message now returns IL offset
15945         * verify.c (in_same_block): code should test if either offset is inside the clauses
15946         * verify.c (mono_method_verify): push the exception into the eval stack of exception
15947         and filter blocks
15948
15949 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
15950
15951         * image.c (mono_image_close): Fix a leak.
15952
15953         * object.c (mono_runtime_invoke_array): Avoid using alloca.
15954
15955         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
15956
15957 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
15958
15959         * domain.c, threads.c, threads-types.h: fix memory retention issue
15960         with thread static variables not being cleared on domain unload.
15961         Reuse thread static slots after domain unload.
15962
15963 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
15964
15965         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
15966         nullable type.
15967
15968         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
15969         now done in mono_runtime_invoke_array.
15970
15971         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
15972         receiver is a nullable type.
15973
15974         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
15975         generic parameter.
15976
15977 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
15978
15979         * marshal.c: Implement COM Objects as return type for 
15980         managed->unmanaged calls. Added Release calls for COM Object
15981         out/return values in managed->unmanaged calls.
15982
15983         Code is contributed under MIT/X11 license.
15984
15985 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
15986
15987         * threads.h, threads-type.h: move the hazard pointer declarations
15988         to the private header.
15989
15990 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
15991
15992         * file-io.c, appdomain.c: memory leak fixes.
15993
15994 2007-08-02  Dick Porter  <dick@ximian.com>
15995
15996         * socket-io.c
15997         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
15998         SO_REUSEADDR setting into io-layer/sockets.c.
15999
16000 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
16001
16002         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
16003         from Object when called on a generic parameter. Fixes #82211.
16004
16005 2007-08-01  Dick Porter  <dick@ximian.com>
16006
16007         * file-io.c (convert_share): Test FileShare values bit-by-bit.
16008         Fixes bug 79250 yet again.
16009
16010 2007-07-30  Martin Baulig  <martin@ximian.com>
16011
16012         Merged the `debugger-dublin' branch.
16013
16014         * mono-debug.h
16015         (MonoDebugDataTable): New typedef.
16016         (MonoDebugMethodAddressList): New typedef.
16017         (MonoDebugWrapperData): Removed.
16018         (MonoDebugSymbolTable): Removed `current_data_table',
16019         `current_data_table_size', `current_data_table_offset'.
16020         (MonoDebugDataItemType): Moved into mono-debug.c.
16021         (MonoDebugMethodJitInfo): Remove `address'.
16022         (mono_debug_data_table): New global variable.
16023         (mono_debug_lookup_method_addresses): New public function.
16024         (mono_debug_find_method): Take a `MonoMethod *', not a
16025         `MonoDebugMethodInfo *'.
16026
16027         * mono-debug.c: Drop support for the old symbol tables.
16028
16029 2007-06-28  Martin Baulig  <martin@ximian.com>
16030
16031         * mono-debug.c (mono_debug_debugger_version): New public variable.
16032
16033 2007-07-31  William Holmes  <billholmes54@gmail.com>
16034
16035         * metadata.c Changed mono_type_create_from_typespec to not insert
16036           the type into the hash map until after
16037           do_mono_metadata_parse_type has completed.
16038         Fixes Bug #82194
16039         Code is contributed under MIT/X11 license.
16040
16041 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
16042
16043         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
16044         generic parameter. Fixes #82211.
16045
16046 2007-07-27  Jb Evain  <jbevain@novell.com>
16047
16048         * pedump.c (dump_metadata, dump_metadata_header): dump
16049         versions contained in the metadata header.
16050
16051 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
16052
16053         * threads.c: register small_id_table with the GC.
16054
16055 2007-07-27  Mark Probst  <mark.probst@gmail.com>
16056
16057         * threads.c, threads.h, class-internals.h, object-internals.h:
16058         Hazard pointers, to be used by lock-free parallel algorithms.
16059
16060 2007-07-26  Dick Porter  <dick@ximian.com>
16061
16062         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
16063         routine on non-windows platforms, as I've not managed to think of
16064         a non-kludgy way of doing this.  Finishes off bug 78739.
16065
16066 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
16067
16068         * object.c: properly setup interface_bitmap in proxy vtables.
16069
16070 2007-07-25  Marek Habersack  <mhabersack@novell.com>
16071
16072         * appdomain.c (get_shadow_assembly_location): do not use TickCount
16073         to create unique shadow copy target directories, use the domain's
16074         serial number instead. Each domain gets a unique target directory
16075         that way.
16076
16077         * domain.c (mono_domain_create): added code to increment domain
16078         shadow copy serial number and cache the value in the current
16079         domain structure.
16080
16081         * domain-internals.h (struct _MonoDomain): added a new field -
16082         shadow_serial to hold the serial number used in generation of
16083         shadow-copy directories. This is to make sure that the directory
16084         name is unique for each and every domain created. We avoid a race
16085         condition with overriding assemblies already in use by other app
16086         domains.
16087
16088 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
16089
16090         * class.c (mono_bounded_array_class_get): fixed memory leak when 
16091         binding generic parameters.
16092
16093 2007-07-24  Raja R Harinath  <rharinath@novell.com>
16094
16095         * metadata.c (do_mono_metadata_parse_generic_class): Use
16096         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
16097         error.
16098
16099 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
16100
16101         * loader.c, class-internals.h, reflection.c: removed the per-method
16102         generics hashtable: we use the global one through the call of
16103         mono_class_inflate_generic_method ().
16104
16105 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
16106
16107         * class.c, metadata.c, class-internals.h: introduce yet another
16108         generics global cache for inflated methods (fixes 98% of the perf
16109         issue in bug #81806).
16110
16111 2007-07-23  Raja R Harinath  <rharinath@novell.com>
16112
16113         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
16114         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
16115         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
16116         return a MonoGenericInst containing (a copy) of those types.
16117         (mono_metadata_inflate_generic_inst): Update to changes.
16118         (mono_metadata_parse_generic_inst): Likewise.
16119         (mono_get_shared_generic_inst): Likewise.
16120         * reflection.c (mono_class_bind_generic_parameters): Likewise.
16121         (mono_reflection_bind_generic_method_parameters): Likewise.
16122         * metadata-internals.h: Likewise.
16123         * icall.c (free_generic_context): Kill.
16124         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
16125
16126         * reflection.c (reflection_methodbuilder_to_mono_method): Use
16127         mono_metadata_type_dup.
16128         * marshal.c (mono_mb_create_method): Likewise.
16129
16130         * metadata.c (mono_metadata_type_dup): Rename from
16131         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
16132         MonoImage.  Handle a few more cases, esp. when no mempool is given.
16133         * marshal.c, metadata-internals.h: Update to changes.
16134
16135 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
16136
16137         * class.c: fixed a small leak for array classes and removed warning.
16138
16139 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
16140
16141         * loader.c (mono_method_get_param_token): Make this work on generic methods.
16142         Return 0x8000000 for return parameters. Fixes #82161.
16143
16144 2007-07-21  Marek Habersack  <grendello@gmail.com>
16145
16146         * appdomain.c (get_shadow_assembly_location): append the current
16147         ticks value to the path. Avoids overwriting the same assemblies by
16148         several threads at the same time.
16149
16150 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
16151         and Raja R Harinath  <rharinath@novell.com>
16152
16153         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
16154         Simplify slightly.
16155         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
16156         property for testing if a method is a generic method definition.
16157
16158 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
16159
16160         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
16161
16162 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
16163
16164         * verify.c: used function from private branch, reverted to the one in class.h 
16165
16166 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
16167
16168         * verify.c: a typo slipped in and the code wont compile
16169
16170 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
16171
16172         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
16173         disabled box instruction as it is doing the wrong thing
16174         improved stack dump messages, now it is easier to debug type related issues
16175
16176
16177 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
16178
16179         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
16180
16181 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
16182
16183         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
16184         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
16185         grouped with class and valuetype. This change will simply 
16186         the code as it should be handled just like unmanaged pointers.
16187
16188 2007-07-19  Mark Probst  <mark.probst@gmail.com>
16189
16190         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
16191
16192 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
16193
16194         * verify.c: several stack merge issues fixed, reference comparisons now
16195         check the type size. strict type check now works correctly.
16196         added more uses of IS_MANAGED_POINTER macro.
16197         fixed issues pointed by running the test suite against .net.
16198         
16199
16200 2007-07-19  Mark Probst  <mark.probst@gmail.com>
16201
16202         * class.c, loader.c, class-internals.h: Removed the
16203         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
16204         defines.
16205
16206         * icall.c: Better error checking in some internal reflection
16207         methods.
16208
16209 2007-07-18  William Holmes  <billholmes54@gmail.com>
16210
16211         * filewatcher.c : removed unused variable 'filename' in 
16212           ves_icall_System_IO_FSW_SupportsFSW
16213
16214 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
16215
16216         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
16217         obsolete, removed.
16218
16219 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
16220
16221         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
16222         
16223         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
16224
16225 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
16226
16227         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
16228         Implement generics support.
16229         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
16230
16231         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
16232         type_args and method_args arguments.
16233         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
16234         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
16235         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
16236
16237 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
16238
16239         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
16240           It adds a rootimage parameter to mono_reflection_get_type_internal,
16241           adds new function mono_reflection_get_type_with_rootimage and use
16242           the rootimage to resolve the types instead of the current image
16243
16244 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
16245
16246         * culture-info-table.h: Forgot to update after r78304.
16247
16248 2007-07-13  Raja R Harinath  <rharinath@novell.com>
16249
16250         * class.c (mono_class_is_open_constructed_type)
16251         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
16252
16253 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
16254
16255         * class.c (mono_bounded_array_class_get):  method fails if used with
16256         an incomplete TypeBuilder enum (no basetype field), fixed it by 
16257         avoiding calculating the size for such array as it cannot be instantiated.
16258         Fix bug #82015
16259
16260 2007-07-12  Raja R Harinath  <rharinath@novell.com>
16261
16262         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
16263         field.
16264         * metadata.c, reflection.c: Update to changes.
16265
16266 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
16267
16268         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
16269         mono_class_is_valid_enum, they are used to valide a enum when loading.
16270         * reflection.c: used new functions to throw TypeLoadException when and
16271         invalid enum is build with TypeBuilder. Fixes #82018
16272   
16273 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
16274
16275         * object.c: forgot commit of mono_class_setup_methods () to access
16276         iface->methods.
16277         * object-internals.h: added a few more handy fields to
16278         MonoIMTCheckItem.
16279
16280 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
16281
16282         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
16283         iface->methods.
16284
16285 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
16286
16287         * class-internals.h, object-internals.h, object.c: IMT-based
16288         interface invocation core from Massimiliano Mantione
16289         (massi@ximian.com) with a reworked arch-specific interface,
16290         bsearch implementation and a few bugfixes and memory savings by me.
16291
16292 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
16293
16294         * class.c (mono_class_create_from_typedef): mono would segfault if 
16295         an enum did not have a __value field. It now throws a TypeLoadException
16296         for such cases. Fix bug #82022
16297
16298 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
16299
16300         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
16301
16302 2007-07-09  Mark Probst  <mark.probst@gmail.com>
16303
16304         * class.c (mono_class_init): If a class is already inited but has
16305         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
16306
16307 2007-07-09  Mark Probst  <mark.probst@gmail.com>
16308
16309         * class.c: Properly handle the case of an unimplemented interface
16310         method.  Fixes: 81673.
16311
16312 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
16313
16314         * class-internals.h, object.c: cleanup patch from massi: use
16315         MonoVTable->interface_bitmap since the vtable interfaces offset array
16316         is going away.
16317
16318 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
16319
16320         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
16321         GetMDStreamVersion icall instead.
16322
16323 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
16324
16325         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
16326         not use mono_dl_build_path() with a full library name: makes
16327         fallbacks to libgaim and libfam work.
16328
16329 2007-07-06  William Holmes  <billholmes54@gmail.com>
16330
16331         * assembly.c: Added a continue statement in probe_for_partial_name when
16332          parse_assembly_directory_name fails.  Fixes : 82002
16333
16334 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
16335
16336         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
16337         and added a verification  for TYPEDBYREF.
16338         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
16339         make native int interchangeable with int32 and some small cleanup and formating.
16340         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
16341         handle byref of byref.
16342         * verify.c (push_local): handle byref of byref.
16343         * verify.c (do_binop): invalid mix of values is unverifiable
16344         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
16345         added visibility checks
16346         * verify.c (field related method): added visibility checks
16347         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
16348
16349 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
16350
16351         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
16352         string.
16353
16354 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
16355
16356         * profiler.c (mono_profiler_load): Fix an off-by-one error.
16357
16358         * marshal.c (emit_marshal_string): When returning a string from managed code,
16359         allways make a copy even for unicode strings. Fixes #81990.
16360
16361 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
16362
16363         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
16364         of byref generic inst types (bug #81997).
16365
16366 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
16367
16368         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
16369         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
16370
16371 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
16372
16373         * marshal.c (emit_marshal_string): Add support for unicode strings in
16374         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
16375
16376 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
16377
16378         * verify.c: field load/store are now verified, missing only access checks now
16379
16380 2007-06-28  Martin Baulig  <martin@ximian.com>
16381
16382         * mono-debug.c (mono_debug_debugger_version): New public variable.
16383
16384 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
16385
16386         * locales.c: When constructing DateTimeFormat or NumberFormat for
16387         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
16388         MonoCultureInfo contructed from the current locale is always
16389         read-only and has UseUserOverride set to true. All MonoCultureInfo
16390         instances returned for GetCultures have both IsReadOnly and
16391         UseUserOverride set to true. Fixes part of bug #81930.
16392
16393 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
16394
16395        * icall-def.h: Update System.__ComObject icalls
16396        * marshal.c: Avoid managed transition (and object creation)
16397        when looking up COM interface in RCW.
16398        * marshal.h: Ditto.
16399        
16400        Code is contributed under MIT/X11 license.
16401
16402 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
16403
16404         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
16405         to avoid crashes during assembly unloading.
16406
16407 2007-06-22  Raja R Harinath  <rharinath@novell.com>
16408
16409         Fix MethodInfo.IsGenericMethodDefinition
16410         * reflection.c (mono_reflection_bind_generic_method_parameters):
16411         Rearrange code to ensure we always uses a generic method definition.
16412         * class.c (mono_class_inflate_generic_method_full): Set
16413         'generic_container' field only for generic method definitions.
16414         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
16415         Use presense of 'generic_container' field as indication of being a
16416         generic method definition.
16417
16418 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
16419
16420         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16421
16422         * object-internals.h: Reflect changes in the layout of the managed Delegate
16423         class.
16424         
16425         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
16426         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
16427         runtime memory used by the dynamic method. Fixes #77146.
16428
16429 2007-06-21  Dick Porter  <dick@ximian.com>
16430
16431         * file-io.h: 
16432         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
16433         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
16434         81767.
16435
16436 2007-06-21  Raja R Harinath  <rharinath@novell.com>
16437
16438         * reflection.c (method_encode_methodspec): Add a tripwire.
16439         * class.c (inflate_generic_type): The fully open generic type is
16440         not the same as the generic type definition.
16441
16442 2007-06-21  Martin Baulig  <martin@ximian.com>
16443
16444         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
16445
16446         * mono-debug-debugger.h
16447         (MonoDebuggerBreakpointInfo): Removed.
16448         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
16449         (mono_debugger_remove_breakpoint): Likewise.
16450         (mono_debugger_breakpoint_callback): Likewise.
16451         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
16452
16453 2007-06-21  Raja R Harinath  <rharinath@novell.com>
16454
16455         * metadata.c (mono_metadata_lookup_generic_class): The fully open
16456         generic type is not the same as the generic type definition.
16457         * class.c (mono_generic_class_get_class): Likewise.
16458
16459 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
16460
16461         * icall.c: The second argument to 
16462         System.Reflection.MethodBase.GetMethodFromHandleInternalType
16463         is a MonoType not a MonoClass.
16464
16465 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
16466
16467         * verify.c: support for function pointers in the verifier
16468
16469 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
16470
16471         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
16472
16473 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
16474
16475         * assembly.c: removed Mono.Data.SqliteClient from the list of
16476         forward-compatible assemblies as it breaks the ABI (bug #81899).
16477
16478 2007-06-19  Raja R Harinath  <rharinath@novell.com>
16479
16480         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
16481         lookup/update with the loader lock.
16482         * reflection.c (mono_class_bind_generic_parameters): No need to
16483         protect mono_metadata_lookup_* with the loader lock.
16484         * class.c (inflate_generic_type): Likewise.
16485         
16486         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
16487         on a generic instantiated type.
16488
16489 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
16490
16491         *verify.c: produce meanfull error messages on verification error
16492         *verify.c: fixed some cases of verification errors reported as validation errors
16493         *pedump.c: fixed the error name array, now it shows validation errors properly
16494         *verify.h: fixed the contant that should be used for verification errors
16495
16496 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
16497
16498         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
16499         for bug #77596, 81858 and 80743 (generics data structures on domain
16500         unload).
16501
16502 2007-06-15  Raja R Harinath  <rharinath@novell.com>
16503
16504         Avoid allocating 'MonoGenericContext' on the heap.
16505         * class-internals (_MonoMethodInflated::context): Make field
16506         inline, not a pointer.
16507         * loader.c (method_from_methodspec): Allocate 'new_context' on the
16508         stack.  Use the context embedded within the inflated method as the
16509         hash key, rather than 'new_context'.
16510         * class.c (inflate_generic_context): Simplify.  Return a struct
16511         rather than allocating on the heap.
16512         (mono_class_inflate_generic_method_full): Update to changes.  Now,
16513         doesn't salt away a copy of the context -- simplifying the
16514         lifetime rules of a 'MonoGenericContext *'.
16515         (mono_method_get_context): Return pointer to embedded context.
16516         (setup_generic_array_ifaces): Allocate temporary context on stack.
16517         * reflection.c (inflate_mono_method): Likewise.
16518         (mono_reflection_bind_generic_method_parameters): Likewise.
16519         Use the context embedded within the inflated method as the hash key.
16520
16521         Avoid a source of allocation of 'MonoGenericContext'.
16522         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
16523         and 'cached_context' fields into embedded 'MonoGenericContext' field.
16524         * class.c: Update to changes.
16525         (mono_generic_class_get_context): Simplify drastically.  Now just
16526         returns a pointer to the field.
16527         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
16528         argument as a const pointer.
16529         (mono_metadata_generic_context_equal): Likewise.
16530         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
16531         Update to changes.
16532
16533 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
16534
16535         * verify.c improved the handling of brtrue/brfalse, factored out common code
16536
16537 2007-06-14  Raja R Harinath  <rharinath@novell.com>
16538
16539         Kill MonoGenericMethod.
16540         * class-internals.h (MonoGenericContext::method_inst): Rename from
16541         'gmethod' and convert to a MonoGenericInst.
16542         (MonoGenericMethod): Remove.
16543         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
16544         * loader.c (method_from_methodspec): Update to changes.  Use a
16545         MonoGenericContext as the key to the hashtable.
16546         * metadata.c (mono_metadata_generic_context_equal): Rename from 
16547         'mono_metadata_generic_method_equal' and take MonoGenericContext.
16548         (mono_metadata_generic_context_hash): Likewise from
16549         'mono_metadata_generic_method_hash'.  Change hash function.
16550         (mono_metadata_load_generic_params): Update to changes.
16551         (mono_get_shared_generic_method): Remove.
16552         * metadata-internals.h (mono_get_shared_generic_method): Remove.
16553         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
16554         (inflate_generic_context): Likewise.
16555         (mono_class_inflate_generic_method_full): Likewise.
16556         (setup_generic_array_ifaces): Likewise.
16557         (mono_class_create_from_typespec): Likewise.
16558         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
16559         (method_encode_methodspec): Update callsite.
16560         (reflection_methodbuilder_to_mono_method): Update to changes.
16561         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
16562         MonoGenericContext as the key to the hashtable.
16563         (inflate_mono_method): Update to changes.
16564
16565         * class-internals.h (MonoGenericMethod::container): Remove.
16566         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
16567
16568 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
16569
16570         * profiler-private.h, profiler.c, profiler.h: added API to profile
16571         exception events.
16572
16573 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
16574
16575         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
16576
16577 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
16578
16579         * verify.c: method invocation is now validated, now we verify parameter types on stack.
16580         Fixed overflow and underflow not aborting the verification process.
16581
16582 2007-06-13  Mark Probst  <mark.probst@gmail.com>
16583
16584         * class-internals.h (MonoStats): Added stats entries for dynamic
16585         code allocations.
16586
16587 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
16588
16589         * loader.c (mono_free_method): Free header->locals and header->clauses.
16590
16591         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
16592         dynamic case.
16593
16594         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
16595
16596         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
16597
16598 2007-06-12  Raja R Harinath  <rharinath@novell.com>
16599
16600         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
16601         the tables.
16602
16603 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
16604
16605         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
16606
16607 2007-06-11  Raja R Harinath  <harinath@gmail.com>
16608
16609         MonoGenericMethod on a diet
16610         * class-internals.h (_MonoMethodInflated::reflection_info): Move
16611         here ...
16612         (_MonoGenericMethod::reflection_info): ... from here.
16613         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
16614         Update to changes.
16615         * reflection.c (inflate_mono_method): Likewise.
16616         (mono_reflection_bind_generic_method_parameters): Likewise.
16617
16618 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
16619
16620         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
16621         *verify.c: factored long ldarg forms to share code with short forms
16622
16623 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
16624
16625         *verify.c: fixed code formating factored some duplicate code
16626         into a new function
16627
16628         *verify.h: fixed binary incompatibility introduced earlier
16629
16630         *pedump.c: fixed formating
16631
16632 2007-06-11  Raja R Harinath  <harinath@gmail.com>
16633
16634         Fix assertion when disassembling Mono.C5.dll
16635         * loader.c (method_from_methodspec): Avoid inflating a method
16636         twice with the same context.  If the methodref is inflated, use
16637         the declaring method instead.
16638
16639         * class.c (mono_class_from_generic_parameter): Fix case similar to
16640         bug #81830 handled below, but for method containers.
16641
16642 2007-06-10  Raja R Harinath  <harinath@gmail.com>
16643
16644         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
16645         get_shared_generic_class.  Directly inflate the instance.
16646         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
16647         (inflate_generic_class): Delete.
16648         (get_shared_generic_class): Delete.  Move setting of
16649         'cached_class' and 'cached_context' ...
16650         * metadata.c (mono_metadata_lookup_generic_class): ... here.
16651
16652         * metadata.c (mono_metadata_lookup_generic_class): Change
16653         signature to take the components of a MonoGenericClass rather than
16654         an allocated MonoGenericClass.  Change semantics to be intern-like.
16655         * reflection.c (mono_class_bind_generic_parameters): Update to
16656         changes.  Make locking region tighter.
16657         * class.c (inflate_generic_class): Update to changes.
16658         (get_shared_generic_class): Likewise.
16659         * metadata-internals.h: Likewise.
16660
16661         * reflection.c (mono_class_bind_generic_parameters): Take and
16662         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
16663         (mono_reflection_bind_generic_parameters): Use
16664         'mono_class_bind_generic_parameters' rather than duplicate the code.
16665         * class.c (mono_bounded_array_class_get): Update to changes.
16666         * object-internals.h: Likewise.
16667
16668         * reflection.c (mono_class_bind_generic_parameters): Only support
16669         parameterizing generic type definitions.  Remove support for other
16670         open types.
16671
16672 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
16673
16674         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
16675
16676         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
16677         in the dynamic case.
16678
16679 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
16680
16681         * threads.c: When cleaning up thread, reset the Background bit.
16682         Fixes bug #81720.
16683
16684 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
16685
16686        * metadata.c: Move variable declarations to top of scope.
16687        * verify.c: Move variable declarations to top of scope.
16688
16689        Code is contributed under MIT/X11 license.
16690
16691 2007-06-08  Raja R Harinath  <rharinath@novell.com>
16692
16693         * reflection.c (mono_class_bind_generic_parameters): Replace
16694         open-coded loop with mono_metadata_inflate_generic_inst.
16695
16696         * class.c (get_shared_generic_class): Don't call
16697         mono_get_shared_generic_inst.  Use the container's own
16698         'class_inst'.
16699
16700         * metadata.c (mono_metadata_load_generic_params): Move
16701         initialization of 'context' field here from ...
16702         * class.c (mono_class_create_from_typedef): ... here, and ...
16703         * loader.c (mono_get_method_from_token): ... here.
16704
16705         * class.c (get_shared_generic_class): Rename from
16706         mono_get_shared_generic_class and make static.
16707         (mono_get_shared_generic_inst): Move to metadata.c.
16708         * loader.c (mono_get_shared_generic_method): Likewise.
16709         * class-internals.h, metadata-internals.h: Update to changes.
16710
16711         Fix #81830
16712         * class.c (mono_class_from_generic_parameter): Don't assume a
16713         generic container owner exists.  Generic containers from monodis
16714         don't have any.
16715
16716 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
16717
16718         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
16719         * verify.h: new typedefs to returns the non-verifiable status
16720         * verify.c: initial implementation of generics, stack merging and object compatibility check
16721
16722 2007-06-06  Mark Probst  <mark.probst@gmail.com>
16723
16724         * class.c, image.c, class-internals.h (MonoImage): class_cache is
16725         a MonoInternalHashTable again (fixed bug in internal hash table
16726         code).
16727
16728 2007-06-06  Mark Probst  <mark.probst@gmail.com>
16729
16730         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
16731         MonoInternalHashTable again (fixed bug in internal hash table
16732         code).
16733
16734 2007-06-06  Mark Probst  <mark.probst@gmail.com>
16735
16736         * class.c, image.c, class-internals.h, domain.c,
16737         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
16738         changes.  Have to figure out what makes them break the SWF
16739         regression.
16740
16741 2007-06-04  Mark Probst  <mark.probst@gmail.com>
16742
16743         * class.c, image.c, class-internals.h (MonoImage): class_cache is
16744         a MonoInternalHashTable now.
16745
16746 2007-06-04  Mark Probst  <mark.probst@gmail.com>
16747
16748         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
16749         MonoInternalHashTable now.
16750
16751 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
16752
16753         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
16754         invoke_impl code.
16755
16756         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
16757
16758         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
16759         dependent trampoline.
16760
16761         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16762
16763         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
16764
16765 2007-05-29  Robert Jordan  <robertj@gmx.net>
16766
16767         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
16768
16769 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
16770
16771         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
16772
16773 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
16774
16775        * marshal.c: Fix interface lookup loops for
16776        cominterop_get_com_slot_for_method and 
16777        cominterop_get_method_interface. Only need to lookup
16778        if type is a class, else use interface type method is on.
16779
16780        Code is contributed under MIT/X11 license.
16781
16782 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
16783
16784         * reflection.c: HasSecurity can be present even if no specially 
16785         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
16786         SecurityAttribute). Fix CAS regression tests on buildbot.
16787
16788 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
16789
16790        * appdomain.c: Add configure checks for header files.
16791        * image.c: Add configure checks for header files.
16792        * file-io.c: Add configure checks for header files.
16793        * debug-mono-symfile.c: Add configure checks for header files.
16794        * threadpool.c: Add configure checks for header files.
16795        * console-io.c: Add configure checks for header files.
16796        * profiler.c: Add configure checks for header files.
16797        * rawbuffer.c: Add configure checks for header files.
16798        * icall.c: Add configure checks for header files.
16799        * rand.c: Add configure checks for header files.
16800        * socket-io.c: Add configure checks for header files.
16801
16802        Code is contributed under MIT/X11 license.
16803
16804 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
16805
16806         * reflection.c (mono_custom_attrs_from_builders): Remove the 
16807         assertion as it breaks the build.
16808         
16809         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
16810
16811         * reflection.c (lookup_custom_attr): Make a copy here too.
16812
16813         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
16814         dynamic images.
16815
16816         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
16817         images.
16818
16819         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
16820         info.
16821
16822 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
16823
16824         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
16825         (load_cattr_value): Ditto.
16826
16827 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
16828
16829         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
16830
16831 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
16832
16833         * threads.c: In "start_wrapper", set apartment_state to MTA if
16834         apartment_state is Unknown and we're running on 2.0 profile or
16835         higher.
16836         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
16837         to main method, then set apartment_state to Unknown on 1.0 profile,
16838         and MTA on 2.0 profile.
16839
16840 2007-05-16  Jb Evain  <jb@nurv.fr>
16841
16842         * class-internals.h (MonoDefaults): Add an attribute_class and
16843           customattribute_data_class.
16844         * domain.c (mono_init_internal): Populate them.
16845         * reflection.c: Use them to remove duplicates. Make a vew
16846         MonoClass variables `static'.
16847
16848 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
16849
16850         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
16851         step in implementing IMT, so that all isinst checks now can go
16852         through the bitmap.
16853         This was needed because vtables for TransparentProxy need to look
16854         like the vtable of the "target" class, so they need to point to
16855         its interface bitmap directly.
16856
16857         * object.c: inside "mono_class_create_runtime_vtable" and
16858         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
16859
16860 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
16861
16862         * object-internals.h
16863           culture-info.h : added territory field in MonoCulture and
16864           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
16865         * locales.c : fill territory field above too.
16866         * culture-info-table.h : regenerated.
16867
16868 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
16869
16870         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
16871         Fixes #81599.
16872
16873 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
16874
16875         * object.c: Always initialize apartment, even if 
16876         there is no custom attributes on entry point.
16877         
16878         Code is contributed under MIT/X11 license.
16879
16880 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
16881
16882         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
16883         * metadata.c: If no encoding is set, check for unicode
16884         on class.
16885         
16886         Code is contributed under MIT/X11 license.
16887
16888 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
16889
16890         * threads.c: Handle if mono_thread_current returns NULL 
16891         
16892         Code is contributed under MIT/X11 license.
16893
16894 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
16895
16896         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
16897         in start_wrapper. Added mono_thread_init_apartment_state and
16898         mono_thread_cleanup_apartment_state.
16899         * object.c: Initialize thread apartment state on main thread
16900         by checking for STAThreadAttribute on entry point.
16901         * object-internals.h: Add apartment_state field to MonoThread.
16902         * threads-types.h: Add unmanaged definition of 
16903         System.Threading.ApartmentState, MonoThreadApartmentState.
16904         
16905         Code is contributed under MIT/X11 license.
16906         
16907 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
16908
16909         * class.c: Fix windows build.
16910         * class-internals.h: Fix windows build.
16911         
16912         Code is contributed under MIT/X11 license.
16913
16914 2007-05-08  Robert Jordan  <robertj@gmx.net>
16915
16916         * process.c (CreateProcess_internal):
16917         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
16918         .CreateNoWindow was specified. Fixes #81496.
16919
16920 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
16921
16922         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
16923         step in implementing IMT, replaced it with two compact arrays
16924         (interfaces_packed and interface_offsets_packed) and a bitmap that
16925         is used for isinst checks (interface_bitmap).
16926
16927         * class.c: (compare_interface_ids): compare function to pass to
16928         bsearch when looking for an interface with a given id.
16929         (mono_class_interface_offset): reimplemented using bsearch on
16930         interfaces_packed, getting the offset from interface_offsets_packed.
16931         (print_implemented_interfaces): utility debugging function.
16932         (setup_interface_offsets): reworked to initialize interfaces_packed,
16933         interface_offsets_packed and interface_bitmap.
16934
16935         * object.c: replaced all accesses to "MonoClass.interface_offsets"
16936         with uses of interfaces_packed and interface_offsets_packed.
16937
16938 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
16939
16940         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
16941         mono_class_interface_offset prototype to wrap all accesses to
16942         "MonoClass.interface_offsets".
16943
16944         * class.c: Implemented mono_class_interface_offset, and wrapped all
16945         accesses to "MonoClass.interface_offsets".
16946
16947         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
16948         "MonoClass.interface_offsets".
16949
16950 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
16951
16952         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
16953         GetMethodFromHandle overloads (bug #78637).
16954
16955 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
16956
16957         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
16958         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
16959
16960 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
16961
16962         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
16963         #81498.
16964
16965         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
16966         gracefully.
16967         (mono_custom_attrs_from_index): Ditto.
16968
16969         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
16970         Fixes #81501.
16971
16972 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
16973
16974         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
16975         is now allocated from a mempool.
16976
16977 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
16978
16979         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
16980         caller holds threads_lock, leading to deadlocks. Fixes #81476.
16981
16982 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
16983
16984         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
16985         mono_loader_clear_error () too late. Fixes #81463.
16986
16987 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
16988
16989         * culture-info-table.h : regenerated.
16990
16991 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
16992
16993         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
16994         is missing.
16995
16996 2007-04-25  Dick Porter  <dick@ximian.com>
16997
16998         * Makefile.am: Put the mingw enforced-optimisation back into the
16999         PLATFORM_WIN32 section.
17000
17001 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
17002
17003         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
17004         patch.
17005
17006         * image.c (mono_image_load_module): New API function to load a module reference.
17007
17008         * image.c (load_modules): Load modules lazily. Fixes #80812.
17009
17010         * class.c (mono_class_from_typeref): Use mono_image_load_module.
17011         
17012         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
17013
17014         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
17015         to mono_image_load_module_dynamic.
17016
17017 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
17018
17019         * marshal.c: Fix calling convention for CCW on non-windows
17020         platforms. STDCALL on windows, CDECL everywhere else to work 
17021         with XPCOM and MainWin COM.
17022         
17023         Code is contributed under MIT/X11 license.
17024
17025 2007-04-23  Martin Baulig  <martin@ximian.com>
17026
17027         Fix #80969.
17028
17029         * loader.c
17030         (method_from_memberref): Added `gboolean *used_context' argument.
17031         (mono_get_method_from_token): Likewise.
17032         (mono_get_method_full): Don't insert the method in the cache when
17033         `used_context' is true.
17034
17035 2007-04-23  Raja R Harinath  <rharinath@novell.com>
17036
17037         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
17038
17039         * reflection.c (mono_reflection_bind_generic_parameters): Don't
17040         create new MonoTypes for returned types.
17041         * class.c (mono_generic_class_get_class): Export mono-internal.
17042         * class-internals.h: Update to changes.
17043
17044 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
17045
17046         * threadpool.c, threadpool.h, icall-def.h: patch from
17047         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
17048
17049 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
17050
17051         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
17052         
17053         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
17054
17055         * threads.c (mono_thread_get_stack_bounds): New helper function.
17056
17057         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
17058         Correctly compute stack bounds when attaching. Fixes #81394.
17059
17060 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
17061
17062         * reflection.c: fix handling of doubles in custom attributes
17063         for the arm-fpa format (bug #81368).
17064
17065 2007-04-18  Raja R Harinath  <rharinath@novell.com>
17066
17067         * reflection.c (assembly_add_win32_resources): Mildly relax an
17068         bounds check to let the end pointer point just past the end of the
17069         allocated buffer.  (may fix #81384)
17070
17071 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
17072
17073         * culture-info-table.h : regenerated.
17074
17075 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
17076
17077         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
17078         the thread is aborted early.
17079
17080 2007-04-05  Dick Porter  <dick@ximian.com>
17081
17082         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
17083         FindFirstFile()/FindNextFile() to find entries.  This lets the
17084         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
17085         81038.
17086
17087         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
17088         the parameters of
17089         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
17090
17091 2007-04-04  Martin Baulig  <martin@ximian.com>
17092
17093         * debug-helpers.c
17094         (mono_method_desc_full_match): Add support for nested classes.
17095
17096 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
17097
17098         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
17099
17100 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
17101
17102         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
17103         waiting for too many threads.
17104
17105 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
17106
17107         * environment.c: Fix return value check on uname so we can get the 
17108         executing version on Solaris operating systems.
17109
17110 2007-03-28  Jb Evain  <jbevain@gmail.com>
17111
17112         * class.c (mono_type_get_name_recurse): Complete the
17113         fix for the creation of assembly qualified names for
17114         pointer types. Fixes #81208.
17115
17116 2007-03-27  Dick Porter  <dick@ximian.com>
17117
17118         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
17119         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
17120         changed.
17121
17122         * threads.c
17123         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
17124         the value of ReleaseMutex().
17125
17126 2007-03-27  Dick Porter  <dick@ximian.com>
17127
17128         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
17129         in little-endian order, not network endian, so must be converted
17130         to host endian here.  Fixes bug 80593.
17131
17132 2007-03-22  Jb Evain  <jbevain@gmail.com>
17133
17134         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
17135         qualified names for pointer types. Fixes #81208.
17136
17137 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
17138
17139         * marshal.c: Add support for PreserveSigAttribute. 
17140         
17141         Code is contributed under MIT/X11 license.
17142
17143 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
17144
17145         * process.c: Fix endianness issues. Fixes #81126.
17146
17147         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
17148         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
17149
17150         * image.c (mono_image_lookup_resource): Make this work on big-endian
17151         machines.Change API contract so the caller needs to free the return value.
17152         
17153         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
17154         API change.
17155         
17156 2007-03-14  Martin Baulig  <martin@ximian.com>
17157
17158         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
17159         mono_type_get_desc() as well.
17160
17161 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
17162
17163         * icall.c:  Fix environ access in VS.  
17164         
17165 2007-03-13  Alp Toker  <alp@atoker.com>
17166
17167         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
17168         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
17169         #63841.
17170
17171 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
17172
17173         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
17174         circular references among dynamic methods. Fixes #81091.
17175
17176         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
17177
17178 2007-03-09  Martin Baulig  <martin@ximian.com>
17179
17180         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
17181
17182 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
17183
17184         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
17185         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
17186         
17187         Code is contributed under MIT/X11 license.
17188         
17189 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
17190
17191         * loader.c: Reapply patch for bug #79424.
17192
17193 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
17194
17195         * metadata.c (mono_type_to_unmanaged): Only convert object to
17196         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
17197
17198 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
17199
17200         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
17201         (and incorrectly set) is_reference field from MonoGenericInst.
17202
17203 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
17204
17205         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
17206         a little earlier.
17207
17208         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
17209
17210         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
17211
17212 2007-03-05  Miguel de Icaza  <miguel@novell.com>
17213
17214         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
17215         FileOptions.1 value to mean "temporary", map that to
17216         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
17217
17218         Fixes 80688
17219
17220 2007-03-03  Marek Habersack  <mhabersack@novell.com>
17221
17222         * appdomain.c: implement MS .Net style shadow copying. Copies of
17223         the assemblies are made in a subdirectory of the dynamic base
17224         directory, the assembly names are preserved.
17225         Copy .mdb and .config files along with the assemblies being shadowed.
17226
17227 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
17228
17229         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
17230         (emit_marshal_handleref): Ditto.
17231
17232         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
17233         on Visual C++. Fixes #80671.
17234
17235 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
17236
17237         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
17238         for clone operations.
17239
17240 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
17241
17242         * marshal.c: Fix warnings.
17243
17244 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
17245
17246         * loader.c: allow case-insensitive matching of the dll name
17247         in dllmap handling when prefixed with "i:".
17248
17249 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
17250
17251         * threads.c: Fix #ifdef for dummy_apc function for VS.
17252
17253 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
17254
17255         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
17256
17257 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
17258         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
17259         giving precedence to the methods with a fully qualified name
17260         (InterfaceName.MethodName) when building the interface sections
17261         of the vtable.
17262
17263 2007-02-16  Dick Porter  <dick@ximian.com>
17264
17265         * threadpool.c (append_job): Fix fast-path array handling, so it's
17266         less likely the array will grow exponentially when the load is
17267         heavy.
17268
17269 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
17270
17271         * metadata-internals.h, loader.c: fix dllmap lookup order
17272         for non-function maps, too, and prepare for fallback code.
17273
17274 2007-02-12  Robert Jordan  <robertj@gmx.net>
17275
17276         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
17277         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
17278         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
17279         GlobalFree. Fixes a part of bug #77075.
17280
17281 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
17282
17283         * loader.c: implemented typedef parent in field memberref.
17284
17285 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
17286
17287         * marshal.c: Fix warnings and remember to call Release on
17288         IUnknown of RCW.
17289         
17290         Code is contributed under MIT/X11 license.
17291
17292 2007-02-10  Miguel de Icaza  <miguel@novell.com>
17293
17294         * class-internals.h: Add MonoHandleRef definition, and
17295         handleref_class to mono_defaults. 
17296
17297         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
17298         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
17299
17300         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
17301         (do nothing on this stage)
17302         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
17303         (emit_marshal_handleref): New method, used for argument handling
17304         of HandleRefs. 
17305
17306 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
17307
17308         * class.c (mono_class_setup_parent): Lazily init com types.
17309         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
17310         init com types.
17311         * object.c (mono_remote_class_vtable): Lazily init com types.
17312         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
17313         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
17314         * domain-internals.h: Expose mono_init_com_types.
17315         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
17316         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
17317         Add support for COM Callable Wrapper marshalling.
17318         * marshal.h: Add icall definitions.
17319         * gc.c: Handle freeing of CCWs in finalizer code.
17320         
17321         Code is contributed under MIT/X11 license.
17322
17323 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
17324
17325         * reflection.c: changed all the signature encoding code to use
17326         a variable-sized buffer.
17327
17328 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
17329
17330         * marshal.c: locking fixes: never take the loader lock
17331         or other runtime locks when holding the marshal lock
17332         (fixes bug#80664).
17333
17334 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
17335
17336         * marshal.c: make the delegate function pointer mapping
17337         work for the moving GC.
17338
17339 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
17340
17341         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
17342         for bug #80618.
17343
17344 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
17345
17346         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
17347         gmodule.
17348
17349 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
17350
17351         * threadpool.c: made the code moving-GC safe.
17352
17353 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
17354
17355         * assembly.c, boehm-gc.c, class-internals.h, class.c,
17356         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
17357         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
17358         warning cleanup.
17359         * reflection.c: warning cleanup, some threading and moving GC fixes.
17360
17361 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
17362
17363         * class.c, loader.c: create the needed Set/Get/Address array methods
17364         as well as the .ctors in mono_class_init (), fixes bug #80567.
17365
17366 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
17367
17368         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
17369         we doesn't decrease its alignment. Should fix the sparc build.
17370
17371 2007-01-24  Dick Porter  <dick@ximian.com>
17372
17373         * socket-io.c
17374         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
17375         Create the returned object if we need to ignore an unsupported
17376         socket option.  Fixes a segfault reported by Atsushi.
17377
17378 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
17379
17380         * class.c, object.c: restrict GC-tracked fields to
17381         UIntPtr fields used inside corlib, so we provide better
17382         type info to the GC and also allow broken packing as in
17383         bug #80580.
17384
17385 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
17386
17387         * sgen-gc.c: removed duplicated function.
17388
17389 2007-01-19  Miguel de Icaza  <miguel@novell.com>
17390
17391         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
17392         value that means that the value is not supported, but that we
17393         should not return a failure, but instead report this as a
17394         successful operation.
17395
17396 2007-01-19  Raja R Harinath  <rharinath@novell.com>
17397
17398         Fix tests/bug79956.2.il
17399         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
17400         (mono_generic_class_get_class): If the generic definition in an
17401         enum, copy over other fields related to it.
17402
17403 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
17404
17405         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
17406         genericinst enums (bug #79215).
17407
17408 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
17409         * class.c: Fix bug 80307.
17410
17411 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
17412
17413         * image.c: if the file table is not present, try to load
17414         all the modules, since we don't have info about them
17415         having or not metadata (bug #80517).
17416         * assembly.c: allow mono_assembly_load_references () to
17417         work for netmodules.
17418
17419 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
17420
17421         * image.c, metadata-internals.h, object.c: execute module
17422         cctors when running on the 2 runtime if present (bug #80487).
17423
17424 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
17425
17426         * icall.c: optimized InitializeArray() on bigendian.
17427
17428 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
17429
17430         * icall.c: fix for the broken ARM FPA double format.
17431
17432 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
17433
17434         * icall.c: handle endian issues for r4 and r8 types, too, in
17435         the InitializeArray() icall.
17436
17437 2007-01-15  Miguel de Icaza  <miguel@novell.com>
17438
17439         * loader.c (mono_loader_error_prepare_exception): Clear the error
17440         once we have extracted the information from it, do this before we
17441         call into the JIT's class loading mechanisms.
17442
17443         * object.c (mono_class_create_runtime_vtable): Do not clear the
17444         loader error before calling mono_class_get_exception_for_failure
17445         as the loader error is needed inside
17446         mono_class_get_exception_for_failure to throw the error (thinko).
17447
17448         Fixes #80521
17449         
17450 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
17451
17452         * reflection.c: align fields rva data so it's faster to load at
17453         runtime.
17454
17455 2007-01-12  Raja R Harinath  <rharinath@novell.com>
17456
17457         Prepare to simplify GenericMethod handling.
17458         * class-internals.h (mono_method_get_context): New accessor function.
17459         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
17460         rather than directly accessing '->context' field.
17461
17462         * class-internals.h (_MonoGenericParam.method): Move ...
17463         (_MonoGenericContainer): ... here.  Add into union with klass field.
17464         * class.c, icall.c, loader.c, metadata.c, reflection.c:
17465         Update to changes.
17466
17467 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
17468
17469         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
17470         the wrapper type enum and reduce relocations.
17471
17472 2007-01-12  Raja R Harinath  <rharinath@novell.com>
17473
17474         * reflection.c (inflate_mono_method): Reuse method instantiation
17475         from the generic method, if available.
17476
17477 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
17478
17479         * marshal.c (emit_marshal_variant): Fix conv_arg
17480         type in last commit, based on whether parameter is byref.
17481         
17482 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
17483
17484         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
17485         marshalling.
17486         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
17487         MONO_TYPE_OBJECT back for VARIANT support.
17488
17489 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
17490
17491         * marshal.c, marshal.h, icall-def.h: Implement 
17492         Marshal.ReAllocCoTaskMem.
17493
17494 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
17495
17496         * marshal.c: memory retention fixes: use the proper
17497         image cache for runtime_invoke method lookups.
17498
17499 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
17500
17501         * mempool.c: added code to help debug mempool allocations.
17502
17503 2007-01-11  Dick Porter  <dick@ximian.com>
17504
17505         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
17506         support (experimenting with faking it with IP_MTU_DISCOVER for
17507         systems that don't have IP_DONTFRAGMENT.)
17508         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
17509         icall.
17510
17511         * icall-def.h: new System.Net.Sockets.Disconnect icall.
17512
17513         * socket-io.h: Add new fields to MonoSocketAsyncResult
17514         corresponding to the new ones in Socket.cs.
17515
17516 2007-01-11  Raja R Harinath  <rharinath@novell.com>
17517
17518         Fix IronPython regression mentioned in #80249
17519         * metadata.c (do_mono_metadata_parse_generic_class): Clear
17520         'cached_context' field, since it may have been initialized as a
17521         side-effect of metadata parsing.
17522
17523         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
17524         (_MonoGenericClass.cached_class): Move here and rename from lone
17525         remaining field of ...
17526         (_MonoInflatedGenericClass): ... this.  Remove.
17527         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
17528         to changes.
17529
17530         Fix mcs/tests/test-128.cs regression.
17531         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
17532         2007-01-10 change below.
17533         [MONO_TYPE_OBJECT]: Recurse into array case.
17534
17535 2007-01-11  Raja R Harinath  <harinath@gmail.com>
17536
17537         * class-internals.h (mono_get_inflated_generic_class): Remove.
17538         * class.c (mono_get_inflated_generic_class): Remove.
17539         (mono_generic_class_get_class): Rename from
17540         mono_class_create_generic.
17541         (mono_class_from_mono_type) [GENERICINST]: Use it.
17542         * reflection.c, metadata.c: Update to changes.  Use
17543         'mono_class_from_mono_type'.
17544
17545 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
17546
17547         * reflection.c: use passed type when encoding an array element
17548         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
17549
17550 2007-01-09  Robert Jordan  <robertj@gmx.net>
17551
17552         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
17553         result arguments (someDelegate.EndInvoke (unrelatedAres)).
17554         Fixes bug #80392.
17555
17556 2007-01-09  Raja R Harinath  <rharinath@novell.com>
17557
17558         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
17559
17560         * object.c (set_value): Avoid aliasing between type->data.klass
17561         and type->data.generic_class.
17562
17563         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
17564
17565 2007-01-08  Raja R Harinath  <rharinath@novell.com>
17566
17567         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
17568         between type->data.klass and type->data.generic_class.
17569
17570 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
17571
17572         * marshal.c: In MS.NET, StringBuilder objects are not copied by
17573         value in out parameters.
17574
17575 2007-01-08  Raja R Harinath  <rharinath@novell.com>
17576
17577         Simplify invariant for MonoGenericClass::klass field.
17578         * class.c (mono_class_create_generic): Verify 'klass' is null.
17579         * metadata.c (do_mono_metadata_parse_generic_class): Don't
17580         initialize 'klass' field.
17581
17582 2007-01-05  Raja R Harinath  <rharinath@novell.com>
17583
17584         Ongoing work to avoid redundant data and simplify invariants.
17585         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
17586         'generic_class', and change type to a GenericInst.
17587         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
17588         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
17589
17590 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
17591
17592         * class.c : skip io-layer under PLATFORM_WIN32.
17593
17594 2007-01-03  Tor Lillqvist  <tml@novell.com>
17595
17596         Fix #80305: In a bundled executable, look in the bundled exe
17597         assembly to determine the runtime version. Add the possibility to
17598         bundle also the machine.config file.
17599         
17600         * assembly.c (mono_assembly_open_from_bundle): Make
17601         non-static. Allow being called even if we have no bundled
17602         assemblies, and return NULL right away in that case.
17603
17604         * domain-internals.h: Declare mono_assembly_open_from_bundle()
17605         here.
17606
17607         * domain.c (app_config_parse): Take an assembly exe file name as
17608         parameter instead of a config file name. Check for a bundled
17609         config file for that assembly by calling
17610         mono_config_string_for_assembly_file() (see below) before looking
17611         for one in the file system.
17612         (get_runtimes_from_exe): Corrsponding change to call of
17613         app_config_parse().
17614         (get_runtimes_from_exe): Check for bundled assembly exe file first
17615         by calling mono_assembly_open_from_bundle(). If no bundled
17616         assembly exe file is found, call mono_image_open() as before to
17617         look it up in the file system.
17618
17619         * mono-config.c: Add variable bundled_machinec_onfig.
17620         (mono_config_string_for_assembly_file): New function.
17621         (mono_config_for_assembly): Move code snippet that looks for a
17622         bundled assembly .config file into the above new function. Call
17623         it.
17624         (mono_register_machine_config, mono_get_machine_config): New
17625         functions to set and retrieve
17626
17627         * assembly.h: Declare mono_register_machine_config().
17628
17629         * mono-config.h: Declare mono_get_machine_config() and
17630         mono_config_string_for_assembly_file().
17631
17632         * icall.c: No declaration of environ necessary on Win32. It is
17633         declared (as a macro expanding to a function call) in stdlib.h.
17634         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
17635         New internal mono function. Returns the value of
17636         mono_get_machine_config() as a Mono string.
17637
17638         * icall-def.h: Add get_bundled_machine_config().
17639
17640 2007-01-04  Raja R Harinath  <rharinath@novell.com>
17641
17642         Remove redundant field
17643         * class-internals.h (_MonoGenericContext.container): Remove field.
17644         * loader.c (mono_method_get_signature_full): Don't parse a
17645         "container" for a signature parse when the signature is inflated
17646         immediately.
17647         (method_from_methodspec): Likewise, for a generic_inst.
17648         * class.c, metadata.c, reflection.c: Update to changes.
17649
17650 2006-01-04  Raja R Harinath  <rharinath@novell.com>
17651
17652         * class-internals.h (_MonoGenericClass): Rename 'context' field to
17653         'cached_context', and change semantics -- it starts off NULL, and
17654         is initialized on demand.
17655         * class.c (mono_generic_class_get_context): New accessor to
17656         replace 'context' field accesses.
17657         (mono_class_get_context): New helper.
17658         (*): Update to changes.
17659         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
17660
17661 2007-01-03  Miguel de Icaza  <miguel@novell.com>
17662
17663         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
17664         before the memcpy.   Fixes Marshal2 regression.
17665
17666 2007-01-02  Jb Evain  <jbevain@gmail.com>
17667
17668         * blob.h: add a MONO_TYPE_ENUM definition
17669         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
17670         fix the encoding of arrays of enums in custom attributes.
17671
17672         Fixes #79666.
17673
17674 2007-01-01  Miguel de Icaza  <miguel@novell.com>
17675
17676         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
17677         string is null terminated, but only cut the string short if it
17678         overflows the buffer.   
17679         
17680         (mono_string_to_byvalstr): Also fix this routine.   The code here
17681         was not properly terminating a string (it was only terminated
17682         because of the previous catch-all memset). 
17683
17684         I left the memset, because I do not know if applications expect
17685         the runtime to clear this region. 
17686
17687         Fixes #79944.
17688
17689         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
17690         Clear the error before returning to unmanaged code to prevent the
17691         runtime from being confused later on (fixes  80420).
17692         (ves_icall_type_from_name): Always call mono_loader_clear_error
17693         after parsing a type that could have failed.
17694         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
17695
17696         * loader.c (mono_loader_clear_error): Fix indentation.
17697
17698 2006-12-28  Martin Baulig  <martin@ximian.com>
17699
17700         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
17701
17702 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
17703
17704         * reflection.c: patch from Rolf Bjarne Kvinge to fix
17705         getting a token for an EnumBuilder.
17706
17707 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
17708
17709         * reflection.c: be more careful in case resource generation
17710         fails to create the data array.
17711
17712 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
17713
17714         * sgen-gc.c: write barrier for clone and fix unregister handles.
17715
17716 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
17717
17718         * reflection.c: some fixes needed in the generics code for the moving GC.
17719
17720 2006-12-22  Robert Jordan  <robertj@gmx.net>
17721
17722         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
17723         account. Fixes bug #80299.
17724
17725 2006-12-21  Raja R Harinath  <rharinath@novell.com>
17726
17727         Fix WaitHandle usage in delegates.
17728         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
17729         * object.c (mono_wait_handle_new): Use the property set method to
17730         initialize the handle.
17731         (mono_wait_handle_get_handle): New.
17732         * threadpool.c (mono_async_invoke): Use it.
17733         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
17734         Likewise.
17735         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
17736
17737 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
17738
17739         * marshal.c (emit_marshal): Call emit_marshal_variant and
17740         emit_marshal_com_interface when applicable.
17741         (emit_marshal_variant, emit_marshal_com_interface): Add
17742         methods for this case and remove if's from emit_marshal_object.
17743         
17744 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
17745
17746         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
17747
17748 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
17749
17750         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
17751         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
17752         and GlobalFree on Windows. Remove FIXME.
17753
17754 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
17755
17756         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
17757         implementation for managed objects.
17758
17759 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
17760
17761         * object.c: implemented code to be used for checking
17762         that no reference field overlaps with non-references.
17763
17764 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
17765
17766         * threadpool.c: fix queue code to be compatible with the
17767         moving GC.
17768
17769 2006-12-18  Miguel de Icaza  <miguel@novell.com>
17770
17771         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
17772         in structures by throwing ArgumentNullException.
17773
17774         (emit_marshal_safehandle): Also when they are null parameters.
17775
17776         (emit_marshal_safehandle): Add support for ref
17777         SafeHandles parameters
17778
17779 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
17780
17781         * profiler.c: updated to use the mono-dl API instead of
17782         gmodule.
17783
17784 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
17785
17786         * profiler.c: updated to use the mono-dl dynamic loading
17787         API instead of gmodule.
17788
17789 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
17790
17791         * profiler.c: use readlink, older versions of glib don't have
17792         g_file_read_link ().
17793
17794 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
17795
17796         * profiler.c: try to detect the path to mono if libc fails to provide
17797         a useful name (bug #80286).
17798
17799 2006-12-16  Raja R Harinath  <rharinath@novell.com>
17800
17801         Fix #80242
17802         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
17803         instance, use the generic type definition instead.
17804         (ves_icall_Type_GetNestedTypes): Likewise.
17805         * class.c (mono_class_create_generic): Always set the
17806         nested_classes of a generic instance to NULL, even if the generic
17807         type definition has nested types.
17808
17809 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
17810
17811         * marshal.c (mono_string_from_bstr): Revert previous Windows change
17812         and fix on Linux.
17813         
17814 2006-12-15  Miguel de Icaza  <miguel@novell.com>
17815
17816         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
17817         my arguments were in the wrong order.   I also fixed the Windows
17818         version which seems to have had the same issue.
17819
17820         (mono_free_bstr): On Unix, this is g_free.
17821         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
17822         conversions (for the tests in corlib to pass).
17823
17824 2006-12-14  Miguel de Icaza  <miguel@novell.com>
17825
17826         * marshal.c (emit_ptr_to_object_conv): For now, ignore
17827         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
17828         exception if a ref SafeHandle in a struct has changed).
17829         
17830         (emit_struct_conv): Do not perform layout checks for classes
17831         derived from SafeHandle, as those are specially handled. 
17832
17833         (emit_object_to_ptr_conv): Add support for
17834         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
17835
17836         (emit_marshal_safehandle): Implement conversion of return values
17837         of safehandles (MARSHAL_ACTION_CONV_RESULT).
17838         
17839         * threads.c: WaitHandle now is compiled with two different handles
17840         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
17841         for 2.0.
17842         
17843         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
17844         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
17845         these routines to cope with both kinds of fields.
17846
17847 2006-12-12  Miguel de Icaza  <miguel@novell.com>
17848
17849         * metadata.c (mono_type_to_unmanaged): Handle the case where
17850         type->data.klass is a SafeHandle, and in that case, return the
17851         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
17852         MONO_MARSHAL_CONV_SAFEHANDLE. 
17853
17854 2006-12-11  Miguel de Icaza  <miguel@novell.com>
17855
17856         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
17857         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
17858         calling emit_marshal_object.
17859
17860         (emit_marshal_safehandle): Implement marshalling of
17861         SafeHandle parameters (no ref support yet).
17862
17863         (MarshalAction): Document the defines as I implement
17864         them for SafeHandle.
17865
17866         (emit_marshal_object): indentation police.
17867
17868         * class-internals.h: Define MonoSafeHandle.
17869         Add safehandle_class to MonoDefaults type.
17870
17871         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
17872         list of classes to check for fields. 
17873
17874         * domain.c (mono_init_internal): Add SafeHandle to the list of
17875         mono_defaults loaded.
17876
17877 2006-12-15  Raja R Harinath  <rharinath@novell.com>
17878
17879         Fix #80253
17880         * reflection.c (mono_reflection_bind_generic_parameters): If the
17881         generic type definition is a type builder, ensure that it is fully
17882         initialized before instantiating it.  Kill some dead code.
17883
17884 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
17885
17886         * object.c: clear the loader_error () before loading
17887         more metadata stuff (bug #80258).
17888
17889 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
17890
17891         * icall.c, icall-defs.h: type modifiers icalls for
17892         parameters and properties.
17893
17894 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
17895
17896         * object.c, icall.c: fixed warnings.
17897
17898 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
17899
17900         * marshal.c: fixed a couple of leaks and coding style in a few places.
17901
17902 2006-12-08  Dick Porter  <dick@ximian.com>
17903
17904         * process.c: Cope with NULL ProcessStartInfo arguments on windows
17905         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
17906         80173.
17907
17908 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
17909
17910         * process.c: ProcessStartInfo may have only filename set and
17911         arguments can be NULL.
17912
17913 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
17914
17915         * icall.c: fix leak found by Robert Jordan.
17916
17917 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
17918
17919         * marshal.c, marshal.h: generate managed method to access an element
17920         of a multi-dimensional array.
17921
17922 2006-11-30  Paolo Molaro (lupus@ximian.com)
17923
17924         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
17925
17926 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
17927
17928         * icall.c: back out GetFields () fix until the serialization code is
17929         fixed to not depend on the incorrect behaviour.
17930
17931 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
17932
17933         * profiler.c: provide defaults if none are set.
17934
17935 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
17936
17937         * Makefile.am, attrdefs.h: new public header file with
17938         constants for attributes for use by embedders.
17939
17940 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
17941
17942         * icall.c: GetFields () fix for bug #80064.
17943
17944 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
17945
17946         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
17947         removed long unused icalls.
17948
17949 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
17950   
17951         * marshal.c: 
17952                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
17953                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
17954                 can be generated without a delegate class.
17955                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
17956         
17957         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
17958
17959 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17960
17961         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
17962         #80069.
17963
17964 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
17965
17966         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
17967         icall-def.h: added icalls needed by System.GC.
17968
17969 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
17970
17971         * loader.c: ensure the class in catch clauses is handled
17972         correctly for generics methods (fixes bug#79980).
17973
17974 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
17975
17976         * monitor.h, monitor.c: added mono_locks_dump () function
17977         to help debug deadlocks involving managed locks.
17978
17979 2006-11-13  Dick Porter  <dick@ximian.com>
17980
17981         * file-io.c (get_file_attributes): If the file is a symlink try
17982         and get the stat data for the target, but also add the
17983         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
17984         the specs for the windows symlink support, but will probably have
17985         to be reworked when I have test data from a vista machine.  Fixes
17986         bug 79887.
17987
17988 2006-11-13  Dick Porter  <dick@ximian.com>
17989
17990         * gc.c (mono_domain_finalize): 
17991         * marshal.c (mono_delegate_begin_invoke): 
17992         * threadpool.c (socket_io_init, mono_thread_pool_init)
17993         (mono_thread_pool_finish): 
17994         * monitor.c (mono_monitor_try_enter_internal): 
17995         * threads.c (mono_thread_resume, mono_thread_init)
17996         (mono_thread_suspend_all_other_threads)
17997         (mono_thread_execute_interruption): 
17998         * appdomain.c (mono_domain_unload): Check for NULL error returns
17999         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
18000         75733.
18001
18002 2006-11-11  Miguel de Icaza  <miguel@novell.com>
18003
18004         * process.c
18005         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
18006         Only close the handle if the value of the handle is not
18007         INVALID_HANDLE_VALUE.  This just makes the process a bit more
18008         robust.
18009
18010         Improvement for #75733, so that we do not run into this problem. 
18011
18012         
18013         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
18014         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
18015         internal variables.  Fixes #79462 
18016         
18017
18018 2006-11-09  Dick Porter  <dick@ximian.com>
18019
18020         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
18021         Use poll() not select().  Fixes bug 79397.
18022
18023 2006-11-09  Raja R Harinath  <rharinath@novell.com>
18024
18025         Fix #79872
18026         * assembly.c (mono_assembly_load_from_full): Check that the given
18027         image has an assembly manifest.
18028
18029 2006-11-09  Ankit Jain  <jankit@novell.com>
18030
18031         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
18032         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
18033         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
18034
18035 2006-11-07  Dick Porter  <dick@ximian.com>
18036
18037         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
18038         Put the old resolver behaviour back for pre-2.0 profiles.
18039
18040 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
18041
18042         * threadpool.c: precise GC and locking fixes.
18043
18044 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
18045
18046         * class.c: don't load types that have an explicit unaligned
18047         managed reference. Provide better info in the TypeLoad exception.
18048         Part of the fix for bug #79744.
18049         * object.c: use the correct check for class type load issues.
18050
18051 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
18052
18053         * class.c: enforce alignment of fields with managed references
18054         even when Pack=1 is forced by the user (bug #77788).
18055
18056 2006-11-03  Dick Porter  <dick@ximian.com>
18057
18058         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
18059         If the address reverse lookup fails, return it as the hostname
18060         anyway.  Fixes bug 79721.
18061
18062 2006-11-03  Dick Porter  <dick@ximian.com>
18063
18064         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
18065         Fix build on Windows.
18066
18067 2006-11-02  Dick Porter  <dick@ximian.com>
18068
18069         * icall-def.h: 
18070         * object-internals.h: 
18071         * exception.c (mono_get_exception_thread_interrupted): 
18072         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
18073         Fixes bug 74525.
18074
18075         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
18076         Check for pending Thread.Interrupt.
18077
18078 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
18079         * loader.c: Fixed bug 79684.
18080
18081 2006-10-27  Dick Porter  <dick@ximian.com>
18082
18083         * file-io.c (get_file_attributes): Force symlinks to directories
18084         to be returned as a regular file.  Fixes bug 79733.
18085 2006-10-26  Dick Porter  <dick@ximian.com>
18086
18087         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
18088         CreateFile to open a directory then we need to set the
18089         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
18090
18091 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
18092
18093         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
18094         friends.
18095
18096 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
18097
18098         * sgengc.c: small cleanup of timer code.
18099
18100 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
18101
18102         * sgen-gc.c: fix some warnings and start adding support for
18103         complete object removal on domain unload.
18104
18105 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
18106
18107         * assembly.c: build_assembly_name should not consider a version
18108         number without build or revision number invalid. Fixes bug #79715.
18109
18110 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
18111
18112         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
18113         call kernel32 function OutputDebugString directly.
18114         
18115         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
18116         
18117 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
18118
18119         * reflection.c: small cleanup, using a function to insert a MonoString
18120         in the string heap.
18121
18122 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
18123
18124         * reflection.c: moving GC fixes.
18125
18126 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
18127
18128         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
18129         all the objects with finalizers belonging to an unloading appdomain.
18130
18131 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
18132
18133         * sgen-gc.c: added ability to allocate even when the nursery is fully
18134         pinned and fixed a couple of bugs.
18135
18136 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
18137
18138         * threads.h: Revert the last change for now.
18139
18140         * threads.h (mono_thread_get_pending_exception): Rename this to
18141         mono_thread_get_undeniable_exception ().
18142
18143 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
18144
18145         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
18146         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
18147         when fname does not refer to valid assembly. This result in a more
18148         meaningful error message.
18149         * exception.c: added mono_get_exception_bad_image_format2 which 
18150         constructs a BadImageFormatException using the ctor taking a custom
18151         message and the file name. Passing in a NULL msg results in a default
18152         message.
18153         * exception.h: define mono_get_exception_bad_image_format2 function.
18154         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
18155         when file name pointed to an invalid IL image. Use 
18156         mono_get_exception_file_not_found2 to construct FileNotFoundException,
18157         as this results in a more meaningful error message.
18158
18159 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
18160
18161         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
18162         #79465.
18163
18164 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
18165
18166         * metadata.c (mono_type_size): Change the align parameter to guint32 for
18167         consistency with the other _size functions.
18168         (mono_type_stack_size): Ditto.
18169
18170         * class.c object.c icall.c: Fix warnings caused by the above change.
18171
18172         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
18173
18174         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
18175
18176         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
18177
18178 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
18179
18180         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
18181         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
18182         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
18183         threadpool.h, threads-types.h: mark more internal functions.
18184
18185 2006-10-11  Dick Porter  <dick@ximian.com>
18186
18187         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
18188         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
18189         reproduce the bug even before applying the fix.)
18190
18191 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
18192
18193         * reflection.c: allow retrieving attributes for arguments in generic
18194         methods (bug #79241).
18195
18196 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
18197
18198         * debug-mono-symfile.c: properly check fopen () result (found by
18199         coverity).
18200
18201 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
18202
18203         * reflection.c: make error message clearer and fixed two
18204         issuelets found by Coverity.
18205
18206 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
18207
18208         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
18209
18210 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
18211
18212         * object-internals.h, gc-internal.h, profiler-private.h:
18213         mark internal functions.
18214
18215 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
18216
18217         * reflection.c: put data in the text section.
18218         * icall.c: recognize more types in type_from_typename ().
18219         * process.c, marshal.c: added some GC FIXMEs.
18220
18221 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
18222
18223         * loader.c: check for NULL before initializing.
18224
18225 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
18226
18227         * gc.c (finalizer_thread): Use a non-alertable wait here.
18228
18229         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
18230         until the correct solution is found.
18231
18232 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
18233
18234         * reflection.c (mono_module_get_object): Avoid an assert when operating on
18235         modules with no metadata. Fixes #79596.
18236
18237         * image.c (load_metadata_ptrs): Put back the error message when
18238         the #- heap is encountered since the support is not complete yet.
18239
18240 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
18241
18242         * gc.c: do not allow the user to SuppressFinalize () a
18243         delegate because it would leak the trampoline if present.
18244
18245 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
18246
18247         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
18248         PropertyPtr table.
18249
18250 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
18251
18252         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
18253
18254         * metadata.c (mono_metadata_get_param_attrs): Ditto.
18255
18256         * row-indexes.h: Add definitions for *Ptr tables.
18257
18258         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
18259
18260         * metadata.c (mono_metadata_translate_token_index): New helper function to
18261         translate table indexes used in uncompressed metadata.
18262         (mono_metadata_decode_table_row): Ditto.
18263         (mono_metadata_decode_table_row_col): Ditto.
18264
18265         * metadata.c: Add table schema for *Ptr tables.
18266
18267         * class.c loader.c: Use the new helper function to access the affected metadata
18268         tables.
18269         
18270         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
18271         #38532.
18272         
18273 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
18274
18275         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
18276         sequences which can be unbounded in size. Fixes #79583.
18277
18278 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
18279
18280         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
18281         static initialization.
18282
18283         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
18284
18285         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
18286
18287         * domain.c (mono_domain_free): Free up type_init_exception_hash.
18288
18289         * object.c (mono_runtime_class_init): Implement correct semantics when a static
18290         ctor fails, i.e. throw the same exception on subsequent accesses.
18291         
18292 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
18293
18294         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
18295         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
18296         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
18297         Handle marshalling of interfaces and VARIANTs contained in structs.
18298         
18299         Code is contributed under MIT/X11 license.
18300         
18301 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
18302
18303         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
18304         
18305         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
18306         mempool.
18307
18308 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18309
18310         * console-io.c: ignore previous SIGINT handler.
18311
18312 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
18313
18314         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
18315         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
18316         #79460, #79461, #79485.
18317
18318         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
18319
18320         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
18321         #79217.
18322
18323 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
18324
18325         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
18326         could be generated from it.
18327
18328 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
18329
18330         * rand.c: fix read loop to correctly handle EINTR.
18331
18332 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
18333
18334         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
18335         internal calls are defined to keep methods closer to the declaring
18336         type and allow a significant reduction in runtime relocations and
18337         memory usage.
18338
18339 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
18340
18341         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
18342         exception message to have FileNotFoundException use the default
18343         assembly load error message. Fixes bug #79426.
18344         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
18345
18346 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18347
18348         * threadpool.c: (start_thread_or_queue) use the root domain when
18349         creating the thread instead of the async object one.
18350
18351 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
18352
18353         * class.c, object.c, class-internals.h, reflection.c:
18354         for arrays, store element_size inside MonoClass (speedup
18355         for array object creation).
18356
18357 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
18358
18359         * icall.c: fixed CodeBase to use the file name and not the module
18360         name (bug #79365).
18361
18362 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
18363
18364         * mono-debug.c, mono-debug.h: export find_method as
18365         mono_debug_find_method ().
18366
18367 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
18368
18369         * debug-helpers.c, class-internals.h: added a few functions useful
18370         when debugging under gdb.
18371
18372 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18373
18374         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
18375         characters that need special handling.
18376
18377 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
18378
18379         * mono-config.c: make the os/cpu specification more flexible,
18380         allowing lists and negation.
18381
18382 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
18383
18384         * marshal.c: COM Interop fixes. Handle case where method->klass.
18385         is interface. Handle BSTR/MonoString when null. Use CDECL as 
18386         calling convention on non-windows platforms. This is for
18387         compatibility with XPCOM and MainWin COM.
18388         
18389         Code is contributed under MIT/X11 license.
18390         
18391
18392 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
18393
18394         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
18395         correctly. Fixes #79217.
18396
18397         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
18398
18399 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
18400
18401         * mono-config.c: allow both an os and cpu attribute for dllmap
18402         and dllentry elemnets to enable a single config file to be used
18403         for multiple architectures.
18404
18405 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
18406
18407         * loader.c: MonoLoaderError was cleared too soon on load failure.
18408         Fixes bug #79424.
18409
18410 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
18411
18412         * icall.c: use the defining class vtable when accessing a
18413         static field, not a pobblibly derived class.
18414
18415 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
18416
18417         * icall.c string-icalls.c: Remove references to unicode.h.
18418
18419         * unicode.h unicode.c Makefile.am: Remove these unused source files.
18420
18421         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
18422
18423         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
18424         indicating the image where custom marshaller types should be looked up.
18425         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
18426         custom marshallers, instead of corlib. Fixes #79425.
18427
18428 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
18429
18430         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
18431
18432 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
18433
18434         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
18435         Implement Environment.ProcessorCount.
18436         
18437         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
18438         Implement Environment.ProcessorCount.
18439         
18440         * icall.c: 
18441         Add Environment.ProcessorCount icall.
18442         
18443         Patch by Jason McFall.
18444
18445 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18446
18447         * assembly.c: don't append .exe/.dll when the filename already contains
18448         one of those extensions.
18449
18450 2006-09-12  Martin Baulig  <martin@ximian.com>
18451
18452         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
18453         to array interfaces.
18454
18455 2006-09-11  Martin Baulig  <martin@ximian.com>
18456
18457         * reflection.c (mono_image_build_metadata): Create the
18458         MethodImpl's after emitting all types and methods, so we don't
18459         need another fixup pass for them.
18460
18461 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
18462
18463         * class.c (mono_class_from_name_case): Fix regression introduced by the last
18464         change.
18465
18466 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
18467
18468         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
18469         unload.
18470
18471 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
18472
18473         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
18474         args is not set. Fixes #78926.
18475
18476 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
18477
18478         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
18479
18480         * image.c (load_class_names): Move this to class.c, and rename it to 
18481         'mono_image_init_name_cache'.
18482         (load_modules): Fix a warning.
18483
18484         * class.c icall.c image.c: Initialize image->name_cache lazily.
18485
18486         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
18487         on its name using information in the AOT file.
18488
18489         * class.c (mono_class_from_name): Use the new hook function.
18490
18491 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
18492
18493         * reflection.c (mono_param_get_objects): Handle enum default parameter values
18494         correctly.
18495
18496         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
18497         Fixes #79289.
18498         
18499 2006-09-06  Martin Baulig  <martin@ximian.com>
18500
18501         * icall.c (mono_lookup_internal_call): Small fix.
18502
18503 2006-09-05  Raja R Harinath  <rharinath@novell.com>
18504
18505         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
18506         double g_free.
18507
18508 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
18509
18510         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
18511         when --debug is specified.
18512
18513 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
18514
18515         * class.c (setup_generic_array_ifaces): Fix a warning.
18516
18517 2006-09-04  Miguel de Icaza  <miguel@novell.com>
18518
18519         * Temporarily remove the patch to assemly.c that checks the
18520         assembly versions as it breaks our gacutil.
18521
18522 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
18523
18524         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
18525
18526         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
18527         a net 1.0 runtime.
18528
18529         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
18530         created using the default ctor. Fixes #79152.
18531         (mono_string_builder_to_utf16): Ditto.
18532
18533 2006-09-01  Martin Baulig  <martin@ximian.com>
18534
18535         Fix handling of the generic array interfaces.
18536
18537         * class-internals.h
18538         (MonoDefaults): Removed `generic_array_class' and added
18539         `generic_ilist' class.
18540
18541         * class.c
18542         (mono_bounded_array_class_get): Add the new generic array interfaces.
18543         (setup_generic_array_ifaces): New static method; create vtable
18544         entries for each method in the generic array interfaces.
18545
18546         * metadata.c
18547         (select_container): Allow "parent-less" generic methods.
18548
18549         * marshal.c
18550         (mono_marshal_get_generic_array_helper): New public method.
18551
18552         * icall.c
18553         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
18554         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
18555         moved the interncall into System.Array.
18556
18557 2006-09-01  Raja R Harinath  <rharinath@novell.com>
18558
18559         A few more cases of avoiding work on types with ->byref set.
18560         Has the real fix for #79238
18561         * icall.c (is_generic_parameter): New helper.
18562         (ves_icall_Type_GetGenericParameterPosition): Use it.
18563         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
18564         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
18565         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
18566         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
18567         reference types.
18568         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
18569         reference types.
18570         (ves_icall_Type_get_IsGenericInstance): Likewise.
18571         (ves_icall_Type_get_IsGenericType): Likewise.
18572
18573 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
18574
18575         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
18576         class if possible.
18577
18578         * mempool.h (mono_mempool_get_allocated): New helper function.
18579
18580         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
18581         change.
18582
18583         * mempool.c: Fix warnings and the calculation of stats.
18584
18585         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
18586
18587         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
18588
18589         * loader.c (mono_get_method_from_token): Update method_count stat.
18590
18591         * class-internals.h (MonoStats): Add some stats.
18592
18593 2006-08-31 Robert Jordan  <robertj@gmx.net>
18594
18595         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
18596         with managed variants.
18597         All code is contributed under the MIT/X11 license.
18598         
18599 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
18600
18601         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
18602         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
18603
18604         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
18605
18606         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
18607         with cycles in classes.
18608
18609         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
18610
18611         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
18612         missing a [MarshalAs] directive. Fixes #79203.
18613
18614         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
18615         klass->marshal_info. Fixes #79217.
18616
18617 2006-08-30  Martin Baulig  <martin@ximian.com>
18618
18619         Committing a patch from Joachim Ante <joe@otee.dk>:
18620         Add support for binary data symbol stores.
18621
18622         * debug-mono-symfile.c
18623         (mono_debug_open_mono_symbol_file): Renamed into
18624         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
18625         arguments.
18626
18627         * mono-debug.c
18628         (mono_debug_open_image): Added `raw_contents' and `size' args.
18629         (mono_debug_init_2_memory): New public function.
18630
18631 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
18632
18633         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
18634
18635 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18636
18637         * appdomain.c: implement support for ShadowCopyFiles.
18638
18639 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
18640
18641         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
18642         when value is NULL (and should remove CID #51).
18643
18644 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18645
18646         * image.c: moved 2 functions to ../utils.
18647
18648 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
18649
18650         * gc.c: cope with the target object of a GC handle being NULL
18651         (bug #78877).
18652
18653 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
18654
18655         * class.c: recursively check parent's explicit implementations
18656         of interface methods (fixes bug #79125).
18657
18658 2006-08-19  Miguel de Icaza  <miguel@novell.com>
18659
18660         * filewatcher.c: Avoid warnings when building, do not redefine
18661         constants that are defined.
18662
18663         Remove warnings.
18664
18665 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18666
18667         * image.c: don't fail when the link points to an absolute path.
18668
18669 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
18670
18671         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
18672         Fix CID #3.
18673
18674 2006-08-17  Miguel de Icaza  <miguel@novell.com>
18675
18676         * image.c (full_path): A new method used to obtain the actual path
18677         of an assembly even in the presence of symbolic links.  
18678
18679         This is necessary for the case where we are running a binary that
18680         has been GACed, but we are using the "published" path name
18681         ($prefix/mono/1.0/blah.exe) which happens to point to the real
18682         file in the GAC.
18683
18684         This was the source of the failure for the `xsp' command with the
18685         recent AppDomain changes, as far as the runtime was concerned,
18686         there were two different assemblies: $prefix/mono/1.0/blah.exe and
18687         $prefix/mono/gac/blah/version/blah.exe.
18688
18689         (do_mono_image_open): use full path
18690
18691 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
18692
18693         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
18694
18695 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
18696
18697         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
18698         domain_id is supplied. Fix CID #241 and corlib's unit tests.
18699
18700 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
18701
18702         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
18703         small structures. Fixes #78990.
18704
18705 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
18706
18707         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
18708
18709         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
18710
18711 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18712
18713         * appdomain.c:
18714         * marshal.c: don't load all the assemblies from a domain into newly
18715         created ones. The new domains might have different rules and load
18716         assemblies from different locations. Fixes bug #76757.
18717
18718         Patch by Lluis. Conflicts resolved by Brian Crowell.
18719
18720 2006-08-16  Alp Toker  <alp@atoker.com>
18721
18722         * socket-io.c: First half of the fix for #79084.
18723         Set sa_size to the length of the content, not that of the struct.
18724         Don't add NULL suffix to the content, this should be done in
18725         managed code if needed.
18726
18727 2006-08-14  Raja R Harinath  <rharinath@novell.com>
18728
18729         Fix part of #79012
18730         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
18731         mono_metadata_parse_type returns NULL.
18732
18733 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
18734
18735         * normalization-tables.h : new file for string normalization data.
18736         * locales.c, locales.h, icall.c :
18737           added load_normalization_resource() for string normalization,
18738           and icall as well.
18739         * Makefile.am : added normalization-tables.h to the sources.
18740
18741 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
18742
18743         * marshal.c: Add more helper functions to reduce code duplication and use them
18744         everywhere.
18745
18746 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
18747
18748         * marshal.c: Fix non-x86 stdcall warnings.
18749         
18750         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
18751         them everywhere.
18752
18753 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
18754
18755         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
18756         type check on multi-dimensional arrays. Fixes #79000.
18757
18758 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
18759
18760         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
18761         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
18762         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
18763         * class-internals.h: add is_com_object to class structure.
18764         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
18765         null checks to COM object marshalling. Fix .ctor call on RCW.
18766         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
18767         
18768         All code is contributed under the MIT/X11 license.
18769
18770 2006-08-09  Dick Porter  <dick@ximian.com>
18771
18772         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
18773         racing mono_monitor_allocator_lock() somewhere, so don't delete
18774         the critical section for now.  Found by running and exiting
18775         monodevelop.
18776
18777 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
18778
18779         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
18780         (ves_icall_System_ComObject_FindInterface): Ditto.
18781         (ves_icall_System_ComObject_CacheInterface): Ditto.
18782
18783         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
18784         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
18785
18786 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18787
18788         * threadpool.c: treat pipes from process asynchronous reads as sockets
18789         when reading from them, so we get select/poll or epoll to wait for
18790         data.
18791
18792 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
18793
18794         * loader.c: Fix a typo (CID #233) in the null check.
18795
18796 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
18797
18798         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
18799         Hopefully fixes #78949.
18800         
18801         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
18802         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
18803         bytes. Fixes #78972.
18804
18805 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18806
18807         * filewatcher.c: we need to set errno here.
18808
18809 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18810
18811         * filewatcher.c: let Win32Exception get the error value.
18812
18813 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18814
18815         * filewatcher.c: translate errno into win32 errors for Win32Exception
18816         to know what happened.
18817
18818 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
18819
18820         * threadpool.c: Fix more warnings.
18821
18822         * assembly.c (search_loaded): Fix warnings.
18823
18824         * threadpool.c (mono_thread_pool_finish): Fix warnings.
18825         (mono_async_invoke): Ditto.
18826
18827 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
18828
18829         * object.c (mono_remote_class_vtable): Need to create proxy vtable
18830         entries for __ComObject type in addition to ComImport types.
18831         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
18832         about hash table.
18833         
18834         All code is contributed under the MIT/X11 license.
18835
18836 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
18837
18838         * image.c: avoid tentative loading of modulerefs that contain
18839         no metadata (P/Invoke library names).
18840
18841 2006-07-28  Dick Porter  <dick@ximian.com>
18842
18843         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
18844         mono_loader_lock() somewhere, so don't delete the critical section
18845         for now.  Found by running and exiting monodevelop.
18846
18847 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18848
18849         * filewatcher.c: define the inotify syscalls when we're building on
18850         linux and have sys/syscall.h. The build system might not have support
18851         for inotify but the target system might have it.
18852
18853 2006-07-26  Miguel de Icaza  <miguel@novell.com>
18854
18855         * domain.c: Documentation updates.
18856
18857         * loader.c (mono_free_method): Do not release the method
18858         information if we are being profiled, as profilers will use this
18859         information at shut down to present some data to the user.
18860
18861         This is needed so that the profiler does not crash, as the
18862         profiler tends to keep MonoMethods around, and they might become
18863         invalid if we free these.
18864
18865         (mono_get_method_constrained): Return the original CIL stream
18866         method as well, so verification can be performed against it.
18867
18868 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18869
18870         * filewatcher.[ch]: support for inotify file system watcher.
18871         * icall.c: add new internal calls for the inotify file system watcher.
18872
18873 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18874
18875         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
18876         #78888.
18877
18878 2006-07-20  Dick Porter  <dick@ximian.com>
18879
18880         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
18881         warning.
18882
18883 2006-07-20  Dick Porter  <dick@ximian.com>
18884
18885         * threads.c (start_wrapper): Do the thread cleanup while we still
18886         hold a reference to its object.  Fixes bug 78123.
18887
18888 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
18889
18890         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
18891         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
18892           "managed-to-managed".
18893         * icall.c: Redirect string constructors that take sbyte* to
18894           ves_icall_System_String_ctor_RedirectToCreateString.
18895         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
18896           to CreateString () methods with matching signature.
18897         * reflection.c: Use original security informations for
18898           MONO_WRAPPER_MANAGED_TO_MANAGED.
18899         * security-manager.c: Use original security informations for
18900           MONO_WRAPPER_MANAGED_TO_MANAGED.
18901         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
18902           that is a placeholder and only its address should be used.
18903         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
18904           that is a placeholder and only its address should be used.
18905
18906 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
18907
18908         Begin implementing COM Interop.
18909         * appdomain.c: Increment corlib version.
18910         * class.c: Set ComImport classes' parent to __ComObject.
18911         * loader.c: Mark cominterop methods as such.
18912         * domain.c: Add __ComObject class to MonoDefaults structure.
18913         * image.c: Add 2 hashtables to the image for COM Interop related methods
18914         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
18915         using the mempool allocator
18916         
18917         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
18918         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
18919         declaration for mono_metadata_type_dup_mp.
18920         
18921         * debug-helpers.c: Added strings for two additional wrapper types
18922         * object.c: Create proxy objects for ComImport classes
18923         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
18924         and added __ComObject class to MonoDefaults structure.
18925         
18926         * object-internals.h: Finish MonoRealProxy definition, and add definition of
18927         MonoComInteropProxy and MonoComObject.
18928         
18929         * marshal.c: Added support for COM Interop
18930         (signature_cominterop): Converts managed signature to corresponding
18931         unmanaged COM signature.
18932         (cominterop_get_function_pointer): gets unmanaged function pointer via
18933         COM object vtable
18934         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
18935         (cominterop_get_method_interface): returns interface type that method is defined on
18936         (mono_mb_emit_cominterop_call): emits native call to function pointer
18937         gotten from vtable
18938         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
18939         that matches signature of unmanaged function.
18940         (cominterop_get_native_wrapper): wrapper around adjusted method call.
18941         (cominterop_get_invoke): forwards call from proxy to __ComObject
18942         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
18943         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
18944         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
18945         
18946         * marshal.h: Added Marshal icall declarations.
18947         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
18948         so we can access them in finalizer
18949         
18950 2006-07-14  Dick Porter  <dick@ximian.com>
18951
18952         * object.c (mono_type_initialization_cleanup): Fix a race
18953         condition by temporarily commenting out the critical section
18954         deletion.
18955
18956 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
18957
18958         * reflection.c (create_custom_attr): Fix some warnings.
18959         (create_custom_attr_data): Ditto.
18960         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
18961         types. Fixes #78855.
18962
18963 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
18964
18965         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
18966
18967         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
18968
18969 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
18970
18971         * reflection.c (resolve_object): Add support for DynamicMethod.
18972
18973         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
18974         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
18975
18976 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
18977
18978         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
18979         don't leak GPtrArray's pdata has we have no use (nor free) for it.
18980
18981 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
18982
18983         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
18984         Fixes #77888.
18985
18986 2006-06-30  Raja R Harinath  <rharinath@novell.com>
18987
18988         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
18989         slightly: remove a shadow local variable.
18990
18991 2006-06-29  Raja R Harinath  <rharinath@novell.com>
18992
18993         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
18994         definition that introduces the virtual function slot.
18995         Also fix Coverity #105.
18996
18997 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
18998
18999         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
19000         for dynamic assemblies. Fixes #78724.
19001
19002 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
19003
19004         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
19005         Fixes #78722.
19006
19007 2006-06-21  Martin Baulig  <martin@ximian.com>
19008
19009         * reflection.c
19010         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
19011         fixes #76484.
19012
19013 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
19014
19015         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
19016
19017 2006-06-20  Raja R Harinath  <rharinath@novell.com>
19018
19019         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
19020         nor TYPEREFs.
19021         * class.c (mono_class_create_from_typespec): Add 'context' argument.
19022         Inflate result if necessary.
19023         (mono_class_get_full): Remove old version.  Rename from
19024         'mono_class_get' and add 'context' argument.  Pass it to
19025         ..._create_from_typespec.
19026         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
19027         (mono_ldtoken): Revert change below.
19028
19029 2006-06-20  Martin Baulig  <martin@ximian.com>
19030
19031         * class.c (mono_ldtoken): Don't pass the generic context to
19032         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
19033
19034 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
19035
19036         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
19037         and later freeing it. Fixes #78638.
19038
19039 2006-06-15  Miguel de Icaza  <miguel@novell.com>
19040
19041         * icall.c (mono_class_get_throw): Revert over-zealous error
19042         throwing, the caller for mono_class_get_throw will cope with
19043         errors when classes are not properly initialized already.
19044
19045         The code still copes with loader exceptions though.
19046
19047         Fixes the regression in reftype1 and reftype3 from the CAS tests.
19048         
19049 2006-06-14  Miguel de Icaza  <miguel@novell.com>
19050
19051         Fixes the `make run1' version of RuntimeAbort (to be commited,
19052         source is in Bugzilla).
19053         
19054         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
19055         FALSE on class loading failure instead of returning true.
19056
19057         * class.c (mono_class_create_from_typedef): It is possible for
19058         mono_metadata_interfaces_from_typedef_full to fail if a class is
19059         not found, cope with this.
19060         
19061
19062 2006-06-14  Dick Porter  <dick@ximian.com>
19063
19064         * socket-io.c: 
19065         * process.c: Fix a bunch of signed/unsigned warnings from gcc
19066         4.1.1
19067
19068 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
19069
19070         * culture-info-table.h : oops, forgot to make it nsync with r61548.
19071
19072 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19073
19074         * icall.c: Another fix for building mono in Visual Studio.
19075
19076 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19077
19078         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
19079         
19080 2006-06-09  Martin Baulig  <martin@ximian.com>
19081
19082         * debug-mono-symfile.c: Put this back and really fix it this
19083         time. Sorry for all the trouble.
19084
19085 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
19086
19087         * icall.c (mono_class_get_throw): Fix a warning.
19088         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
19089         ReflectionTypeLoadException if needed. Fixes #78606.
19090
19091         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
19092         (mono_class_init): Ditto.
19093
19094         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
19095         ref_only exceptions.
19096         (mono_loader_clear_error): Make this work even if there is no error.
19097
19098 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
19099
19100         * object-internals.h marshal.c marshal.h icall.c: Implement method 
19101         Marshal.GetComSlotForMethodInfo using internal call.
19102
19103 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
19104
19105         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
19106         a function for signalling it.
19107
19108         * class.c (mono_class_from_typeref): Use the new kind of loader error when
19109         a referenced assembly is not found.
19110
19111         * loader.c (mono_loader_error_prepare_exception): Add support for 
19112         LOADER_ERROR_ASSEMBLY. Fix formatting.
19113
19114 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
19115
19116         * domain.c appdomain.c class-internals.h marshal.c: Add support 
19117         for VARIANT marshalling on windows and increment corlib version
19118         since Variant struct was added.
19119
19120 2006-06-03  Miguel de Icaza  <miguel@novell.com>
19121
19122         * debug-mono-symfile.c: Revert Martin's previous patch which broke
19123         stack trace line information:
19124
19125         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
19126         (Martin) when looking up B which is between A and C, return A not C.
19127
19128         Bug is #78573.
19129
19130         Thanks to Alexander Olk for tracking this down.
19131
19132 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
19133
19134         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
19135         
19136         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
19137         avoid clobbering its value.
19138         (mono_string_to_lpstr): Fix a warning on windows.
19139
19140 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
19141
19142         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
19143
19144         * reflection.c loader.c: Removed references to 'dummy' flag.
19145
19146         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
19147
19148         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
19149         it gets GC tracking.
19150
19151         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
19152         GC tracking.
19153         
19154         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
19155
19156         * marshal.c threadpool.c: Update callers of mono_async_result_new.
19157
19158         * appdomain.c: Bump corlib version.
19159
19160 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
19161
19162         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
19163         CEE_STIND_REF when working with object references.
19164
19165 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
19166
19167         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
19168         Fixes #78539.
19169
19170 2006-05-30  Miguel de Icaza  <miguel@novell.com>
19171
19172         * loader.c (method_from_memberref): Fix argument value for
19173         mono_loader_set_error_method_load (I was passing the MonoClass
19174         instead of the class name char *).
19175
19176 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
19177
19178         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
19179         CEE_STIND_REF when working with object references.
19180
19181 2006-05-30  Martin Baulig  <martin@ximian.com>
19182
19183         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
19184         mono_method_full_name() change and replace the ':' with a '.'
19185         here.
19186
19187 2006-05-30  Martin Baulig  <martin@ximian.com>
19188
19189         * debug-mono-symfile.c
19190         (mono_debug_symfile_lookup_location): Fix the algorithm:
19191         when looking up B which is between A and C, return A not C.
19192
19193 2006-05-29  Martin Baulig  <martin@ximian.com>
19194
19195         * mono-debug.h
19196         (MonoDebugMethodInfo): Make the typedef public.
19197         (MonoDebugSourceLocation): New public struct.
19198
19199         * mono-debug.c
19200         (mono_debug_source_location_from_address): Removed.
19201         (mono_debug_source_location_from_il_offset): Removed.
19202         (mono_debug_il_offset_from_address): Removed.
19203         (mono_debug_address_from_il_offset): Removed.
19204         (mono_debug_lookup_method): New public function.
19205         (mono_debug_lookup_source_location): New public function; replaces
19206         the old mono_debug_source_location_from_*() functions; see the
19207         inline documentation.
19208         (mono_debug_free_source_location): New public function.
19209         (mono_debug_print_stack_frame): New public function; see the
19210         inline documentation.
19211
19212         * debug-mono-symfile.c
19213         (mono_debug_find_source_location): Renamed into
19214         mono_debug_symfile_lookup_location(); only take a
19215         `MonoDebugMethodInfo *' and an `offset' argument; added inline
19216         documentation.
19217         (mono_debug_find_method): Renamed into
19218         mono_debug_symfile_lookup_method().
19219
19220 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
19221
19222         * assembly.c (mono_assembly_open_full): Dont overwrite the status
19223         returned by mono_image_open_full ().
19224
19225         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
19226         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
19227         #78517.
19228
19229         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
19230         #78518.
19231
19232 2006-05-27  Miguel de Icaza  <miguel@novell.com>
19233
19234         * class.c (mono_class_from_typeref): handle missing images
19235         earlier, deals with bug #78418.   Refactor code; 
19236
19237         Fix a warning introduced in my previous commit (some stale code
19238         from before I revisited my patch).
19239
19240         * class.c (mono_class_create_from_typedef): On failure, remove the
19241         class from the MonoImage->class_cache as the class is not
19242         initialized;   Fixes the leak pointed out by Paolo.
19243
19244 2006-05-25  Dick Porter  <dick@ximian.com>
19245
19246         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
19247         DeleteCriticalSections until I figure out which one may still be
19248         sometimes locked when mono_thread_cleanup is called.
19249
19250 2006-05-24  Dick Porter  <dick@ximian.com>
19251
19252         * threads.c (mono_thread_cleanup): Move the threading cleanup out
19253         of mono_thread_manage and back into its own function, so it can be
19254         called after the finalizer thread has finished.
19255
19256         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
19257
19258 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
19259
19260         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
19261         Fixes #78495.
19262
19263         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
19264         with non-blittable elements.
19265         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
19266
19267 2006-05-24  Martin Baulig  <martin@ximian.com>
19268
19269         * mono-debug-debugger.h (MonoDebuggerEvent): Added
19270         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
19271
19272         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
19273         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
19274         `mono_debugger_event_handler' to NULL.
19275
19276 2006-05-24  Martin Baulig  <martin@ximian.com>
19277
19278         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
19279
19280 2006-05-24  Martin Baulig  <martin@ximian.com>
19281
19282         * mono-debug-debugger.h
19283         (mono_debugger_create_notification_function): Added
19284         `MonoCodeManager *' argument.
19285
19286 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
19287
19288         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
19289
19290 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
19291
19292         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
19293         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
19294         implementation.
19295
19296 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
19297
19298         * icall.c: precise GC support: objects can't be stored in unmanaged
19299         memory anymore, even if they are kept alive by other references: since
19300         they can move the GC needs to be able to always find them.
19301
19302 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
19303
19304         * object.c: precise GC support for static fields. Support
19305         for moving GCs: write barriers and pinned allocation for interned
19306         strings.
19307
19308 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
19309
19310         * domain.c, domain-internals.h: precise GC support for the MonoDomain
19311         structure.
19312
19313 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
19314
19315         * class.c, gc.c: sgen and precise GC updates.
19316
19317 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
19318
19319         * marshal.h, marshal.c: added write barrier wrapper and precise type
19320         fixes.
19321
19322 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
19323
19324         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
19325         support.
19326
19327 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
19328
19329         * reflection.c: precise and sgen GC updates.
19330
19331 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
19332
19333         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
19334
19335 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
19336
19337         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
19338
19339 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
19340
19341         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
19342         MONO_TYPE_OBJECT. Fixes #78462.
19343
19344 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
19345
19346         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
19347         and blittable types.
19348
19349 2006-05-17  Miguel de Icaza  <miguel@novell.com>
19350
19351         * class.c (mono_class_get_exception_for_failure): Implement parts
19352         of a TODO: if the loader error is set (instead of the class
19353         error), we return a Loader exception that can be properly thrown
19354         elsewhere.
19355
19356         This was exposed by some Winforms 2.0 code that I tried to run
19357         (Atsushi pointed me to it).
19358
19359 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
19360
19361         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
19362         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
19363         
19364         * marshal.c (emit_marshal_vtype): Add limited support for 
19365         UnmanagedType.LPStruct. Fixes #78427.
19366
19367         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
19368         Applied a patch from kangaroo to fix #77523.
19369
19370 2006-05-17  Martin Baulig  <martin@ximian.com>
19371
19372         * threads.c
19373         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
19374         (debugger_thread_created): Removed.
19375         (debugger_thread_exited): Removed.
19376
19377 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
19378
19379         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19380
19381         * object-internals.h (MonoReflectionResource): Sync with managed version.
19382
19383 2006-05-12  Wade Berrier <wberrier@novell.com>
19384
19385         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
19386
19387 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
19388
19389         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
19390         functions try to allocate from the image mempool.
19391
19392 2006-05-12  Dick Porter  <dick@ximian.com>
19393
19394         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
19395
19396 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
19397
19398         * object.c: The FieldGetter and FieldSetter methods require the full
19399         name of the class, not only the name. Fixes bug #78277.
19400
19401 2006-05-11  Miguel de Icaza  <miguel@novell.com>
19402
19403         * loader.c (method_from_memberref): Do not pass the NULL klass to
19404         mono_loader_set_error_() methods.  Pass the non-NULL value
19405         (class). 
19406
19407 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
19408
19409         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
19410         (mono_assembly_close): Null out assembly->image->references after freeing it.
19411
19412         * image.c (mono_image_close): Free image->references.
19413         
19414         * reflection.c (mono_image_basic_init): Fix a small memory leak.
19415
19416 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
19417
19418         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
19419         before checking if it's NULL (g_assert).
19420
19421 2006-05-10  Martin Baulig  <martin@ximian.com>
19422
19423         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
19424         I thought I already killed that two months ago, but now it somehow reappeared.
19425
19426 2006-05-10  Martin Baulig  <martin@ximian.com>
19427
19428         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
19429
19430 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
19431
19432         * reflection.c: Allocate memory for dynamically created methods in the image
19433         mempools.
19434
19435 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
19436
19437         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
19438         don't use the ad pointer before checking if it's NULL (g_assert).
19439
19440 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
19441
19442         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
19443         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
19444
19445         * marshal.c: Allocate all signatures from mempools.
19446
19447         * marshal.c: Allocate some more signatures from mempools.
19448
19449 2006-05-09  Miguel de Icaza  <miguel@novell.com>
19450
19451         * object.c (mono_load_remote_field): The code used to provide a
19452         temporary variable for returning results if the user did not
19453         provide a result pointer.  But our temporary variable was allocted
19454         on the satck.
19455
19456         Fix calling code to always pass a result area.   Coverity ID 103.
19457
19458 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
19459
19460         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
19461         value, not the old. Fixes #78312.
19462         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
19463
19464         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
19465         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
19466         per-image cache.
19467
19468         * assembly.c (mono_assembly_close): Free image->references.
19469
19470         * assembly.c (mono_assembly_names_equal): Fix a warning.
19471         (mono_assemblies_cleanup): Cleanup more global data.
19472
19473         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
19474
19475         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
19476         ptr_cache and image->modules.
19477
19478         * image.c (mono_image_init): Allocate array_cache lazily.
19479         
19480 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19481
19482         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
19483         behavior was changed recently and has bad side effects.
19484
19485 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
19486
19487         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
19488         
19489         * assembly.c (mono_assembly_close): Remove a debug printf.
19490
19491         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
19492
19493         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
19494         to also allow for temporary references between mono_image_open ()/close ().
19495
19496         * domain.c (get_runtimes_from_exe): Add a FIXME.        
19497
19498 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
19499
19500         * marshal.c: Fix support for dynamic methods.
19501
19502         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
19503
19504         * marshal.c (mono_marshal_cleanup): New cleanup function.
19505
19506         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
19507         image mempools.
19508
19509         * class.c (mono_class_init): Fix leaking class->nested_classes.
19510
19511         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
19512
19513         * image.c (mono_image_init): Initialize the new cashes.
19514
19515         * image.c (mono_image_close): Destroy the new cashes.
19516
19517         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
19518
19519         * mempool.c (mono_mempool_strdup): New helper function.
19520
19521         * class-internals.h: Add prototype for mono_loader_unlock ().
19522
19523         * domain.c (mono_jit_info_table_find): Fix a warning.
19524         (mono_debugger_check_runtime_version): Ditto.
19525
19526         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
19527         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
19528         functions to these modules.
19529
19530         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
19531         metadata modules.
19532         
19533         * marshal.c (mono_free_bstr): Fix a warning.
19534
19535         * assembly.c (mono_assembly_open_full): Fix another small leak.
19536
19537         * object.c: Fix some unload leaks in the remoting code.
19538
19539         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
19540         function.
19541
19542         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
19543
19544         * reflection.c: Fix some unload leaks in dynamic assemblies.
19545
19546 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
19547
19548         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
19549         * marshal.h: Add BSTR support on Win32
19550         * icall.c: Add BSTR icalls
19551         * metadata.h: Add BSTR enums
19552
19553 2006-04-28  Miguel de Icaza  <miguel@novell.com>
19554
19555         Work to catch the crash from #76795 and turn it into an
19556         exception.   As I stubbed out pieces of the VisualBasic support,
19557         I found a number of places where the code was failing and I added
19558         checks to those places. 
19559         
19560         * metadata.c (do_mono_metadata_parse_generic_class): Make this
19561         function return a status code.  If we fail to parse the signature
19562         from mono_metadata_parse_generic_inst, return FALSE.
19563
19564         * loader.c (mono_get_method_from_token): If we fail to load the
19565         method (mono_class_get) return NULL.   
19566
19567         * (method_from_memberref): Return NULL if we are unable to parse
19568         the method signature
19569
19570         (mono_loader_error_prepare_exception): Since we now use the
19571         loader_error flag internally to stop processing, and obtaining
19572         exceptions that might be thrown will walk this code path the
19573         proper way of going from a MonoLoaderError into a
19574         MonoException was convoluted.   This new routine encapsulates the
19575         process of turning the error into an exception and *clearing* the
19576         error afterwards.
19577         
19578 2006-04-27  Miguel de Icaza  <miguel@novell.com>
19579
19580         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
19581         with missing assemblies), and to cope with:
19582
19583                 * Missing fieldref from a non-existing assembly.
19584                 * Missing methodref from a non-existing assembly.
19585
19586         The first batch of work to address *some* of the issues from 76661.
19587         
19588         * object.c (mono_class_create_runtime_vtable): If we fail to
19589         initialize the class raise the exception here. 
19590
19591         * metadata.c (mono_class_get_overrides_full): If any methods fail
19592         to load return the failure to the caller.
19593
19594         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
19595         flagging assemblies that failed to load.   
19596
19597         Do not crash if we are unable to load the assembly.
19598
19599         (mono_assembly_close): Do nothing with REFERENCE_MISSING
19600         assemblies. 
19601
19602         * loader.c (mono_loader_set_error_type_load): Change the
19603         convention to always pass unallocated strings, so we make our own
19604         copies (I know our own code had duplicated strings before, but
19605         this keeps the normal conventions).
19606         (method_from_memberref): Call mono_loader_set_error_method_load
19607         for all possible failures of loading the class. 
19608         Remove assert, turn into a loader error.
19609
19610         (mono_loader_error_to_exception): Move this routine from mini
19611         (mini_loader_error_to_exception) there was no need to have that in
19612         mini. 
19613
19614         * class.c (mono_class_from_typeref): If we were not able to load
19615         the assembly with mono_assembly_load_reference, call the
19616         mono_loader_set_error_type_load to register the problem.
19617
19618         (mono_class_setup_fields): If we fail to load the type from
19619         mono_metadata_parse_type_full, call mono_class_set_failure and
19620         break from the loop.
19621
19622         If class->exception_type is set, we do not layout the fields as
19623         that might crash the runtime, and instead return (from breaking
19624         from the previous loop).
19625
19626         (mono_class_setup_vtable): This now returns a boolean indicating
19627         whether the table was properly setup.   The decision is driven by
19628         mono_class_get_overrides_full which might run into non-existing
19629         methods. 
19630         
19631         (mono_class_init): Returns TRUE on success or FALSE if there was a
19632         problem in loading the type (incorrect assemblies, missing
19633         assemblies, methods, etc).
19634
19635         When we call mono_class_setup_fields we also check for a potential
19636         error inside this call (either a class exception or a general
19637         loader exception).
19638
19639         (mono_class_create_from_typedef): If the parent fails to load
19640         (calling mono_class_get_full) return NULL.
19641         
19642         ** Important **
19643
19644         calls to mono_metadata_parse_type_full should be checked
19645         everywhere and set the mono_class_set_failure
19646         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
19647
19648         The current patch checks the places where my manually constructed
19649         tests show the errors are showing up, but we should do it
19650         everywhere. 
19651
19652         ** Important2 **
19653
19654         mono_class_init return values should be tested everywhere, like
19655         the previous case this is something that we should audit
19656         everywhere and not only on the cases exposed by the tests I
19657         created. 
19658
19659 2006-04-26  Miguel de Icaza  <miguel@novell.com>
19660
19661         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
19662         boolean parameter and instead pass the information on `options'
19663         parameter (FileOptions).
19664
19665         * icall.c: Register the new signature for MonoIO.Open.
19666
19667         * debug-helpers.c (dis_one): Trying to understand how coverity
19668         works.  Fix Run 5, item 78.
19669
19670 2006-04-26  Dick Porter  <dick@ximian.com>
19671
19672         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
19673         dereference.
19674
19675 2006-04-25  Martin Baulig  <martin@ximian.com>
19676
19677         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
19678
19679         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
19680         debugger_thread_created().
19681         (debugger_gc_push_all_stacks): Don't handle the main thread in any
19682         special way.
19683         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
19684         (mono_debugger_finalize_threads): New function; undo the effects
19685         of mono_debugger_init_threads().
19686         (mono_debugger_create_all_threads): Removed.
19687
19688 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
19689
19690         * image.c (mono_image_close): Tidy up trace messages.
19691
19692         * assembly.c (mono_assembly_close): Ditto.
19693
19694         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
19695         no longer references an already freed assembly. Fixes #78168.
19696
19697 2006-04-21  Dick Porter  <dick@ximian.com>
19698
19699         * threads.c (mono_thread_detach): Fix reference counting when
19700         detaching threads.
19701
19702 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
19703
19704         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
19705         #78155.
19706
19707 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
19708
19709         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
19710         (mono_type_to_stind): Ditto.
19711
19712         * marshal.c: Use the new helper functions to simplify code.
19713
19714         * image.c (mono_image_close): Add some code for help debug assembly unloading
19715         problems.
19716
19717         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
19718         image mempool.
19719
19720         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
19721         assembly was already loaded in another appdomain. Fixes #78083.
19722
19723 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
19724
19725         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
19726         referenced assemblies.
19727         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
19728
19729         * domain.c (mono_domain_free): Add a trace message.
19730
19731         * appdomain.c (add_assemblies_to_domain): Ditto.        
19732
19733         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
19734         field.  
19735
19736 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
19737
19738         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
19739
19740 2006-04-12  Martin Baulig  <martin@ximian.com>
19741
19742         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
19743         `USE_INCLUDED_LIBGC'.   
19744
19745 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
19746
19747         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
19748         the patch contains ../ and a small directory name later. Hopefully fixes
19749         #78035.
19750
19751 2006-04-10  Martin Baulig  <martin@ximian.com>
19752
19753         Clean up the debugger's thread-handling code.
19754
19755         The debugger's thread-handling code has been moved from
19756         ../mini/debug-debugger.c to threads.c.  We now iterate directly
19757         over the `threads' hash, keep track of exiting threads and also
19758         use proper locking.
19759
19760         We can now debug XSP and XSP based applications with the debugger.
19761
19762         * object-internals.h (MonoThread): Added `gpointer end_stack'.
19763
19764         * threads.h
19765         (MonoThreadCallbacks): Removed; this was only used by the debugger.
19766         (mono_install_thread_callbacks): Likewise.      
19767
19768         * threads.c (mono_thread_callbacks): Removed.
19769         (debugger_thread_created, debugger_thread_exited): New static functions.
19770         (start_wrapper): Call debugger_thread_created().
19771         (thread_cleanup): Call debugger_thread_exited().
19772         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
19773         (mono_debugger_init_threads): New public function.
19774         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
19775         iterate directly over the `threads' hash and also use proper locking.
19776
19777         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
19778
19779         * mono-debug-debugger.h
19780         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
19781
19782 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
19783
19784         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
19785         argument type=array. Fixes #78057.
19786
19787 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
19788
19789         * culture-info-table.h : regenerated. Fixed bug #69652.
19790
19791 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
19792
19793         * loader.c metadata.c: Reapply a variant r59116.
19794         
19795         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
19796
19797         * class.c (mono_class_setup_interface_offsets): New internal function.
19798
19799         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
19800         interfaces too. Fixes #77398.
19801
19802         * reflection.c (encode_cattr_value): Add support for 
19803         parameter type=object, argument type=array.
19804         (load_cattr_value): Ditto. Fixes #77916.
19805
19806         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
19807         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
19808
19809         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
19810         a byval char array and CharSet is Ansi.
19811
19812         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
19813
19814 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
19815
19816         * metadata.c: Add some locking comments.
19817         
19818         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
19819         mempool.
19820         (mono_metadata_free_method_signature): Don't free the signature itself.
19821
19822         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
19823
19824         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
19825         reference the same MonoImage.
19826         (mono_assembly_load_from_full): Add an assert.
19827
19828 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
19829
19830         * image.c (mono_image_close): Don't put the image we are about to free into the
19831         loaded_images_guid_hash.
19832
19833         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
19834         to reduce code duplication.
19835
19836         * marshal.c: Register the native functions called by this module as icalls, to
19837         somewhat centralize the creation of MonoMethodSignature's.
19838
19839         * loader.c (mono_method_signature): Add a cache for method signatures.
19840
19841         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
19842         the parameter attributes of a method.
19843         (mono_metadata_parse_method_signature_full): Refactored the computation of
19844         parameter attributes into a separate function. Also avoid one allocation in
19845         most cases.
19846
19847         * assembly.c (mono_assembly_close): Ditto.
19848
19849         * image.c (mono_image_close): Log trace messages with INFO level.
19850
19851         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
19852
19853         * image.c reflection.c: Correct reference counting of image modules.
19854         
19855         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
19856         of this function from the image mempool.
19857         
19858         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
19859         to allow more cached types to be used.
19860
19861         * mono-debug.c (mono_debug_add_method): Appled patch from
19862         David S. Miller  <davem@sunset.davemloft.net>: Access 
19863         minfo->lexical_blocks[] entry elements using read32().
19864
19865 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
19866
19867         * loader.c (mono_free_method): No longer free the method header for non-dynamic
19868         methods as it is allocated from the mempool.
19869
19870         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
19871         image mempool.
19872
19873         * metadata-internals.h: Add comments describing the reference counting scheme
19874         used for MonoImage and MonoAssembly.
19875
19876         * image.c assembly.c reflection.c: Rework reference counting of images and 
19877         assemblies so they are freed when the runtime is shut down. Free some 
19878         additional memory structures when an image is unloaded.
19879         
19880 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
19881
19882         * class.c loader.c reflection.c: Allocate more data structures in
19883         the image mempool.
19884
19885 2006-03-31  Miguel de Icaza  <miguel@novell.com>
19886
19887         * icall.c
19888         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
19889         build on pre glib 2.4 systems.
19890
19891 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
19892
19893         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
19894
19895         * icall.c: Fix some warnings.
19896
19897 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
19898
19899         * culture-info-table.h : regenerated.
19900
19901 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
19902
19903         * threads.c, object-internals.h, verify.c: changed the culture caching
19904         code to use a normal MonoArray for storage so the GC can keep track of
19905         them easily. Fixed bits of the cache logic, too and simplified the
19906         code.
19907
19908 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
19909
19910         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
19911         thread for non-Boehm GCs.
19912
19913 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
19914
19915         * domain.c, object.c, domain-internals.h: reduce the amount of memory
19916         needed to keep track of the data for static fields.
19917
19918 2006-03-29  Raja R Harinath  <rharinath@novell.com>
19919
19920         Fix #75172
19921         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
19922         for interface classes.  Use 'num_methods' instead.
19923         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
19924         before using '->vtable_size' field.
19925
19926 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
19927
19928         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
19929         doesn't contain managed pointers, so use a normal hashtable.
19930
19931 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
19932
19933         * reflection.c, class-internals.h, domain.c: fixed handling of types
19934         used as values for objects in custom attributes (bug #77915):
19935
19936 2006-03-24  Martin Baulig  <martin@ximian.com>
19937
19938         * class.c (mono_class_setup_fields): Added support for generic
19939         instances; fixes #77580.
19940
19941 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19942
19943         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
19944
19945 2006-03-24  Dick Porter  <dick@ximian.com>
19946
19947         * file-io.c (get_file_attributes): More stat macro breakage.
19948         Fixes bug 77759.
19949
19950 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
19951
19952         * profiler.c: added the file=filename option in the default profiler
19953         to output the profile data to filename.
19954
19955 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
19956
19957         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
19958         bug #77877.
19959
19960 2006-03-22  Martin Baulig  <martin@ximian.com>
19961
19962         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
19963         allocated `MonoClassField *' in `fb->handle'.
19964
19965 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
19966
19967         * class.c, image.c, metadata-internals.h: implemented new mechanism to
19968         allocate interface ID to save memory and allow better ID reuse on
19969         appdomain unload. setup_generic_vtable () removal from Martin.
19970
19971 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
19972
19973         * object.h, appdomain.c, domain.c, exception.c, icall.c,
19974         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
19975         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
19976         write barriers for reference stores with managed objects accessed with
19977         C structures in the runtime and in embedding programs.
19978
19979 2006-03-20  Raja R Harinath  <rharinath@novell.com>
19980
19981         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
19982         'interface_id' and 'max_interface_id' fields of MonoClasses
19983         representing open generic types.
19984
19985 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
19986
19987         * object.h, object.c, icall.c: added functions to deal with
19988         storing valuetypes that contain references in managed objects.
19989         * reflection.c, string-icalls.c, threads.c, marshal.c: small
19990         fixes and comments around uses of mono_array_addr ().
19991
19992 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
19993
19994         * object.h, icall.c, monitor.c: object.GetHashCode ()
19995         implementation that supports the moving garbage collector.
19996
19997 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
19998
19999         * icall.c, threads-types.h, threads.c: implemented finalizer for
20000         LocalDataStoreSlot.
20001
20002 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
20003
20004         * metadata.c (mono_type_size): Add a fixme.
20005         (mono_type_stack_size): Ditto.
20006
20007         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
20008         'type_forwarders' field.
20009
20010         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
20011         attribute from net 2.0.
20012
20013         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
20014         from class.c.
20015
20016         * class.c (mono_class_setup_fields): Fix a warning.
20017         
20018         * class.c (mono_class_from_name): Add support for assemblyref entries
20019         in the EXPORTEDTYPE table.
20020
20021         * reflection.c: Add support for handling type forwarders under net 2.0.
20022
20023         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
20024         
20025 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
20026
20027         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
20028         overwriting entries in ModuleBuild->types, also clean up the code
20029         a little. Fixes #77774.
20030
20031 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
20032
20033         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
20034         load friend assembly info when present.
20035
20036 2006-03-14  Raja R Harinath  <rharinath@novell.com>
20037
20038         Fix crasher on gtest-158.cs.
20039         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
20040         the return value if the MonoClass we want is yet in an
20041         inconsistent state.
20042         * class.c (mono_class_create_from_typedef): Add an comment
20043         explaining an order dependency between mono_class_setup_parent and
20044         mono_class_setup_mono_type.
20045
20046 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
20047
20048         * class.c: documentation updates and events bug fix.
20049
20050 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
20051
20052         * class.c: some cleanup, locking fixes.
20053
20054 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
20055
20056         * class.c: fix the generics code to setup nested
20057         type info to the instantiated type (bug #77770).
20058
20059 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
20060
20061         * marshal.c: fixed a few type correctness issues.
20062
20063 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
20064
20065         * loader.c: the Set/Get/Addrtess array methods should be public.
20066
20067 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
20068
20069         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
20070         
20071         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
20072         info->wrapper.
20073
20074 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
20075
20076         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
20077
20078         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
20079
20080         * mempool.c (mono_mempool_alloc): Speed this up a bit.
20081         (mono_mempool_alloc0): Ditto.
20082
20083 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20084
20085         * socket-io.c:
20086         (create_object_from_sockaddr): it was allocating 4 extra bytes
20087         for the AF_UNIX data. Fixes bug #77747.
20088
20089 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
20090
20091         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
20092
20093 2006-03-09  Dick Porter  <dick@ximian.com>
20094
20095         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
20096         Fixes bug 76966 again.
20097
20098 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
20099
20100         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
20101         names from r57532
20102         * appdomain.c: Bumped corlib version to 48 (due to r57532)
20103
20104 2006-03-07  Martin Baulig  <martin@ximian.com>
20105
20106         * object.c
20107         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
20108
20109 2006-03-07  Martin Baulig  <martin@ximian.com>
20110
20111         * class.c
20112         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
20113         regression introduced in r56970; see gtest-252.cs.
20114
20115         * loader.c (mono_get_method_constrained): Correctly handle generic
20116         methods; see gtest-253.cs.
20117
20118 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
20119
20120         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
20121
20122 2006-03-04  Martin Baulig  <martin@ximian.com>
20123
20124         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
20125         compute the parent type at runtime, just like we're already doing
20126         it for interfaces.
20127
20128         * reflection.c
20129         (mono_reflection_bind_generic_parameters): Don't compute the
20130         parent type anymore.
20131
20132         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
20133
20134 2006-03-04  Martin Baulig  <martin@ximian.com>
20135
20136         * mono-debug-debugger.h
20137         (mono_debugger_create_notification_function): Allocate memory at
20138         runtime and return a pointer to it.
20139
20140 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
20141
20142         * assembly.c: Fix windows build.
20143         
20144         * assembly.c: Fix build.
20145
20146         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
20147
20148         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
20149         
20150 2006-03-03  Dick Porter  <dick@ximian.com>
20151
20152         * process.c
20153         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
20154         Check parameters before dereferencing them.  Fixes Aaron's part of
20155         bug 77393.
20156
20157 2006-03-03  Raja R Harinath  <rharinath@novell.com>
20158
20159         Fix performance regression.
20160         * loader.c (find_method_in_class): Add 'from_class' argument.
20161         Rename 'klass' argument to 'in_class'.  The signature is compared
20162         against the method in 'in_class', and the corresponding method is
20163         returned from 'from_class'.
20164         (find_method): Walk both 'in_class' and 'from_class' in parallel.
20165         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
20166         type definition and generic instantiation in parallel.
20167         (mono_get_method_constrained): Update to changes.
20168
20169 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
20170
20171         * threads.c: make sure the domain is correct, too when doing
20172         mono_thread_attach ().
20173
20174 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
20175
20176         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
20177         windows. Fixes #77683.
20178
20179 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
20180
20181         * object.h, *: introduced specific way to set elements of an array
20182         of references to be used as write barrier. Still need to audit the
20183         uses of mono_array_addr.
20184
20185 2006-03-01  Miguel de Icaza  <miguel@novell.com>
20186
20187         * object-internals.h: New field to cache the assmebly name, patch
20188         from Tambet Ingo (tambet@ximian.com)
20189
20190 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
20191
20192         * decimal.h, class-internals.h, metadata-internals.h,
20193         file-io.h: mark a few function declarations as internal, to
20194         reduce the number of PLT entries.
20195
20196 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20197
20198         * file-io.c: fix typo in warning message.
20199
20200 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
20201
20202         * loader.c: on unix, lookup the "*A" version of a function
20203         if charset is auto as a second option before failing.
20204
20205 2006-02-28  Raja R Harinath  <rharinath@novell.com>
20206
20207         * class.h (mono_class_inflate_generic_method): Revert to two
20208         argument version.
20209         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
20210         (mono_class_inflate_generic_method_full): Add.
20211         * class.c (mono_class_inflate_generic_method_full): Rename from
20212         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
20213         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
20214         * loader.c, reflection.c: Update to changes.
20215
20216 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
20217
20218         * icall.c: const fixes and small improvements.
20219
20220 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20221
20222         * threadpool.c: for asynchronous connect(), enable the same workaround
20223         for BSD 6 as for the Mac. Fixes bug #77637.
20224
20225 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
20226
20227         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
20228         formatted classes. Fixes #77524.
20229
20230 2006-02-24  Raja R Harinath  <rharinath@novell.com>
20231
20232         * class.c (inflate_generic_type): Add a couple more
20233         micro-optimizations.
20234         (inflate_generic_context): Don't use the 'gmethod' from
20235         'inflate_with'.
20236         (mono_class_inflate_generic_method): If the method has generic
20237         parameters, but the passed-in context doesn't have a 'gmethod',
20238         create one.  Use the possibly simplified generic instantiation
20239         from the declaring class instead of the one passed in.
20240
20241 2006-02-24  Raja R Harinath  <harinath@gmail.com>
20242
20243         Make generic method signature and method header handling lazy.
20244         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
20245         (inflate_generic_header): Likewise.
20246         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
20247         parameter to avoid inflating types.
20248         (mono_get_inflated_method): Empty out.
20249         * class.h (mono_class_inflate_generic_method): Update to changes.
20250         * loader.c (mono_get_method_from_token): Don't parse signature for
20251         generic methods, nor methods of generic classes.
20252         (mono_method_signature): Rename from 'mono_method_signature'.
20253         Inflate signature on demand.
20254         (mono_method_get_header): Inflate method header on demand.
20255         * reflection.c: Update to changes.
20256
20257 2006-02-23  Raja R Harinath  <rharinath@novell.com>
20258
20259         * metadata.c (mono_metadata_inflate_generic_inst): If the
20260         instantiation is closed, don't bother expanding it in the new
20261         context.
20262         * class.c (inflate_generic_class): If the generic instantiation
20263         doesn't change after inflation, return the argument itself.
20264         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
20265         Add bounds checks.
20266         (inflate_generic_context): If neither the generic class nor the
20267         generic method instantiations change, return the original context.
20268         * reflection.c (mono_method_get_object): Do
20269         'mono_get_inflated_method' before accessing the ->klass field.
20270         (inflate_mono_method): Don't create a MonoGenericMethod unless
20271         necessary.
20272         (inflate_method): Don't pass a constructed type as the declaring
20273         type of a methodbuilder.
20274
20275 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
20276
20277         * object.c: fix memory overwrite.
20278
20279 2006-02-22  Dick Porter  <dick@ximian.com>
20280
20281         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
20282         it doesn't work any more.
20283         (mono_threads_request_thread_dump): Fix unused variable warnings.
20284
20285 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
20286
20287         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
20288         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
20289         the public header file.
20290
20291 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
20292
20293         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
20294
20295 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
20296
20297         * class-internals.h, object.c: reduce the size of MonoVTable
20298         and store the interface_offsets array at negative offsets.
20299
20300 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
20301
20302         * metadata.c: tweak table descriptors data structures to reduce
20303         size and runtime relocations.
20304
20305 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
20306
20307         * marshal.c: fix some types and opcodes to be type-safe
20308         in marshaling wrappers.
20309
20310 2006-02-21  Ankit Jain  <jankit@novell.com>
20311
20312         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
20313
20314 2006-02-21  Raja R Harinath  <rharinath@novell.com>
20315
20316         * metadata.c (get_constraints): Relax debugging checks for monodis.
20317
20318 2006-02-21  Ankit Jain  <jankit@novell.com>
20319
20320         * metadata.c (mono_metadata_load_generic_params): Move the code
20321         checking for ambiguous generic params from here to mono/dis/get.c
20322         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
20323
20324 2006-02-21  Raja R Harinath  <harinath@gmail.com>
20325
20326         Fix assertion triggered when compiling nemerle.
20327         * class.c (mono_get_shared_generic_inst): Rename from
20328         get_shared_inst and make non-static.
20329         * loader.c (mono_get_shared_generic_method): New.  Used to create
20330         the MonoGenericContext-equivalent of a MonoGenericContainer.
20331         (mono_get_method_from_token): Initialize the 'context' field of
20332         the created MonoGenericContainer.
20333         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
20334         * metadata.c (get_constraints): Add sanity check.
20335         * class-internals.h: Add new internal methods.
20336
20337         * reflection.c (verify_safe_for_managed_space): New sanity check.
20338         Currently checks that owner-less generic parameters aren't allowed
20339         in managed space.
20340         (mono_type_get_object): Use it.
20341         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
20342         that are now in mono_type_get_object.
20343         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
20344
20345 2006-02-19  Raja R Harinath  <harinath@gmail.com>
20346
20347         * metadata.c (mono_type_create_from_typespec): Rename from
20348         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
20349         argument and caching of types in the generic container.
20350         (unwrap_arrays, find_generic_param): Remove.
20351         * metadata-internals.h: Update.
20352         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
20353
20354 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
20355
20356         * class.c (mono_class_get_exception_for_failure): Fix a warning.
20357
20358         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
20359         return values. Fixes #77581.
20360
20361         * class.c (mono_fnptr_class_get): Switch name and name_space.
20362
20363         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
20364         classes and add support for [In, Out] attributes.
20365         (mono_marshal_free_asany): Ditto. Fixes #77524.
20366
20367 2006-02-18  Raja R Harinath  <harinath@gmail.com>
20368
20369         * class.c (mono_class_from_generic_parameter): Make more robust to
20370         incomplete MonoGenericContainers from monodis.
20371
20372 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
20373
20374         * class-internals.h: added some more exception types.
20375         * class.c, metadata.c: added a few checks to handle missing
20376         types.
20377
20378 2006-02-17  Raja R Harinath  <rharinath@novell.com>
20379
20380         Use owner-less generic-params some more.
20381         * class.c (my_mono_class_from_generic_parameter): Remove.
20382         (mono_class_from_generic_parameter): Handle null image,
20383         param->name and param->owner.
20384         (mono_class_from_mono_type): Update.
20385         (mono_class_create_from_typespec): Remove 'container' parameter.
20386         If that parameter is non-null, the result is always inflated by
20387         'mono_class_get_full' anyway.
20388         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
20389         parameter.
20390         (mono_class_get_full): Update.
20391
20392         * class.c (inflate_generic_type) [GENERICINST]: If the generic
20393         instance is not open, don't bother inflating.
20394         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
20395         parse metadata for inflated classes.
20396         (_mono_class_get): Change GenericContext* parameter to
20397         GenericContainer*.
20398         (mono_class_create_from_typespec): Likewise.  Simplify, and
20399         implement trivially.  All the cases are handled in
20400         mono_class_from_mono_type.  Don't inflate returned class.
20401         (mono_class_get_full): Delegate GENERICINST optimization to
20402         inflate_generic_type.
20403         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
20404
20405 2006-02-16  Dick Porter  <dick@ximian.com>
20406
20407         * socket-io.c (create_object_from_sockaddr): Fix typo.
20408         (create_sockaddr_from_object): Check array lengths before
20409         potentially accessing items off the end.
20410         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
20411         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
20412         (ves_icall_System_Net_Sockets_Socket_Send_internal)
20413         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
20414         length checks to avoid wraparound overflows.
20415         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
20416         contents of the array of sockets
20417         (hostent_to_IPHostEntry2)
20418         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
20419         Check return value of inet_ntop ().
20420         (addrinfo_to_IPHostEntry): Fix typo
20421
20422 2006-02-16  Raja R Harinath  <rharinath@novell.com>
20423
20424         Type metadata parsing doesn't use generic-instantiation information.
20425         * metadata.c (mono_metadata_parse_array_full): Change
20426         MonoGenericContext* parameter to MonoGenericContainer*.
20427         (mono_metadata_parse_type_full): Likewise.
20428         (mono_type_create_from_typespec_full): Likewise.
20429         (mono_metadata_parse_mh_full): Likewise.
20430         (mono_metadata_parse_generic_inst): Likewise.
20431         (do_mono_metadata_parse_generic_class): Likewise.
20432         (do_mono_metadata_parse_type): Likewise.
20433         * metadata-internals.h: Update to changes.
20434         * class.c (mono_class_find_enum_basetype): Likewise.
20435         (mono_class_setup_fields): Likewise.
20436         (mono_class_create_from_typespec): Likewise.
20437         * loader.c (method_from_methodspec): Likewise.
20438         (mono_get_method_from_token): Likewise.
20439         (mono_method_get_header): Likewise.
20440
20441 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
20442
20443         * marshal.c: handle additional GENERICINST case (patch from
20444         Thong Nguyen <tum@veridicus.com>).
20445         Fix a few cases where LDIND_I/STIND_I was used for references.
20446
20447 2006-02-16  Raja R Harinath  <rharinath@novell.com>
20448
20449         * reflection.c (mono_reflection_get_token): Remove unused variable.
20450
20451 2006-02-16  Martin Baulig  <martin@ximian.com>
20452
20453         * reflection.c (mono_reflection_get_token): Add support for fields
20454         in instantiated generic types.
20455
20456         * icall.c
20457         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
20458
20459 2006-02-15  Martin Baulig  <martin@ximian.com>
20460
20461         * icall.c
20462         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
20463         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
20464         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
20465         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
20466
20467 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
20468
20469         * class.c, metadata.c, metadata.h, object.c, icall.c,
20470         marshal.c: changed mono_type_get_underlying_type () to do
20471         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
20472         Fixed handling of instantiated generic valuetypes (bug #75479).
20473
20474 2006-02-15  Raja R Harinath  <rharinath@novell.com>
20475
20476         * metadata.c (mono_metadata_decode_signed_value): Simplify.
20477         Delegate to mono_metadata_decode_value, and work on the returned value.
20478
20479         * icall.c (ves_icall_MonoType_GetGenericArguments):
20480         Add consistency check here too.
20481         
20482 2006-02-15  Ankit Jain  <jankit@novell.com>
20483
20484         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
20485         char/short etc.
20486
20487 2006-02-15  Ankit Jain  <jankit@novell.com>
20488
20489         * metadata.c (mono_metadata_decode_signed_value): New function to decode
20490         signed values, used only for representing lower bounds of arrays.
20491         (mono_metadata_parse_array_full): Use new
20492         mono_metadata_decode_signed_value to decode lower bounds.
20493
20494 2006-02-14  Martin Baulig  <martin@ximian.com>
20495
20496         * reflection.c
20497         (mono_reflection_get_token): Support "MonoGenericMethod" and
20498         "MonoGenericCMethod" and allow generic instances / methods.
20499
20500 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
20501
20502         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
20503         to obtain the terminal size using an ioctl.
20504
20505         * object.c (mono_nullable_init): Revert this as nullable reference
20506         types are not valid.
20507         (mono_nullable_box): Ditto.
20508
20509 2006-02-09  Dick Porter  <dick@ximian.com>
20510
20511         * threads.c (mono_thread_detach): Drop a reference to the thread
20512         we're detaching.
20513
20514 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
20515
20516         * object.c (mono_nullable_init): Handle nullable reference types.
20517         (mono_nullable_box): Ditto. Fixes #77446.
20518
20519 2006-02-07  Martin Baulig  <martin@ximian.com>
20520
20521         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
20522
20523 2006-02-07  Ankit Jain  <jankit@novell.com>
20524
20525         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
20526         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
20527         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
20528         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
20529         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
20530         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
20531
20532 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
20533
20534         * class.c (mono_class_create_generic): Set type_token as well.
20535
20536         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
20537         compatible with MS.
20538
20539 2006-02-02  Martin Baulig  <martin@ximian.com>
20540
20541         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
20542         has never been used so far.
20543
20544 2006-02-02  Martin Baulig  <martin@ximian.com>
20545
20546         * mono-debug-debugger.h: Changed comment at the top of this file;
20547         the header is not installed, but it's safe to #include it from
20548         within the JIT.
20549
20550         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
20551         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
20552
20553 2006-02-02  Martin Baulig  <martin@ximian.com>
20554
20555         * mono-debug.h
20556         (MonoSymbolTable): Removed the `metadata_info' field.
20557
20558         * mono-debug.c
20559         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
20560
20561         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
20562         (mono_debugger_add_builtin_types): Removed.
20563         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
20564         (mono_debugger_create_notification_function): We now operate on a
20565         pre-allocated area; take a `gpointer' and return `void'.
20566
20567         * mono-debug-debugger.c
20568         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
20569         (mono_debugger_add_builtin_types): Removed.
20570
20571 2006-02-02  Martin Baulig  <martin@ximian.com>
20572
20573         * threads.c (mono_debugger_create_all_threads): New public method.
20574
20575 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
20576
20577         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
20578         breaks on several platforms.
20579
20580 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
20581
20582         * assembly.c: the VS.NET build doesn't supply default values for
20583         MONO_ASSEMBLIES and MONO_CFG_DIR.
20584
20585 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
20586
20587         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
20588         helper function.
20589
20590         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
20591
20592         * loader.c (method_from_memberref): Fix a warning.
20593
20594         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
20595
20596         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
20597         with explicit layout. Fixes #77433.
20598
20599 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
20600
20601         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
20602         max_interface_id is initialized before using it. Fixes #77398.
20603         (ves_icall_Type_GetInterfaces): Ditto.
20604
20605 2006-01-30  Raja R Harinath  <rharinath@novell.com>
20606
20607         * metadata.c (mono_metadata_parse_method_signature_full): Don't
20608         allocate memory for parameter attributes when parsing memberref
20609         signatures.
20610         * loader.c (mono_loader_set_error_method_load): Don't warn.
20611         (method_from_memberref): Ensure MissingMethodException gets thrown
20612         if method is not found.  Make warning more informative.
20613
20614 2006-01-29  Raja R Harinath  <harinath@gmail.com>
20615
20616         Fix #77397
20617         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
20618         return true if is byref.
20619         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
20620         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
20621         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
20622
20623 2006-01-27  Raja R Harinath  <rharinath@novell.com>
20624
20625         Fix tests/find-method.2.il
20626         * loader.c (find_method, find_method_in_class): Remove is_inflated
20627         argument.  Revert 2006-01-18 change.
20628         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
20629         is generic, search for method in its generic definition.
20630         * class.c (mono_class_setup_vtable_general): Print generic
20631         arguments of generic types in debugging printf.
20632
20633 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
20634
20635         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
20636
20637         * threads.c (mono_threads_request_thread_dump): New helper function.
20638
20639 2006-01-25  Raja R Harinath  <rharinath@novell.com>
20640
20641         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
20642
20643 2006-01-25  Ankit Jain  <jankit@novell.com>
20644
20645         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
20646         move definition to ..
20647         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
20648         
20649 2006-01-25  Ankit Jain  <jankit@novell.com>
20650             Raja R Harinath  <rharinath@novell.com>
20651
20652         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
20653         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
20654         as necessary.
20655
20656 2006-01-25  Martin Baulig  <martin@ximian.com>
20657
20658         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
20659         `MonoDebuggerThread' into debug-debugger.c.
20660
20661 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
20662
20663         * profiler.c: fix printing of data.
20664
20665 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
20666
20667         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
20668           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
20669
20670 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
20671
20672         * object.c: fix deadlock related to string interning.
20673
20674 2006-01-23  Martin Baulig  <martin@ximian.com>
20675
20676         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
20677
20678         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
20679
20680 2006-01-23  Martin Baulig  <martin@ximian.com>
20681
20682         * mono-debug.h: Moved the prototypes of some functions which are
20683         used by the JIT here from mono-debug-debugger.h.
20684
20685 2006-01-21  Martin Baulig  <martin@ximian.com>
20686
20687         * Makefile.am: Don't install mono-debug-debugger.h.
20688
20689 2006-01-21  Martin Baulig  <martin@ximian.com>
20690
20691         * mono-debug-debugger.h: Enforce the private status of this header
20692         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
20693         Moved some stuff from mono-debugger-jit-wrapper.h here.
20694
20695 2006-01-20  Raja R Harinath  <rharinath@novell.com>
20696
20697         * class.c (mono_class_from_typeref): Add a sanity test to help
20698         catch lack of assembly load/search hooks.
20699
20700 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
20701
20702         * marshal.c (emit_struct_conv): Relax the fields with same offset
20703         check even more. Fixes #77230.
20704
20705 2006-01-18  Martin Baulig  <martin@ximian.com>
20706
20707         * loader.c (find_method_in_class): Added `gboolean is_inflated'
20708         argument; if false, we compare the uninstantiated signatures.
20709         (method_from_memberref): Compare the uninstantiated signatures;
20710         fixes #76417.
20711
20712 2006-01-18  Robert Jordan  <robertj@gmx.net>
20713
20714         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
20715         Clear the weak link. Fixes bug #77170.
20716
20717         * gc.c (mono_gchandle_free):
20718         Reflect *-gc.c changes (tiny optimization).
20719
20720 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
20721
20722         * metadata.c (mono_metadata_signature_dup): Applied patch from
20723         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
20724         Fixes #77288.
20725
20726 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
20727
20728         * marshal.c (emit_struct_conv): Allow fields with the same offset when
20729         marshalling from native to managed code. Fixes #77230.
20730
20731 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20732
20733         * threadpool.c: fix problem (Mac only) when more than one asynchronous
20734         connect. Fixes bug #77020.
20735
20736 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
20737
20738         * class.c: fixed id assignement for nested interfaces (bug #77275).
20739         Added also better info for --print-vtable debugging.
20740
20741 2006-01-12  Martin Baulig  <martin@ximian.com>
20742
20743         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
20744         interfaces on-the-fly; fixes #76625.
20745
20746         * class-internals.h
20747         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
20748         don't need that anymore.
20749
20750 2006-01-12  Miguel de Icaza  <miguel@novell.com>
20751
20752         * socket-io.c
20753         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
20754         To avoid initing the nested_classes when not needed I turned the
20755         PeerCredData as a toplevel internal class, as it has to be shared
20756         anyways. 
20757
20758         Fixes the CASA issue.
20759
20760 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
20761
20762         * domain.c: Accessors for MonoJitInfo
20763
20764         * profiler-private.h: Add jitinfo to the end jit hook
20765
20766         * profiler.[ch]: Define new hooks, called after jitting which give
20767         the MonoJitInfo that was compiled
20768
20769 2006-01-10  Martin Baulig  <martin@ximian.com>
20770
20771         * class.c (mono_class_setup_events): Add support for generic
20772         classes; fixes #76440.
20773
20774 2006-01-06  Raja R Harinath  <rharinath@novell.com>
20775
20776         Fix #77160.
20777         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
20778         on passed-in method.
20779
20780 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
20781
20782         * object.c (mono_runtime_invoke_array): Add Nullable support.
20783
20784         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
20785
20786 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
20787
20788         * file-io.c: Don't consider sockets as directory and avoid an endless
20789         loop. Fix bug #76966.
20790
20791 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
20792
20793         * object.c (mono_nullable_init): New helper function.
20794         (mono_nullable_box): Ditto.
20795
20796         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
20797
20798         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
20799
20800         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
20801         
20802 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
20803
20804         * class.c (mono_class_is_assignable_from): Make T assignable to 
20805         Nullable<T>.
20806
20807 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
20808
20809         * appdomain.c: Bump corlib version to 46.
20810         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
20811         serialization purpose) and changed ves_icall_System_Reflection_
20812         Assembly_get_code_base signature to accept a boolean (to escape, or 
20813         not, the assembly code base).
20814
20815 2005-12-23  Dick Porter  <dick@ximian.com>
20816
20817         * icall.c: 
20818         * threads-types.h: 
20819         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
20820         CreateEvent icall now returns "created" boolean parameter.
20821
20822 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
20823
20824         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
20825         #76967.
20826
20827         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
20828         when attr_klass is an interface. Fixes #77045.
20829
20830 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
20831
20832         * marshal.c (emit_struct_conv): Fix previous patch.
20833         
20834         * marshal.c (emit_struct_conv): Add a check for fields with the same
20835         offset.
20836
20837 2005-12-20  Raja R Harinath  <rharinath@novell.com>
20838
20839         Fix regression in Mono.C5.
20840         * class.c (mono_class_create_generic): If 'klass' is an interface
20841         set up the interface offsets.
20842         (mono_class_is_assignable_from): Don't throw away generic arguments.
20843
20844 2005-12-19  Raja R Harinath  <rharinath@novell.com>
20845
20846         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
20847         type parameters.
20848
20849 2005-12-15  Raja R Harinath  <rharinath@novell.com>
20850
20851         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
20852         dead store.
20853         (do_mono_metadata_parse_generic_class): Don't pass the current
20854         generic context when parsing the type being instantiated: it
20855         cannot use it, anyway.
20856
20857         * loader.c (method_from_memberref): Don't inflate a signature if
20858         it doesn't contain any type parameters.
20859
20860 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
20861
20862         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
20863
20864 2005-12-14  Martin Baulig  <martin@ximian.com>
20865
20866         * class.c
20867         (mono_type_get_name_recurse): Don't return null for type
20868         parameters and open generic classes.
20869         (mono_class_setup_methods): Don't exclude generic instances.
20870         (mono_get_unique_iid): Use different IDs for different
20871         instantiations of the same generic type.
20872         (mono_class_setup_vtable): Only use setup_generic_vtable() for
20873         open generic instances; create a normal vtable for closed generic
20874         instances.
20875         (mono_class_setup_vtable_general): We're now also called for
20876         closed generic instances.
20877
20878         * reflection.c
20879         (mono_reflection_bind_generic_parameters): Correctly use
20880         mono_metadata_lookup_generic_inst() everywhere.
20881
20882 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
20883
20884         * object.c (mono_class_create_runtime_vtable): Call 
20885         mono_class_setup_vtable ().
20886
20887         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
20888         function.
20889         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
20890         #76959.
20891
20892         * loader.c (mono_loader_set_error_type_load): Print the type load
20893         warnings to the console so they are more visible to the user.
20894         (mono_loader_set_error_method_load): Ditto.
20895
20896         * reflection.c (ensure_runtime_vtable): Revert the last change as it
20897         is still broken.
20898         
20899         * reflection.c (ensure_runtime_vtable): Fix build.
20900
20901         * reflection.c (ensure_runtime_vtable): Disable an optimization which
20902         doesn't work in all cases.
20903
20904 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
20905
20906         * object.c (mono_array_new_full): Treat a single dimensional array
20907         with 0 lower bounds as an szarray. Fixes #76973.
20908
20909         * reflection.c (custom_attr_visible): Really fix this.
20910
20911 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
20912
20913         * reflection.c (custom_attr_visible): Allow nested public attributes
20914         as well.
20915
20916         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
20917         interface check.
20918
20919 2005-12-12  Raja R Harinath  <harinath@gmail.com>
20920
20921         * class.c (set_generic_param_owner): Delete.
20922         (mono_class_create_from_typedef): Don't set ->owner field of
20923         generic parameters to "param containers" of enclosing classes.
20924         * reflection.c (mono_reflection_initialize_generic_parameter):
20925         Likewise.
20926
20927 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
20928
20929         * reflection.c (custom_attr_visible): Fix build.
20930
20931 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
20932
20933         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
20934         private attributes.
20935         
20936         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
20937         handling of null parameter defaults.
20938
20939 2005-12-09  Raja R Harinath  <rharinath@novell.com>
20940
20941         * class.c (mono_class_from_generic_parameter): Don't set
20942         klass->generic_container.
20943         (my_mono_class_from_generic_parameter): Likewise.
20944
20945 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
20946
20947         * reflection.c (load_public_key): Fix a warning.
20948         (method_encode_code): Fix unaligned accesses.
20949
20950 2005-12-07  Martin Baulig  <martin@ximian.com>
20951
20952         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
20953
20954         * reflection.c
20955         (write_generic_param_entry): Encode our custom attrs.
20956
20957         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
20958
20959 2005-12-07  Martin Baulig  <martin@ximian.com>
20960
20961         * reflection.c (encode_new_constraint): Removed; we don't use the
20962         `NewConstraintAttribute' anymore.
20963
20964 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
20965
20966         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
20967         not fire a TypeResolve event when Assembly.GetType () is called.
20968
20969 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
20970
20971         Beginning of support for nullable types in the runtime. Parts of
20972         this patch are from Martin.
20973
20974         * appdomain.c (MONO_CORLIB_VERSION): Bump
20975
20976         * domain.c (mono_init_internal): get the nullable type
20977
20978         * class.c (mono_class_is_nullable): New method
20979         (mono_class_get_nullable_param): New mehod
20980         (mono_class_create_generic): In types T? set cast_class to T
20981
20982         * class-internals.h (MonoDefaults): new nullable default class
20983         (mono_class_get_nullable_param, mono_class_get_nullable_param):
20984         new methods.
20985
20986 2005-12-05  Raja R Harinath  <rharinath@novell.com>
20987
20988         * metadata.c (select_container): New.  Refactor code to select the
20989         appropriate GenericContainer given the type of generic parameter
20990         we are looking for.
20991         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
20992         not a MonoGenericContext.  Use select_container.  Update parameters.
20993         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
20994         and MONO_TYPE_MVAR.
20995         (unwrap_arrays): Remove duplicate tests.
20996         (find_generic_param): Rename from 'has_same_context'.  Now walks a
20997         generic instantiated class to find any arguments that are generic
20998         parameters.
20999         (mono_type_create_from_typespec_full): Use find_generic_param to
21000         avoid evicting some generic instantiations from the typespec
21001         cache.
21002
21003 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
21004
21005         * reflection.c: fixed writing of doubles on ARM FPA.
21006
21007 2005-12-02  Robert Jordan  <robertj@gmx.net>
21008
21009         * icall.c: Fixed EventInfo.ReflectedType (#76829).
21010
21011 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21012
21013         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
21014         least on SUSE 10 they are not the same (on debian, they are just the
21015         same thing).
21016
21017 2005-12-01  Raja R Harinath  <rharinath@novell.com>
21018
21019         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
21020         DeclaringType for VARs and MVARs.
21021         * class.c (set_generic_param_owner): Fix initialization of owner
21022         fields.
21023
21024 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
21025
21026         * icall.c: fixed Enum.ToObject() to correctly convert the values.
21027
21028 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21029
21030         * threadpool.c: workaround for a bug that shows up on the Mac:
21031         select()+connect() on a blocking socket is not like it should
21032         be, so we proceed to connect() in that case, wasting the I/O
21033         threadpool thread until connect succeedes. Fixes bug #75436.
21034
21035 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21036
21037         * threadpool.c: fix typo when setting file descriptor states.
21038
21039 2005-11-28  Raja R Harinath  <rharinath@novell.com>
21040
21041         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
21042         * metadata.c (mono_metadata_parse_method_signature_full): Don't
21043         create a temporary signature container.
21044         (mono_metadata_parse_generic_param): Update to changes.
21045         (mono_type_create_from_typespec_full): Update to changes.
21046         * loader.c (method_from_memberref): Don't use a
21047         MonoGenericContainer while parsing a memberref signature.
21048         (method_from_methodspec): Remove dead-store of the 'container'
21049         variable.  It's overwritten before use.
21050
21051         * metadata.c (mono_type_create_from_typespec_full): Make debugging
21052         checks tighter.
21053         (mono_metadata_parse_generic_param): Likewise.
21054         * loader.c (find_method_in_class): Does not need a
21055         MonoGenericContainer.  Use 'mono_method_signature' rather than
21056         'mono_method_signature_full'.
21057         (find_method, mono_get_method_constrained, method_from_memberref):
21058         Update to changes.
21059
21060         * metadata.c (mono_type_create_from_typespec_full): Ensure that
21061         owner-less generic-parameters are never evicted from the typespec
21062         cache.
21063
21064         * loader.c (method_from_memberref): Don't use the current context
21065         when parsing signatures.
21066         (method_from_methodspec, mono_get_method_from_token): Update to changes.
21067
21068         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
21069         side-effects in g_assert.
21070         * loader.c (mono_get_method_from_token): Resolve klass earlier so
21071         that we don't potentially lose information.
21072
21073 2005-11-26  Dick Porter  <dick@ximian.com>
21074
21075         * icall.c:
21076         * threads.c: icalls to implement basic (ie, not named)
21077         System.Threading.Semaphore.
21078
21079 2005-11-24  Dick Porter  <dick@ximian.com>
21080
21081         * process.c
21082         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
21083         Use GetProcessId() if it's available.
21084
21085 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
21086
21087         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
21088
21089 2005-11-23  Raja R Harinath  <rharinath@novell.com>
21090             Ankit Jain  <jankit@novell.com>
21091
21092         * loader.c (mono_get_method_from_token): Initialize 'method' field
21093         of all generic parameters before parsing the signature.  Remove
21094         code that "fixed"-up MVAR references.
21095
21096 2005-11-23  Ankit Jain  <jankit@novell.com>
21097
21098         * metadata.c (mono_metadata_has_generic_params):
21099         (mono_metadata_load_generic_param_constraints):
21100         (mono_metadata_load_generic_params): Move duplicate code ...
21101         (mono_metadata_get_generic_param_row): ... here. Returns the
21102         first row-id in GenericParam table for a given owner (token).
21103         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
21104         prototype.
21105
21106 2005-11-23  Raja R Harinath  <rharinath@novell.com>
21107             Ankit Jain  <jankit@novell.com>
21108
21109         * metadata.c (mono_metadata_class_equal): Pass signature_only when
21110         comparing VARs too.
21111         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
21112         type->data.generic_param only if the type is an MVAR.
21113         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
21114         leak owner-less VARs and MVARs into managed space.
21115
21116 2005-11-21  Martin Baulig  <martin@ximian.com>
21117
21118         * class-internals.h
21119         (MonoMethod): Moved the `generic_container' here from
21120         `MonoMethodNormal' since we now also need it for
21121         `MonoMethodPInvoke';
21122         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
21123         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
21124         an union containing both `MonoMethodNormal' and
21125         `MonoMethodPInvoke'.
21126
21127         * loader.c
21128         (mono_get_method_from_token): Allow implementing generic methods
21129         as interncalls.
21130
21131         * threads.c
21132         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
21133         icall.
21134
21135 2005-11-17  Dick Porter  <dick@ximian.com>
21136
21137         * icall.c: 
21138         * process.h: 
21139         * process.c: Split the Process Start_internal icall into
21140         ShellExecuteEx_internal and CreateProcess_internal, which are
21141         called depending on whether UseShellExecute is true.  Fixes bug
21142         76670.
21143
21144         * appdomain.c (MONO_CORLIB_VERSION): Incremented
21145
21146 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
21147
21148         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
21149         'msize' parameters, use the information in 'mspec' instead.
21150         (emit_object_to_ptr_conv): Ditto.
21151
21152         * marshal.c (emit_struct_conv): Handle explicit layout structs with
21153         fields out of order. Fixes #76733.
21154
21155 2005-11-17  Ankit Jain  <jankit@novell.com>
21156
21157         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
21158
21159 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
21160
21161         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
21162           bug #76575.
21163
21164 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
21165
21166         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
21167         for types with non-auto layout. Fixes #76717.
21168
21169 2005-11-16  Ankit Jain  <jankit@novell.com>
21170
21171         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
21172         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
21173         if generic_context is null.
21174           (mono_metadata_generic_param_equal): param->owner can be null.
21175           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
21176         null.
21177
21178 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
21179
21180         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
21181         the correct value.
21182
21183 2005-11-15  Martin Baulig  <martin@ximian.com>
21184
21185         * object.c (set_value): Use mono_class_from_mono_type() instead of
21186         the hack for generic instances; fixes #76136.
21187
21188 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
21189
21190         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
21191         fields.
21192
21193         * image.c (load_metadata_ptrs): Initialize the new fields.
21194
21195         * reflection.c (create_dynamic_mono_image): Ditto.
21196
21197         * reflection.c (build_compressed_metadata): Use the new fields.
21198
21199         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
21200         icall.
21201
21202         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
21203         icall.
21204         
21205 2005-11-15  Ankit Jain  <jankit@novell.com>
21206             Raja R Harinath  <harinath@gmail.com>
21207
21208         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
21209         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
21210         new per-generic_container cache if the cached MonoType's context matches
21211         the current context.
21212           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
21213         to the expected context.
21214           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
21215
21216 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21217
21218         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
21219         we changed the signature of an icall.
21220         * icall.c: Modify to mono_double_ParseImpl return true/false 
21221         depending on the success, instead of throwing the exception. This will
21222         help us in Double.TryParse methods.
21223         
21224 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
21225
21226         * marshal.c (emit_marshal_object): Throw an exception when
21227         marshalling 'object' instead of crashing. Fixes #76696.
21228
21229 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
21230
21231         * class-internals.h: Add prototype for mono_type_get_full_name ().
21232
21233 2005-11-11  Dick Porter  <dick@ximian.com>
21234
21235         * threads.c (mono_thread_manage): Make sure the main thread has
21236         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
21237
21238 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
21239
21240         * loader.c (mono_loader_set_error_type_load): Log a warning to the
21241         console about the missing type.
21242         (mono_loader_set_error_method_load): Ditto.
21243
21244 2005-11-09  Miguel de Icaza  <miguel@novell.com>
21245
21246         * mono-config.c (mono_get_config_dir): Set the system defaults if
21247         none is specified.
21248
21249         * assembly.c (mono_set_dirs): New API entry point to set the
21250         assembly and the config directory in one call
21251
21252 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
21253
21254         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
21255         the ftnptr was created from a delegate in a domain other than the
21256         current domain. Fixes #75377.
21257
21258         * exception.h exception.c: Add mono_get_exception_not_supported ().
21259
21260 2005-11-08  Martin Baulig  <martin@ximian.com>
21261
21262         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
21263
21264 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
21265
21266         * security-manager.h: Added definitions to deal with strongname key 
21267         pairs bigger (and smaller) than 1024 bits.
21268         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
21269         adjust wrt the public key length being used.
21270
21271 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
21272
21273         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
21274           Windows build (r51396-51397).
21275
21276 2005-11-03  Martin Baulig  <martin@ximian.com>
21277
21278         * class.c (mono_class_setup_vtable_general): Also add generic
21279         methods to the vtable; fixes #76581.
21280
21281 2005-11-01  Miguel de Icaza  <miguel@novell.com>
21282
21283         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
21284         sure that we lookup GetString method from the System.Text.Encoding
21285         class, not the derived class or we get an empty method.
21286
21287         Fixed class #76612.
21288
21289 2005-10-25  Miguel de Icaza  <miguel@novell.com>
21290
21291         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
21292         if it has been previously set (embedders). 
21293
21294         Make mono_set_rootdir available also on Unix.
21295
21296 005-10-24  Robert Jordan  <robertj@gmx.net>
21297
21298         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
21299
21300 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
21301
21302         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
21303         only calls which are made to native code use this flag.
21304
21305         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
21306
21307 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
21308
21309         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
21310         Add support for FieldBuilders.
21311
21312 2005-10-29  Martin Baulig  <martin@ximian.com>
21313
21314         * mono-debug.c
21315         (mono_debug_using_mono_debugger): New public method; returns
21316         whether we're running inside the debugger.
21317
21318 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
21319
21320         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
21321         for Method/Constructor/FieldBuilders.
21322
21323 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
21324
21325         * reflection.c (module_add_cattrs): Save custom attributes for global methods
21326         and fields as well.
21327
21328 2005-10-26  Martin Baulig  <martin@ximian.com>
21329
21330         * mono-debug-debugger.c
21331         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
21332
21333 2005-10-24  Raja R Harinath  <harinath@gmail.com>
21334
21335         * icall.c (base64_to_byte_array): Don't pass an out-of-range
21336         integer to isspace.
21337
21338 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
21339
21340         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
21341         when passing valuetypes byref. Fixes #76502.
21342
21343 2005-10-19  Jackson Harper  <jackson@ximian.com>
21344
21345         * profiler.c: Don't put a . in front of types that are not in a
21346         namespace.
21347
21348 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
21349
21350         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
21351
21352 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
21353
21354         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
21355         #76436.
21356         (mono_marshal_get_ldflda_wrapper): Fix a warning.
21357
21358 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21359
21360         * assembly.c metadata-internals.h icall.c: Define an additional
21361         parameter for mono_assembly_name_parse_full, so we can avoid creating
21362         S.R.AssemblyName.Version when no version info wasn't passed.
21363         
21364 2005-10-09  Miguel de Icaza  <miguel@novell.com>
21365
21366         * class.c (mono_type_get_full_name): Reimplement method that was
21367         removed. 
21368
21369         * image.c: Some docs
21370
21371 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
21372
21373         * profiler.c (output_newobj_profile): Fix printing of Total memory
21374         on x86.
21375
21376 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
21377
21378         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
21379
21380 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
21381
21382         * threads.c: remove debug output.
21383
21384 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
21385
21386         * threads.c (mono_thread_manage): Fix crashes if more than 64
21387         threads need to be aborted. Hopefully fixes #75899.
21388
21389         * assembly.c (mono_stringify_assembly_name): New helper function.
21390
21391         * class.c: Use mono_stringify_assembly_name instead of the similar
21392         static function.
21393
21394         * assembly.h assembly.c: Add support for calling a postload search 
21395         hook if an assembly cannot be loaded.
21396
21397         * appdomain.c: Register new search hooks which call the AssemblyResolve
21398         events in AppDomain. Fixes #75231
21399
21400 2005-10-07  Martin Baulig  <martin@ximian.com>
21401
21402         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
21403         methods without debug info.
21404
21405 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
21406
21407         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
21408         wrappers.
21409
21410 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21411
21412         * file-io.c: now that we return symlinks, use lstat and, when the file
21413         is a symbolic link, stat, to get the file attributes. Also avoid the
21414         conversion to/from utf16/external.
21415
21416 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
21417
21418         * class.c (mono_class_layout_fields): Compute klass->has_references
21419         correctly if an embedded valuetype is not yet initialized. Fixes
21420         #76331.
21421
21422 2005-10-04  Martin Baulig  <martin@ximian.com>
21423
21424         * metadata.c
21425         (mono_metadata_load_generic_param_constraints): New public
21426         function; splitted the constraints loading out from
21427         mono_metadata_load_generic_params().
21428
21429         * class.c (mono_class_create_from_typedef): Call
21430         mono_metadata_load_generic_param_constraints() after setting up
21431         the type and creating our parent; fixes #75329.
21432
21433 2005-10-04  Martin Baulig  <martin@ximian.com>
21434
21435         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
21436         non-dynamic parent classes.
21437
21438 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
21439
21440         * file-io.c : win32 build fix (ETXTBSY seems not found).
21441
21442 2005-10-04  Martin Baulig  <martin@ximian.com>
21443
21444         * reflection.c
21445         (mono_image_get_methodspec_token): Make the cache actually work;
21446         fixes #75974.
21447
21448 2005-10-04  Martin Baulig  <martin@ximian.com>
21449
21450         * class.c (mono_class_name_from_token): Removed the unneccessary
21451         `MonoGenericContext *' argument.
21452
21453 2005-10-04  Martin Baulig  <martin@ximian.com>
21454
21455         * loader.c
21456         (method_from_methodspec): Make the caching work again; fixes the
21457         performance regression from #76262.
21458
21459 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21460
21461         * file-io.c:
21462         * file-io.h:
21463         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
21464         GetFileSystemEntries that performs the same work but without going
21465         into io-layer, locking, etc.
21466
21467 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
21468
21469         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
21470         ThreadState_Stopped as well. Fixes #76047.
21471
21472 2005-09-29  Martin Baulig  <martin@ximian.com>
21473
21474         * class.c
21475         (inflate_generic_context): If the new context has a `gmethod', set
21476         its `container' that that gmethod's `container'.
21477
21478         * metadata.c
21479         (mono_metadata_parse_generic_param): Simplify things;
21480         `generic_container = generic_context->container;' is just fine.
21481
21482         * loader.c (method_from_methodspec): Code cleanups.
21483
21484 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
21485
21486         * decimal.c: fix warning (and let gcc generate correct
21487         code on ARM with optimizations).
21488
21489 2005-09-28  Martin Baulig  <martin@ximian.com>
21490
21491         * loader.c
21492         (method_from_memberref): Added `MonoGenericContext *class_context'
21493         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
21494         (method_from_methodspec): If we're a memberref, use the enclosing
21495         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
21496
21497 2005-09-28  Martin Baulig  <martin@ximian.com>
21498
21499         * object.c (mono_runtime_invoke_array): Added support for
21500         MONO_TYPE_GENERICINST; fixes #75917.
21501
21502 2005-09-27  Martin Baulig  <martin@ximian.com>
21503
21504         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
21505         `k->byval_arg.type' to determine the actual type.
21506
21507         * loader.c (method_from_methodspec): Removed some hacks.
21508
21509 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
21510
21511         * class-internals.h (mono_field_is_deleted): Do the test for
21512         rtspecialname before we check the actual name of the field. This
21513         prevents us from dereferencing a pointer into the string table,
21514         saving us from accessing a few pages
21515
21516         * *.c: Replace the use of {Enter,Leave}CriticalSection with
21517         macros. This will allow a deadlock debugger to easily be plugged
21518         in.
21519
21520 2005-09-27  Martin Baulig  <martin@ximian.com>
21521
21522         * loader.c (method_from_methodspec): Create a "signature"
21523         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
21524
21525 2005-09-27  Martin Baulig  <martin@ximian.com>
21526
21527         * class.c
21528         (inflate_generic_class): Correctly set the new context's
21529         container.
21530
21531         * loader.c
21532         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
21533         instead of a `MonoGenericContext *'.
21534         (mono_method_signature_full): Take a `MonoGenericContainer *'
21535         instead of a `MonoGenericContext *'.
21536
21537         * metadata.c
21538         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
21539         instead of a `MonoGenericContext *'.
21540         (mono_metadata_parse_method_signature_full): Likewise.
21541
21542 2005-09-26  Martin Baulig  <martin@ximian.com>
21543
21544         * class.c
21545         (mono_class_from_generic_parameter): Set `klass->generic_container'
21546         (mono_class_from_generic_parameter): Likewise.
21547         (mono_bounded_array_class_get): We inherit the generic container
21548         from the element class.
21549
21550         * loader.c
21551         (find_method, find_method_in_class): Take a `MonoGenericContext *'
21552         argument rather than computing it here.
21553         (method_from_memberref): Correctly set the generic context before
21554         parsing the signature.  Fixes #75681.
21555
21556 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
21557
21558         * object.c (mono_class_has_special_static_fields): Fix warnings.
21559
21560 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21561
21562         * assembly.c: Add parse_public_key function, to
21563         par the public keys. Also added mono_assembly_name_parse_full,
21564         to define it the parsed key should be freed or not.
21565         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
21566         to parse a long format assembly name.
21567         * metadata-internals.h: Keep mono_assembly_name_parse_full as
21568         private, since calling it to preserve the key requires
21569         freeing it manually.
21570         
21571 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
21572
21573         * locales.c : removed HAVE_ICU part.
21574
21575 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
21576
21577         * object.c (mono_class_create_runtime_vtable): Avoid calling 
21578         field_is_special_static if the klass has no special static fields.
21579
21580         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
21581         (MonoCachedClassInfo): Likewise.
21582
21583         * object.c (mono_class_has_special_static_fields): New helper function.
21584
21585 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
21586
21587         * class.c (mono_class_create_from_typedef): Don't call 
21588         interfaces_from_typedef_full for enums.
21589         (mono_class_create_from_typedef): Compute the base types of enums directly
21590         without calling mono_class_setup_fields ().
21591         (mono_class_find_enum_basetype): New helper function.
21592
21593         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
21594         one place inside the string heap.
21595         
21596 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
21597
21598         * class.c: locking fixes, code cleanups, some docs added.
21599         Allocate some data structures in the image mempool.
21600
21601 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
21602
21603         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
21604         the example code.
21605         
21606 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
21607
21608         * class-internals.h, class.c, reflection.c: reduce memory taken by
21609         MonoClass.
21610
21611 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
21612
21613         * metadata.c, metadata.h, loader.h: documentation updates, code and
21614         API cleanups.
21615
21616 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
21617
21618         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
21619         the example code.
21620
21621         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
21622         page faults caused by the runtime while reading metadata.
21623
21624 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21625
21626         * socket-io.c: the field names were changed 3 months ago and no one
21627         realized until bug #76077 got filed!
21628
21629 2005-09-20  Martin Baulig  <martin@ximian.com>
21630
21631         * icall.c (assembly_icalls): Removed some unused debugger icalls.
21632
21633 2005-09-20  Martin Baulig  <martin@ximian.com>
21634
21635         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
21636         write the rank into the class entry.
21637
21638 2005-09-20  Martin Baulig  <martin@ximian.com>
21639
21640         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
21641
21642 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
21643
21644         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
21645
21646         * icall.c (custom_attrs_defined_internal): New icall.
21647
21648         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
21649         function.
21650         (mono_custom_attrs_construct_by_type): New helper function.
21651
21652 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
21653
21654         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
21655         terminate the resulting string. Fixes #76123.
21656
21657 2005-09-16  Martin Baulig  <martin@ximian.com>
21658
21659         * mono-debug.c
21660         (mono_debug_add_method): Ignore inflated methods for the moment.
21661
21662 2005-09-14  Martin Baulig  <martin@ximian.com>
21663
21664         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
21665
21666 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
21667
21668         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
21669         return a success/failure indication.
21670         (mono_metadata_interfaces_from_typedef_full): Ditto.
21671         (get_constraints): Ditto.
21672
21673 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
21674
21675         * marshal.c (emit_marshal_array): Fix handling of null arrays.
21676         
21677         * marshal.c (emit_marshal_array): Add support for returning string
21678         arrays from delegates. Fixes #76063.
21679
21680         * marshal.c: Use the emit_ldloc/stloc macros where possible.
21681
21682 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
21683
21684         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
21685         icall.
21686
21687 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
21688
21689         * reflection.c icall.c: Fix after mono_get_exception_type_load
21690         signature change.
21691
21692         * assembly.c (mono_assembly_get_assemblyref): New helper function.
21693         (mono_assembly_load_reference): Use the new helper.
21694
21695         * class-internals.h (MonoLoaderError): New structure containing 
21696         information about type loading errors.
21697
21698         * class-internals.h loader.c: Add APIs to store per-thread loader
21699         error information.
21700
21701         * loader.c class.c: Set the loader error if needed.
21702
21703         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
21704
21705 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
21706
21707         * decimal.c: fixed to handle the broken ARM fp format.
21708
21709 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
21710
21711         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
21712         broken.
21713
21714 2005-09-06  Martin Baulig  <martin@ximian.com>
21715
21716         * domain.c (supported_runtimes): Added v2.0.50727.
21717
21718 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
21719
21720         * culture-info.h: reduce the size of some structures.
21721
21722 2005-09-05  Martin Baulig  <martin@ximian.com>
21723
21724         Reflect latest API changes in the August CTP.
21725
21726         * icall.c
21727         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
21728         ("MonoType.HasGenericArguments"): Removed.
21729         ("MonoMethod.BindGenericParameters"): Renamed to
21730         "MakeGenericMethod".
21731         ("MethodBuilder.BindGenericParameters"): Renamed to
21732         "MakeGenericMethod".    
21733
21734 2005-09-05  Martin Baulig  <martin@ximian.com>
21735
21736         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
21737
21738 2005-09-05  Martin Baulig  <martin@ximian.com>
21739
21740         Applying a patch from Michal Moskal <malekith@nemerle.org>.
21741
21742         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
21743         generic_container is non-NULL.
21744
21745 2005-09-05  Martin Baulig  <martin@ximian.com>
21746
21747         Applying a patch from Michal Moskal <malekith@nemerle.org>.
21748
21749         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
21750
21751 2005-08-29  Michal Moskal  <malekith@nemerle.org>
21752
21753         * reflection.c (encode_locals,
21754         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
21755         for large generic types.
21756
21757 2005-09-05  Martin Baulig  <martin@ximian.com>
21758
21759         Applying a patch from Michal Moskal <malekith@nemerle.org>.
21760
21761         * class.c (mono_dup_array_type): New public method.
21762         (mono_metadata_signature_deep_dup): New public method.
21763         (dup_type): Correctly duplicate array and function types.
21764
21765 2005-09-05  Martin Baulig  <martin@ximian.com>
21766
21767         Applying a patch from Michal Moskal <malekith@nemerle.org>.
21768
21769         * reflection.c (get_default_param_value_blobs): Handle generic types
21770         and generic methods.
21771
21772 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
21773
21774         * class.c: Fixed error reporting (method/class were inversed) for 
21775         inheritance demands.
21776         * security-manager.c|h: Added the AppDomain when calling the managed
21777         System.Security.SecurityManager.InheritanceDemand method.
21778
21779 2005-09-01  Raja R Harinath  <rharinath@novell.com>
21780
21781         * reflection.c (encode_marshal_blob): 'marshaltype' and
21782         'marshaltyperef' are alternate sources for the custom marshaler
21783         name.
21784
21785 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
21786
21787         * class.c: fix creation of array classes with rank == 1
21788         (patch by Ankit Jain <jankit@novell.com>).
21789
21790 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
21791
21792         * object.c: fix check for creating the bound data for arrays vs
21793         szarrays.
21794
21795 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21796
21797         * object.c: configuration file name is now based on the executable name,
21798         not the image name. Fixes bug #75931.
21799
21800 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
21801
21802         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
21803         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
21804
21805 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
21806
21807         * rand.c: Use wincrypt.h instead of WinCrypt.h.
21808
21809 2005-08-24  Ankit Jain  <jankit@novell.com>
21810             Raja R Harinath  <rharinath@novell.com>
21811
21812         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
21813           called by it recursively.
21814           (mono_class_init): Remove special case in pending_init handling, since it's
21815           superseded by the fix to mono_class_from_typeref.
21816
21817 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
21818
21819         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
21820         BROKEN_THREAD_START stuff.
21821
21822 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
21823
21824         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
21825         trampoline.
21826
21827         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
21828         
21829         * object.c (mono_delegate_ctor): Replace the original function address with
21830         a delegate trampoline.
21831
21832 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
21833
21834         * icall.c: add boolean argument to base64_to_byte_array and 
21835         InternalFromBase64String to control whether a whitespace-only string
21836         is allowed (or should casue a FormatException to be thrown). We need
21837         this as the behavior has changed between MS.NET 1.x and 2.0, and we
21838         to match the MS behaviour in both profiles.
21839         * appdomain.c: Bump corlib version.
21840
21841 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
21842
21843         This patch implements a big portion of publisher policy
21844         support, used to bind assembly versions and redirect
21845         one assembly from version A to version B.
21846
21847         * assembly.c:
21848         New GSList loaded_assembly_bindings, for storing the cached
21849         assembly bindings.
21850         (assembly_binding_maps_name): New static function for checking if a 
21851         assembly binding information maps an assembly name.
21852         (mono_assembly_binding_info_free): New function for freeing
21853         assembly binding information resources.
21854         (get_publisher_policy_info): New static function for retrieving 
21855         assembly binding information from a MonoImage.
21856         (compare_versions): New static function for comparing an assembly
21857         binding information data and the version of an assembly name.
21858         (check_policy_versions): New static function for checking if an
21859         assembly binding info mapping an assembly name is valid for it.
21860         (mono_assembly_load_publisher_policy): New static function for
21861         loading the 'policy.major.minor.MyAssembly' image for an assembly
21862         with an assembly name 'aname'.
21863         (mono_assembly_bind_version): New static function for updating
21864         assembly redirection.
21865         (mono_assembly_apply_binding): New static function for applying
21866         assembly binding.
21867         (search_binding_loaded): New static function for searching 
21868         loaded assembly binding infos in the cache domain.
21869         (mono_assembly_load_full): Don't apply assembly binding for
21870         reflection only assemblies.
21871
21872         * metadata-internals.h: Add MonoAssemblyBindingInfo,
21873         which contains information about assembly binding. Also
21874         declare signature for mono_config_parse_publisher_policy ()
21875         function, used to retrieve pub policy info.
21876         
21877         * mono-config.c:
21878         (publisher_policy_start): New static function used to parse publisher 
21879         policy config files.
21880         (publisher_policy_parser): New static MonoParseHandler containing 
21881         the functions used when parsing config files.
21882         (mono_config_parse_publisher_policy): New function for parsing
21883         publisher policy files.
21884         
21885 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
21886
21887         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
21888
21889         * marshal.c (mono_delegate_free_ftnptr): Ditto.
21890
21891         * object.c (mono_get_addr_from_ftnptr): New helper function.
21892
21893         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
21894
21895         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
21896
21897 2005-08-19  Dick Porter  <dick@ximian.com>
21898
21899         * threads.c, threads.h, appdomain.c, appdomain.h,
21900         profiler-private.h, monitor.c, object.c, object-internals.h,
21901         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
21902         store the thread ID, so it can hold a 64 bit value if needed.
21903
21904 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
21905
21906         * reflection.c (mono_reflection_create_dynamic_method): Store the
21907         handle class into the method references as well so ldtoken works in
21908         dynamic methods.
21909
21910         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
21911         types.
21912
21913 2005-08-19  Ankit Jain <jankit@novell.com>
21914
21915         Fix #75847.
21916         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
21917           here rather than using the method signature of a arbitrary function
21918           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
21919           two arguments.
21920           Hack done with Harinath.
21921
21922 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21923
21924         * threadpool.c: disable printing stack traces when we get a exception
21925         in a threadpool thread. I need to do more testing to figure out which
21926         cases actually print this. Fixes bug #75828.
21927
21928 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21929
21930         * icall.c: there might be ignored whitespace after the last '='. This
21931         fixes length computation and bug #75840.
21932
21933 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
21934
21935         * assembly.c (mono_assembly_load_full): Consider .exe extension as
21936         well. Fixes #75809.
21937
21938         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
21939         #75784.
21940         
21941         * reflection.c (create_custom_attr_data): Ditto.
21942
21943 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
21944
21945         * locales.c, culture-info.h : removed RegionLCIDMap.
21946         * culture-info-tables.h : regenerated.
21947
21948 2005-08-16  Martin Baulig  <martin@ximian.com>
21949
21950         * class.c (mono_type_get_name_recurse): Small fix.
21951
21952 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
21953
21954         * locales.c : indentation fixie.
21955
21956 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
21957
21958         * object-internals.h,
21959           locales.h,
21960           locales.c,
21961           culture-info.h,
21962           icall.c : added RegionInfo table support.
21963         * culture-info-table.h : regenerated for region support.
21964
21965 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
21966
21967         * reflection.c (resolve_object): handle all kinds of MonoMethod
21968         including generic ones
21969
21970 2005-08-12  Ankit Jain <jankit@novell.com>
21971
21972         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
21973           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
21974
21975 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
21976
21977         * process.c: Don't close a thread handle when it's NULL. This is a
21978         workaround for bug #75733.
21979
21980 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
21981
21982         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
21983
21984 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
21985
21986         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
21987
21988 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
21989
21990         * threadpool.c: if a work item in the thread pool has a callback that
21991         catches a exception, don't propagate it after invoking the callback.
21992         Fixes bug #75336.
21993
21994 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
21995
21996         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
21997
21998         * class-internals.h (MonoCachedClassInfo): Add some new fields.
21999
22000         * class.c (mono_class_init): Load field info lazily in the AOT case.    
22001
22002         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
22003
22004 2005-08-03  Ankit Jain  <jankit@novell.com>
22005
22006         Fix #75683.
22007         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
22008           PInvoke calling convention is 0.
22009
22010 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
22011
22012         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
22013         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
22014
22015 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
22016
22017         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
22018         to handle threads not started by the GC (patch by Michael Meeks
22019         <michael.meeks@novell.com>).
22020
22021 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
22022
22023         * reflection.c: Make buffer used in emitting types larger for some
22024         big generic types (patch by Michal Moskal).
22025
22026 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
22027
22028         * mono-debug.c: Fix some (not all) alignment problems.
22029
22030 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22031
22032         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
22033         Invoke mono_image_load_from_data_full passing the refonly
22034         parameter.
22035
22036         * assembly.c
22037         (mono_assembly_open_from_bundle): Add the refonly argument, 
22038         in order to pass it to other methods it calls to.
22039         (do_mono_assembly_open): Add the refonly argument, in order 
22040         to pass it to other methods it calls to.
22041         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
22042         the refonly parameter to it.
22043
22044         * image.c: Add loaded_images_refonly_hash and
22045         loaded_images_refonly_guid_hash to cache the reflection
22046         only loaded images.
22047         (mono_images_init): Initialize the hash tables used for
22048         caching the reflection only images.
22049         (load_modules): Invoke mono_image_open_full passing the refonly
22050         parameter to load the modules the correct way.
22051         (build_guid_table): Add the refonly argument, to re-build the 
22052         correct hash table.
22053         (do_mono_image_open): Added the refonly argument, in order to
22054         define it for the loaded image.
22055         (mono_image_loaded_full): New function, which receives an
22056         additional parameter to look for the image in the refonly or
22057         non-refonly section.
22058         (mono_image_loaded): Updated, using mono_image_loaded_full.
22059         (mono_image_loaded_by_guid_full): The same case that happens
22060         with mono_image_loaded_full.
22061         (mono_image_loaded_by_guid): Likewise.
22062         (register_image): Use the ref_only variable inside MonoImage
22063         to decide in which hash table store the current image.
22064         (mono_image_open_from_data_full): Rename
22065         mono_image_open_from_data to mono_image_open_from_data_full,
22066         adding the refonly argument, to define the ref_only variable 
22067         inside MonoImage.
22068         (mono_image_open_from_data): Return 
22069         mono_image_open_from_data_full.
22070         (mono_image_open_full): Rename mono_image_open to
22071         mono_image_open_full, receiving the new refonly argument,
22072         to pass it to inner methods.
22073         (mono_pe_file_open): Update this function, to open
22074         a MonoImage as a non-refonly image.
22075         (mono_image_close): Use the refonly variable inside
22076         MonoImage to remove the image from the correct caches.
22077
22078         * image.h: Add the signatures of mono_image_open_full,
22079         mono_image_open_from_data_full, mono_image_loaded_full,
22080         mono_image_loaded_by_guid_full.
22081
22082         * metadata-internals.h: Add the ref_only field to 
22083         MonoImage.
22084         
22085 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22086
22087         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
22088         Fix the last behavior, which used to load the assemblies and
22089         extract MonoReflectionAssemblyName information, instead of
22090         extract it from the metadata tables. Needed for Reflection
22091         Only assemblies.
22092         
22093 2005-07-29  Martin Baulig  <martin@ximian.com>
22094
22095         * mono-debug-debugger.c
22096         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
22097         not initialized.
22098
22099         * mono-debug.c
22100         (mono_debug_address_from_il_offset): Check whether we have
22101         debugging support before attempting to take the lock.
22102         (mono_debug_source_location_from_address): Likewise.
22103         (mono_debug_source_location_from_il_offset): Likewise.
22104         (mono_debug_il_offset_from_address): Likewise.
22105         (mono_debug_address_from_il_offset): Likewise.
22106
22107 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
22108
22109         * class.c (mono_class_from_name_case): Add support for dynamic images.
22110         Fixes #75650.
22111
22112         * object.c (mono_class_compute_gc_descriptor): Add a workaround
22113         for #75479.
22114
22115 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
22116         
22117         * reflection.c (mono_method_get_object): Fix warning.
22118
22119 2005-07-28  Martin Baulig  <martin@ximian.com>
22120
22121         * mono-debug.c
22122         (mono_debug_add_wrapper): Also write the wrapper type.
22123
22124 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
22125
22126         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
22127         
22128         * class.c (mono_class_init): Avoid reading nested classes if the AOT
22129         data indicates the class has none.
22130
22131 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
22132
22133         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
22134         loader lock with the debugger lock. Prevents deadlocks for beagle.
22135
22136         Beagle can now run on an smp box for a weekend without any
22137         issues. Woohoo!
22138
22139 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
22140
22141         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
22142         in a module. Fixes #75629.
22143
22144 2005-07-26  Martin Baulig  <martin@ximian.com>
22145
22146         * mono-debug.c (mono_debug_add_wrapper): New static method.
22147         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
22148         interncall or a wrapper.
22149
22150         * mono-debug.h (MonoDebugWrapperData): New public typedef.
22151         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
22152         (MONO_DEBUGGER_VERSION): Bump to 51.
22153
22154         * mono-debug-debugger.c
22155         (mono_debugger_add_type): Removed this empty function.
22156         (mono_debugger_add_method): Likewise.
22157
22158 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
22159
22160         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
22161         before accessing method->slot.
22162
22163 2005-07-21  Jb Evain  <jbevain@gmail.com>
22164
22165         * reflection.c (method_encode_clauses/class): Handle filters clauses.
22166         Fixes #75010.
22167
22168 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
22169
22170         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
22171         #75587.
22172
22173 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
22174
22175         * image.h image.c: Add mono_image_get_guid () API function.
22176
22177 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
22178
22179         There were issues when multiple threads tried to load
22180         assemblies. A deadlock was created between assemblies_mutex and
22181         mono_domain_assemblies_lock. This fixes the issue by making the
22182         assembly ref counting be lock free. See bug 75586.
22183         
22184         * image.c (mono_image_close): The add ref function here was using
22185         Interlocked operations while the unref was using a mutex and a
22186         --. I don't think this was ever a bug that would be exposed in a
22187         non-pendantic way (ie, by an embedder doing a ref on one thread
22188         and an unref on another), but for the sake of correctness, this is
22189         now Interlocked.
22190
22191         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
22192         (mono_assembly_load_reference): Call mono_assembly_addref rather
22193         than touching the refcount ourselves.
22194         (mono_assembly_close): Use InterlockedDecrement to unref the
22195         assembly. Don't acquire the lock unless it is actually needed.
22196
22197 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
22198
22199         * class.c (mono_class_layout_fields): Fix calculation of has_references
22200         for generic types.
22201
22202 2005-07-12  Martin Baulig  <martin@ximian.com>
22203
22204         Applying a patch from Michal Moskal <malekith@nemerle.org>.
22205
22206         * metadata.c
22207         (mono_type_hash): Provide better hashing for generic instances.
22208         (mono_generic_inst_hash): Improve hashing.
22209         (mono_generic_class_hash): Likewise.
22210
22211         * reflection.c (mymono_metadata_type_hash): Improve hashing for
22212         generic instances.
22213
22214 2005-07-12  Martin Baulig  <martin@ximian.com>
22215
22216         * reflection.c (mono_reflection_create_runtime_class): Remove the
22217         hack for generic type definitions and non-`Run' assemblies.
22218         (mono_reflection_bind_generic_parameters): Also use
22219         `klass->wastypebuilder' to check for TypeBuilders.
22220
22221 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
22222
22223         * class.c (mono_class_layout_fields): Fix calculation of has_references
22224         for generic types.
22225
22226         * class.c (inflate_generic_class): Fix a leak.
22227         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
22228         for generic types.
22229
22230 2005-07-11  Martin Baulig  <martin@ximian.com>
22231
22232         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
22233         on error.
22234
22235 2005-07-11  Martin Baulig  <martin@ximian.com>
22236
22237         * loader.c (find_method): Also lookup in
22238         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
22239
22240 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
22241
22242         * appdomain.c (mono_domain_unload): Don't free the error message
22243         before passing it to mono_get_exception_...
22244
22245         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
22246         
22247 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
22248
22249         * threads.c: try to better guess an available RT signal (bug #75387).
22250
22251 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
22252
22253         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
22254         and CACHE_OBJECT.
22255
22256 2005-07-07  Martin Baulig  <martin@ximian.com>
22257
22258         * class.c (mono_type_get_name_full): Return NULL for
22259         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
22260         fixes #75408.
22261
22262 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
22263
22264         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
22265         exit the appdomain as well being aborted.
22266
22267         * threadpool.c: Create all threadpool threads inside the root appdomain, and
22268         change back to the root domain after calling managed code. This enables
22269         appdomains using threadpools to be unloaded.
22270
22271 2005-07-07  Martin Baulig  <martin@ximian.com>
22272
22273         * class-internals.h
22274         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
22275         into `MonoDynamicGenericClass' since we only need it for dynamic
22276         types.
22277
22278         * reflection.c (mono_class_bind_generic_parameters): We don't need
22279         to compute the `parent' here.
22280
22281 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
22282
22283         * culture-info-table.h : regenerated.
22284
22285 2005-07-06  Martin Baulig  <martin@ximian.com>
22286
22287         * icall.c
22288         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
22289
22290         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
22291
22292 2005-07-06  Martin Baulig  <martin@ximian.com>
22293
22294         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
22295         we're doing a signature-only comparision; fixes #74945.
22296
22297 2005-07-06  Martin Baulig  <martin@ximian.com>
22298
22299         * class-internals.h (MonoGenericClass): Moved some things out into
22300         a new `MonoInflatedGenericClass' type.  
22301         (MonoInflatedGenericClass): New type; the `klass' of a
22302         `MonoGenericClass' is now computed lazyly in
22303         mono_get_inflated_generic_class().      
22304
22305         * class.c (mono_get_inflated_generic_class): New public function.
22306         (mono_class_inflate_generic_method): Removed the unused
22307         `MonoClass *' argument.
22308         (setup_generic_vtable): Don't call mono_get_inflated_method() on
22309         all the methods.
22310         (mono_class_create_generic): Make this static and merge it with
22311         mono_class_create_generic_2(); we're now called automatically from
22312         mono_get_inflated_generic_class().
22313
22314         * loader.c (mono_method_signature): Call
22315         mono_get_inflated_method() here.
22316
22317 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
22318
22319         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
22320         type of fields with RVA.
22321
22322         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
22323         for this pseudo class.
22324         (my_mono_class_from_generic_parameter): Likewise.
22325         (mono_class_init): Allow interfaces to have cctors.
22326
22327 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
22328
22329         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
22330         lazily for AOT methods.
22331
22332 2005-07-05  Martin Baulig  <martin@ximian.com>
22333
22334         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
22335         returns FALSE for a successful match, not TRUE.
22336
22337 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
22338
22339         * loader.c (mono_method_get_index): Optimize this a bit.
22340
22341 2005-07-04  Martin Baulig  <martin@ximian.com>
22342
22343         * class.c
22344         (class_compute_field_layout): Move the check for generic type
22345         definitions into mono_class_layout_fields().  Fixes #74684.
22346         (mono_class_from_generic_parameter): Correctly compute
22347         `klass->parent'; fixes #75457.
22348
22349         * reflection.c (register_assembly, register_module): Make sure
22350         `domain->rejobject_hash' is already created.
22351
22352 2005-07-02  Martin Baulig  <martin@ximian.com>
22353
22354         * class-internals.h
22355         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
22356         `MonoDynamicGenericClass'.      
22357
22358 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
22359
22360         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
22361         returned by a field getter is null, since null is a valid value.
22362
22363 2005-07-01  Martin Baulig  <martin@ximian.com>
22364
22365         * reflection.c (mono_reflection_generic_class_initialize): Update
22366         the `dgclass->fields [i].parent' to the correct class.
22367         (mono_image_get_fieldref_token): Use the declaring type, not the
22368         reflected type.
22369
22370 2005-07-01  Martin Baulig  <martin@ximian.com>
22371
22372         * loader.c (find_method): Also look in the interfaces; fixes #75429.
22373
22374 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
22375
22376         * threads.c (thread_cleanup): assert that thread != NULL
22377         (wait_for_tids_or_state_change): We were using the wrong variable
22378         when accessing wait->threads. `i' was always out of the bounds of
22379         the array.
22380
22381 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22382
22383         * loader.c: map user32 and kernel32 to libMonoSupportW
22384
22385 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
22386
22387         * appdomain.c (unload_thread_main): Mark this as WINAPI.
22388
22389 2005-06-28  Martin Baulig  <martin@ximian.com>
22390
22391         * loader.c (method_from_methodspec): Fix #75334.
22392
22393 2005-06-28  Martin Baulig  <martin@ximian.com>
22394
22395         Fix #74953 - Arrays now implement the generic IList<T> interface
22396         on the 2.0 platform.
22397
22398         * class-internals.h (MonoDefaults): Added `generic_array_class'.
22399
22400         * reflection.c (mono_class_bind_generic_parameters): New public
22401         function; similar to mono_reflection_bind_generic_parameters(),
22402         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
22403
22404         * domain.c (mono_init_internal): Try to initialize.
22405         `mono_defaults.generic_array_class' here; this'll only succeed if
22406         we're using the 2.0 corlib.
22407
22408         * icall.c
22409         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
22410         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
22411         (mono_lookup_internal_call): Added support for nested classes.
22412
22413         * loader.c
22414         (mono_get_method_from_token): Set `result->signature->pinvoke' if
22415         we're an interncall and have generic arguments.
22416
22417         * class.c
22418         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
22419         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
22420         instance of System.Array.InternalArray<T> for arrays, so they
22421         implement the generic IList<T> interface.
22422
22423 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
22424
22425         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
22426         (chastamar@yahoo.com). Fixes #75374.    
22427
22428 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
22429
22430         * culture-info-table.h: regenerated.
22431
22432 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22433
22434         * icall.c: handle spaces correctly for base64 strings.
22435
22436 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
22437
22438         * *.c: Kill some warnings.
22439
22440 2005-06-23  Duncan Mak  <duncan@novell.com>
22441
22442         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
22443         that this builds on Solaris 10 (x86).
22444
22445 2005-06-23  Martin Baulig  <martin@ximian.com>
22446
22447         * class.c
22448         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
22449         generic type definitions.
22450
22451 2005-06-23  Martin Baulig  <martin@ximian.com>
22452
22453         Fix #75331.
22454
22455         * metadata.c (mono_class_get_overrides): Renamed to
22456         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
22457         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
22458         pass it to mono_get_method_full().
22459
22460 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
22461
22462         * reflection.c (mono_reflection_create_runtime_class): take the
22463         mono_domain_lock in this method. Prevents deadlocks
22464
22465 2005-06-22  Martin Baulig  <martin@ximian.com>
22466
22467         * loader.c (method_from_methodspec): Fix #75330.
22468
22469 2005-06-22  Martin Baulig  <martin@ximian.com>
22470
22471         * reflection.c (type_get_qualified_name): Use
22472         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
22473         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
22474         argument; use it if we don't have an assembly name.
22475
22476 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
22477
22478         * object.c: In mono_message_init, set "copy out" flag for in
22479         parameters with the [Out] flag.
22480
22481 2005-06-21  Martin Baulig  <martin@ximian.com>
22482
22483         * class.c
22484         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
22485         and MONO_TYPE_PTR.
22486
22487 2005-06-21  Martin Baulig  <martin@ximian.com>
22488
22489         * class.c (mono_class_init): Don't initialize `class->fields' for
22490         generic instances since they're initialized again in
22491         compute_field_layout(). 
22492         (compute_field_layout): Set the field's `generic_info' here; fix
22493         #75320. 
22494
22495 2005-06-21  Martin Baulig  <martin@ximian.com>
22496
22497         * class-internals.h
22498         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
22499
22500         * metadata.c (mono_metadata_generic_method_equal): Also
22501         distinguish the `generic_class'; fixes #75334.
22502
22503 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22504
22505         * domain.c:
22506         * appdomain.c:
22507         * domain-internals.h:
22508         * reflection.c: 'domain_assemblies' field is now protected by its own
22509         lock. Don't call into managed code to run the AssemblyLoad event if we
22510         now there are no registered delegates for it.
22511
22512 2005-06-20  Martin Baulig  <martin@ximian.com>
22513
22514         * class.c (mono_class_is_assignable_from): Use a custom version of
22515         mono_class_has_parent() to make things work for generic instances;
22516         fix #75300.
22517
22518 2005-06-20  Martin Baulig  <martin@ximian.com>
22519
22520         * loader.c (method_from_methodspec): Apply a patch from
22521         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
22522
22523 2005-06-20  Martin Baulig  <martin@ximian.com>
22524
22525         * class.c (mono_class_init): Reverted Zoltan's last change; it
22526         breaks generics.
22527
22528 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
22529
22530         * threads.c (wait_for_tids_or_state_change): Add missing locking.
22531
22532 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22533
22534         * socket-io.c: fix the index in the socket array for writable/error
22535         sockets. Fixes bug #75306.
22536
22537 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
22538
22539         * class.c (mono_class_init): Allow interfaces to have static ctors.
22540
22541 2005-06-17  Martin Baulig  <martin@ximian.com>
22542
22543         * loader.c (method_from_methodspec): Use `context->container' when
22544         parsing the `gmethod->inst'.
22545
22546 2005-06-17  Martin Baulig  <martin@ximian.com>
22547
22548         * class.c (mono_type_get_name_recurse): Don't add the assembly
22549         name for type arguments.
22550
22551 2005-06-15  Martin Baulig  <martin@ximian.com>
22552
22553         * reflection.c (mono_image_get_inflated_method_token): Encode
22554         correct klass; fixes #75260.
22555
22556 2005-06-13 Michal Moskal <malekith@nemerle.org>
22557
22558         * icall.c: Make GetCorrespondingMethod/Constructor take
22559         MonoReflectionMethod method not MonoMethod. Removed
22560         MonoType.GetCorrespondingField, and make
22561         MonoGenericType.GetCorrespondingField take name not
22562         MonoClassField.
22563
22564 2005-06-13  Michal Moskal <malekith@nemerle.org>
22565
22566         * reflection.c (field_encode_signature, encode_locals):
22567          Make sizes of buffers for types larger (for big generic types).
22568          (create_generic_typespec,
22569          mono_reflection_sighelper_get_signature_local,
22570          mono_reflection_sighelper_get_signature_field):
22571          Add asserts for too small buffers.
22572
22573 2005-06-15  Martin Baulig  <martin@ximian.com>
22574
22575         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
22576         if our parent is not a dynamic type.
22577
22578 2005-06-15  Martin Baulig  <martin@ximian.com>
22579
22580         * class-internals.h (MonoTypeNameFormat): New enum.
22581
22582         * class.c
22583         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
22584         (mono_type_get_full_name): Removed.
22585         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
22586         argument instead of the boolean's.
22587
22588         * icall.c (ves_icall_System_MonoType_getFullName):
22589         Added `gboolean assembly_qualified'.    
22590
22591         * reflection.h
22592         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
22593
22594         * reflection.c (mono_reflection_parse_type): Parse the new type
22595         name format.
22596
22597 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22598
22599         * icall.c: no need to convert from utf16 to utf8 and then back again
22600         after the call to GetLogicalDrives.
22601
22602 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22603
22604         * icall.c: frombase64. Fix problems exposed by new tests.
22605
22606 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22607
22608         * icall.c: added internal calls for converting char [] and strings in
22609         base64 into byte [].
22610
22611 2005-06-10  Martin Baulig  <martin@ximian.com>
22612
22613         * class.c (mono_class_create_generic_2): Read the nested classes
22614         from the metadata rather than from `gklass->nested_classes' since
22615         `gklass' might not be initialized yet.
22616
22617 2005-06-09  Duncan Mak  <duncan@novell.com>
22618
22619         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
22620         all public headers. Fixes #74919.
22621
22622 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
22623
22624         * domain.c: The key for proxy_vtable_hash is now a pointer
22625         array. Added new GHashFunc and GCompareFunc functions for this.
22626
22627         * class.h: The list of interfaces in MonoRemoteClass is known in
22628         advance and can't grow (we create a new MonoRemoteClass if needed),
22629         so now the interface array can be allocated together with
22630         MonoRemoteClass.
22631         
22632         * object.c: Added a new method create_remote_class_key.
22633         Fixed mono_remote_class so it does not depend on
22634         mono_upgrade_remote_class.
22635         Removed extend_interface_array.
22636         Added new method clone_remote_class(), which makes a copy of a remote
22637         class and adds a new interface or class to it.
22638         mono_upgrade_remote_class() now creates a new remote class (or gets
22639         it from the cache) if an vtable upgrade is needed. In this way
22640         we make sure that other objects sharing the same remote class
22641         don't get the new vtable with unwanted interfaces.
22642         
22643         * object-internals.h:
22644         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
22645         
22646         * marshal.c: Track changes in mono_upgrade_remote_class().
22647
22648 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
22649         * icall.c: Add runtime methods for obtaining members of inflated
22650         class, which were created from supplied non-inflated members. It
22651         is used in internal Get{Method,Constructor,Field} methods in
22652         System.Type
22653
22654 2005-06-09  Martin Baulig  <martin@ximian.com>
22655
22656         * reflection.c
22657         (mono_reflection_bind_generic_method_parameters): Fix #75169.
22658
22659 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22660         * reflection.c (mono_image_basic_init): Define
22661         Version in MonoDynamicAssembly. 
22662         
22663 2005-06-08  Martin Baulig  <martin@ximian.com>
22664
22665         Fix #75136.
22666
22667         * loader.c
22668         (mono_method_signature_full): New public method; takes a
22669         `MonoGenericContext *'.
22670         (find_method): Use mono_method_signature_full() and pass the
22671         klass'es context to it.
22672
22673         * class.c (mono_class_is_inflated_method): Use
22674         mono_method_signature_full() and pass the context to it.
22675
22676 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
22677
22678         * object.c: add proper locking in mono_remote_class_vtable(),
22679         fixes possible memory corruption.
22680
22681 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
22682
22683         * marshal.c (mono_remoting_marshal_init): set
22684         initialized after initialization.
22685
22686 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
22687
22688         * locales.c : hush.
22689
22690 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
22691
22692         * object.c (extend_interface_array): fix really silly
22693         memory corrupting / comparison bug.
22694
22695 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22696
22697         * reflection.c: Functions added to support the creation
22698         of CustomAttributeData, which includes Attribute data
22699         used by ReflectionOnly methods.
22700
22701         * reflection.h:  mono_reflection_get_custom_attrs_data and
22702          mono_custom_attrs_data_construct added (functions exposed).
22703
22704          * icall.c: Added mono_reflection_get_custom_attrs_data
22705          as icall.
22706         
22707 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
22708
22709         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
22710         lupus's request.
22711
22712 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
22713
22714         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
22715
22716         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
22717         dynamic DllImportAttribute.
22718
22719         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
22720         dynamic DllImportAttribute.
22721
22722         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
22723         Fixes #75162.
22724
22725 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22726
22727         * threads.c: avoid segfault when an unstarted thread is aborted.
22728
22729 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
22730
22731         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
22732         Returns the name and version of the runtime for reporting.
22733
22734 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22735
22736         * appdomain.c: bump corlib version.
22737         * object-internals.h: new field in MonoReflectionAssembly.
22738
22739 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22740
22741         * object-internals.h: Carlos forgot to add this field.
22742
22743 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
22744
22745         * icall.c: Added create_version to create instances
22746         of Version of MonoReflectionAssemblyName. This change helps
22747         the AssemblyName tests to keep running fine.
22748         
22749 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
22750   
22751         * object.c (mono_method_return_message_restore): A somehow less
22752         intrusive fix for #75138.
22753
22754 2005-06-03  Raja R Harinath  <rharinath@novell.com>
22755
22756         * object.c (mono_method_return_message_restore): Fix computation
22757         of expected number of out args.
22758
22759 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
22760
22761         * reflection.c (mono_image_get_method_info): Fix the case when the
22762         charset is empty.
22763
22764 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
22765
22766         * object.c: Added missing null check in
22767           mono_method_return_message_restore.
22768
22769 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
22770
22771         * reflection.c (mono_image_get_method_info): Handle the case when
22772         dllentry is empty.
22773
22774 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
22775
22776         * object.c: When creating the vtable for a proxy, take into account
22777         all inherited interfaces, not only the ones registered in
22778         iclass->interfaces. This fixs bug #74996.
22779         Also, in mono_method_return_message_restore, verify that the array
22780         of out args has the expected lengh.
22781
22782 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22783
22784         * socket-io.c: update the timeout in Poll when the call is interrupte.
22785
22786 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22787
22788         * socket-io.c: support abort/suspend in Select_internal after last
22789         change.
22790
22791 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22792
22793         * threadpool.c: remove warning.
22794
22795 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22796
22797         * icall.c:
22798         * socket-io.[ch]: Select_internal uses poll() now when available, thus
22799         removing the 1024 limit from select(). Runtime part of the fix for
22800         bug #71203.
22801
22802 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22803
22804         * socket-io.c: when resolving the addresses for the same
22805         host returned by gethostname(), get the local IPs from the interface
22806         list. Loopback addresses are discarded if the are interfaces up with
22807         non-loopback ones. Fixes bug #63265.
22808
22809 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
22810
22811         * appdomain.c, verify.c, object-internals.h, reflection.c:
22812         bumped corlib number to 36, and added new extra_flags field
22813         to ReflectionMethodBuilder and friends.  Fixes #75060.
22814
22815 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
22816
22817         * gc.c: register a new weak link only if the object is non-null
22818         (fixes bug#75047).
22819
22820 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
22821
22822         * culture-info.h : short time pattern too.
22823
22824 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
22825
22826         * culture-info.h : expand long time pattern string length.
22827
22828 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
22829
22830         * culture-info-table.h : update (more French date format; #72788).
22831
22832 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
22833
22834         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
22835         the method is static. Fixes #75029.
22836
22837 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
22838
22839         * reflection.c: Update the table_idx field of method builders after
22840         saving the module, since it can change. This is a workaround for
22841         bug #74914. 
22842
22843 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
22844
22845         * culture-info-table.h : update (additional French date format).
22846
22847 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
22848
22849         * icall.c (ves_icall_type_Equals): Revert last change.
22850         
22851         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
22852
22853         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
22854
22855 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
22856
22857         * class-internals.h: Added executioncontext_class field to 
22858         MonoDefaults structure.
22859         * domain.c: Cache System.Threading.ExecutionContext class in 
22860         mono_defaults.
22861         * object.c: Capture the ExecutionContext for asynchroneous calls in
22862          mono_async_result_new.
22863         * object-internals.h: Added execution_context and original_context 
22864         fields to MonoAsyncResult. Added execution_context to MonoThread.
22865         * security-manager.c|.h: Added mono_get_context_capture_method to 
22866         return the capture method (if required by the security manager or by
22867         the framework version used).
22868         * threadpool.c: Apply capture (if present) ExecutionContext in 
22869         mono_async_invoke and revert to original context after it completes.
22870
22871 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
22872
22873         * culture-info-table.h : updated (real hacky solution for zh-CHT).
22874
22875 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
22876
22877         * culture-info-table.h : zh-CHT related workaround.
22878
22879 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
22880
22881         * marshal.c (emit_marshal_custom): Add some error checking and call the
22882         methods in the ICustomMarshaler interface. Fixes #74875.
22883         
22884         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
22885         native->managed wrappers.
22886
22887 2005-05-12  Martin Baulig  <martin@ximian.com>
22888
22889         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
22890         here and use the loader lock.
22891
22892         * mono-debug.c: Properly lock when the debugger is not attached.
22893         (mono_debug_init): Release the initial lock if we're not running
22894         in the debugger.
22895
22896 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
22897
22898         * marshal.c (emit_marshal_custom): Pass through NULL values without
22899         calling the custom marshalling routines.
22900
22901         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
22902         conversion in structures. Fixes #74882.
22903
22904 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
22905
22906         * culture-info-table.h : zh-* cultures were missing.
22907
22908 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
22909
22910         * threads.c: Added a new event background_change_event which is signaled
22911         when a thread changes its background mode.
22912         Moved here several checks previously done in managed code. The checks
22913         require the thread lock, and using the thread lock in managed code
22914         can result in deadlocks.
22915         Merged Start_internal and Thread_internal into a single method. Now 
22916         Thread_internal does all work of creating and starting a thread.
22917         Added icalls for setting and getting the state of the object. Moved from
22918         managed code to avoid locking there.
22919         Added wait_for_tids_or_state_change() which is called instad of
22920         wait_for_tids when waiting for non-backround threads to end. This method
22921         will return if one of the threads ends or the background_change_event
22922         is signaled.
22923         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
22924         the background mode. This method signals the background_change_event
22925         event.
22926         * icall.c:
22927         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
22928         removed Start_internal.
22929         
22930 2005-05-11  Martin Baulig  <martin@ximian.com>
22931
22932         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
22933         to order of some fields to get proper alignment on 64-bit machines.
22934
22935 2005-05-11  Martin Baulig  <martin@ximian.com>
22936
22937         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
22938         changes as they're broken and completely fuck up the debugger.
22939
22940         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
22941
22942 2005-05-10  Martin Baulig  <martin@ximian.com>
22943
22944         * reflection.c (mono_reflection_generic_class_initialize): Don't
22945         call mono_class_setup_parent() here.
22946
22947 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22948
22949         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
22950         send/receive timeout use an integer in milliseconds. We were using a
22951         struct timeval.
22952
22953 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22954
22955         * locales.c:
22956         (internal_get_cultures): reserve the first slot of the array for the
22957         InvariantCulture, which will be filled in managed code.
22958
22959 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
22960
22961         * reflection.c (mono_image_fill_module_table): Initialize the
22962         GENERATION field as well.
22963
22964 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22965
22966         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
22967         Monitor.Enter on the object.
22968
22969 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
22970
22971         * threads.c: Enable the wait for running threads when exiting.
22972         * icall.c: Suspend all threads before exiting.
22973
22974 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
22975
22976         * assembly.c (mono_assembly_load_reference): Fix warning.
22977
22978 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22979
22980         * threadpool.c: changed the default number of threads per cpu. From now
22981         on, the default will be 20 + (5 * number of cpus) instead of 50.
22982
22983 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
22984
22985         * loader.c (mono_method_get_signature_full): Add locking here.
22986
22987 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
22988
22989         * appdomain.c: Moved methods for parsing and freeing assembly
22990         names to assembly.c.
22991         * assembly.c, domain-internals.h: Created public methods for parsing
22992         assembly names. Fixed mono_assembly_load_with_partial_name:
22993         it now finds the best match, taking into account the version,
22994         token and culture specified in the partial name. Also return
22995         the latest version if no version information is specified.
22996
22997 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
22998
22999         * threadpool.c: replace check for SocketAsyncCall class.
23000
23001 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23002
23003         * threadpool-internals.h:
23004         * Makefile.am: added threadpool-internals.h
23005
23006         * threadpool.c: call mono_unhandled_exception on exceptions not handled
23007         that happen in threadpool threads (tested on MS).
23008         (mono_thread_pool_remove_socket): new function that dispatch any pending
23009         AIO call on a socket that is closing. By now only epoll really needs it,
23010         as select/poll wake up when the socket closes.
23011
23012
23013         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
23014
23015 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
23016
23017         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
23018
23019 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
23020
23021         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
23022
23023 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
23024
23025         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
23026         has an abort request, convert it into a suspend request.
23027
23028 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
23029
23030         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
23031         warning for the usage of `UnmanagedFunctionPointerAttribute' which
23032         is not supported yet.
23033
23034 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23035
23036         * image.c: register assemblies loaded from data (bundles) in the loaded
23037         assemblies hash. Fixes bug #74772.
23038
23039 2005-04-29  Martin Baulig  <martin@ximian.com>
23040
23041         * class.c (mono_type_get_name_recurse): Update to the new naming
23042         schema from the latest .NET 2.x beta2.
23043         (mono_class_setup_vtable_general): If we're a generic instance,
23044         copy the vtable from our generic type definition and inflate all
23045         the methods in it.
23046
23047         * loader.c (find_method): Update to the new naming schema from the
23048         latest .NET 2.x beta2.
23049
23050 2005-04-29  Raja R Harinath  <harinath@gmail.com>
23051
23052         * class.c (mono_class_init): Add a mono_loader_unlock to the
23053         #74734 fix.
23054
23055 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
23056
23057         * icall.c (ves_icall_System_Environment_Exit): Remove the 
23058         suspend_all_other_threads () call for the time being, since it can hang.
23059
23060         * threads.c (mono_thread_manage): Similarly, disable the waiting for
23061         the background threads to exit, since it can also hang.
23062
23063         * class.c (mono_class_init): Applied patch from Ankit Jain 
23064         (radical@gmail.com). Avoid pending init errors when a field refers
23065         to a nested class using a typeref. Fixes #74734.
23066
23067         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
23068         this for dynamic modules.
23069
23070 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23071
23072         * threads.c: don't wait for threads that are in the process of aborting
23073         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
23074         and waiting for background threads to finish. This makes xsp and
23075         mod-mono-server exit without random length delays and/or hangs.
23076
23077 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23078
23079         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
23080
23081 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
23082
23083         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
23084         dynamic types to prevent infinite loops. Fixes #74727.
23085
23086         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
23087         ..._is_assignable_to.
23088
23089 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
23090
23091         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
23092
23093 2005-04-25  Martin Baulig  <martin@ximian.com>
23094
23095         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
23096
23097         * domain.c
23098         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
23099
23100         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
23101
23102         * reflection.c (build_compressed_metadata): Set metadata header
23103         version to 2.0.
23104
23105 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
23106
23107         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
23108         number into an integral and a decimal part. Fixes #70473.
23109
23110         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
23111
23112 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
23113
23114         * culture-info-table.h : reflected the latest locale-builder output.
23115
23116 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23117
23118         * threadpool.c: check for SuspendRequested too when deciding if
23119         mono_thread_interruption_checkpoint should be called.
23120
23121 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23122
23123         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
23124         * threads.c: remove interruption_mutex and use Interlocked instead. When
23125         suspending all the threads, wait for all the suspended events at once.
23126         If we're shutting down and get an APC that is going to be queued,
23127         call mono_thread_execute_interruption immediately, as the thread might
23128         be sleeping on a pthread condition or mutex.
23129
23130         * icall.c: call mono_runtime_set_shutting_down before suspending the
23131         threads.
23132
23133         Fixes bug #74693. And now xsp is happier when exiting.
23134
23135 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
23136
23137         * loader.c (mono_stack_walk): Fix #74690.
23138
23139 2005-04-22  Martin Baulig  <martin@ximian.com>
23140
23141         * mono-debug.h (MonoDebugMethodJitInfo): Added
23142         `MonoDebugMethodJitInfo *jit'.
23143
23144         * mono-debug.c (mono_debug_read_method): Cache the
23145         MonoDebugMethodJitInfo in `address->jit'.
23146         (mono_debug_free_method_jit_info): New public method.
23147
23148 2005-04-22  Martin Baulig  <martin@ximian.com>
23149
23150         * class.c (mono_class_is_assignable_from): Disallow
23151         type parameter -> interface.
23152
23153 2005-04-21  Dick Porter  <dick@ximian.com>
23154
23155         * threads.c (mono_thread_create): Turn an assertion into an error.
23156
23157 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
23158
23159         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
23160         
23161         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
23162         Fix some gcc 4.0 warnings.
23163
23164 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
23165
23166         * file-io.c: fix alt dir separator char on unix systems
23167         and cleanup (fixes bug #71214).
23168
23169 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
23170
23171         * marshal.c: Use CALLVIRT instead of CALL when dispatching
23172         a call to a remote domain, since the method may be an
23173         interface method in the client domain. This fixes bug #74192.
23174
23175 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23176
23177         * threadpool.c: recv/send are now performed before going back to managed
23178         code to save one transition.
23179
23180 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23181
23182         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
23183
23184         * metadata/threadpool.c: removed hack to workaround the bug above.
23185
23186         Fixes bug #74618.
23187
23188 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
23189
23190         * reflection.c reflection.h: Fix handling of parameter defaults in
23191         dynamic methods. Also fixes handling of parameter attributes.
23192         Fixes #74609.
23193
23194         * mono-debug.c (mono_debug_close_image): Fix warning.
23195
23196 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23197
23198         * socket-io.h: replaced old unused field with new 'blocking'.
23199         * threadpool.c: restore socket blocking state on windows(tm).
23200
23201 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
23202
23203         * icall.c: don't return the codebase in the AssemblyName[] returned by
23204         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
23205         * object-internals.h: Removed FIXME (fields were presents) and fixed
23206         versioncompat declaration.
23207
23208 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23209
23210         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
23211         not closed, so don't cleanup when it happens.
23212
23213 2005-04-13  Chris Toshok  <toshok@ximian.com>
23214
23215         * mono-debug-debugger.h: change prototype for
23216         mono_debugger_lookup_type.
23217
23218         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
23219         this function, although it should probably be named
23220         mono_debugger_init_type.
23221
23222 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23223
23224         * threadpool.c: fix non-AIO case.
23225
23226 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
23227
23228         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
23229         the built-in profiler to measure just JIT compilation times.
23230
23231 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23232
23233         * threadpool.c: the epollfd might be closed by another thread at
23234         any time, so ignore EBADF at treat it as a "we're closing" sign.
23235
23236 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23237
23238         * threadpool.c: release the semaphores with a count equals to the number
23239         of working threads in both IO and regular pools. Fixed typo that messed
23240         up the count of IO pool threads. Don't initialize the pipe handles if
23241         we're using epoll.
23242
23243 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23244
23245         * threadpool.c: some systems don't like a NULL when deleting the socket
23246         from epoll.
23247
23248 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23249
23250         * threadpool.c: fix semaphore allocation.
23251
23252 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23253
23254         * threadpool.c: added epoll() based implementation for asynchronous IO
23255         that is used instead of the default poll() when available.
23256         It can be disabled by setting MONO_DISABLE_AIO.
23257
23258 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23259
23260         * threadpool.c: windows needs 'closesocket' and instead of returning
23261         0 when the stream is closed while in select, it returns -1. Fixes bug
23262         #74573.
23263
23264 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
23265
23266         * class.c (class_compute_field_layout): Fix the regression caused by
23267         the previous try.
23268
23269 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23270
23271         * threadpool.c: separate pool for socket async. IO.
23272         * threadpool.h: mono_max_worker_threads is not a global any more.
23273
23274 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
23275
23276         * class.c (class_compute_field_layout): Fix #74549.
23277
23278 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23279
23280         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
23281         use 2 connected sockets instead.
23282
23283 2005-04-08  Miguel de Icaza  <miguel@novell.com>
23284
23285         * mono-config.c: Add new entry point for mkbundle
23286         mono_config_parse_memory. 
23287
23288 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23289
23290         * threadpool.c: removed another unused function.
23291
23292 2005-04-08  Ankit Jain  <radical@corewars.org>
23293
23294         * reflection.c (get_default_param_value_blobs): Add 'types'
23295         parameter to get the types encoded in the constant table.
23296         (mono_param_get_objects): Use the type from the constant table,
23297         not the type of the parameter, when creating default values.
23298         Handle null default values correctly.
23299
23300 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23301
23302         * file-io.c:
23303         * file-io.h:
23304         * threadpool.c:
23305         * threadpool.h:
23306         * icall.c:
23307         * socket-io.c: removed dead code for async IO.
23308
23309 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23310
23311         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
23312
23313         * threadpool.c: intercept socket async. calls and pass them to a thread
23314         that is polling and dispatching the job items to the threadpool as
23315         socket become ready. Fixes bugs #71217, #71933.
23316
23317         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
23318         between char and short/ushort arrays.
23319
23320         * socket-io.c: remove dead code.
23321
23322 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
23323
23324         * locales.c,
23325           icall.c : removed InternalToUpper_Comp() and
23326           InternalToLower_Comp().
23327
23328 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
23329
23330         * char-conversions.h : The tables were incorrectly generated. Should
23331           be generated against invariant culture.
23332
23333 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
23334
23335         * object.c (mono_runtime_invoke_array): Fix return value when 
23336         passing pre-created valuetype objects to ctors.
23337
23338         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
23339         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
23340         Fixes #74338.
23341
23342 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
23343
23344         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
23345         only used with --security and hides the wrong corlib version error.
23346
23347 2005-03-30  Joshua Tauberer  <tauberer@for.net>
23348
23349         * class.c: Changed mono_class_name_from_token so that types
23350         outside of a namespace don't have an initial period.  Improved
23351         the g_warning message used in _mono_class_get when loading
23352         fails.
23353         * assembly.c: In mono_assembly_load_reference, when an assembly
23354         can't be found, "No such file or directory" is misleading and
23355         unhelpful because a few paths were checked for the presence of
23356         the assembly.  When that happens (ENOENT), display a nicer
23357         message indicating the directories that were searched.  In all
23358         cases, the warning is made easier to read for non-hackers.
23359
23360 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
23361
23362         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
23363         project/solution.
23364         * appdomain.h|domain.c: Removed inline from functions.
23365         * appdomain.c: Reduced warnings when compiling on windows.
23366         * icall.c: Fixed output_debug declaration to gunichar2*.
23367         * mono-config.c: Reduced warnings when compiling on windows.
23368         * rand.c: Added missing "windows.h". Added missing return value.
23369         * rawbuffer.c: Added missing winsock2.h for windows.
23370         * sysmath.h: Added mono-compiler.h header to allow/ease 
23371         compilation with non-GCC compilers.
23372         * threads.c: Fixed declarations to compile with VS.NET C compiler.
23373         Removed cast warnings.
23374
23375         Adapted from the work of J Lothian (for VC6).
23376
23377 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
23378
23379         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
23380         from default_path.
23381
23382 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
23383
23384         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
23385         the 2.0 profile.
23386
23387 2005-03-27  Raja R Harinath  <harinath@gmail.com>
23388
23389         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
23390         has to be in $(exec_prefix).  $(prefix) is for arch-independent
23391         stuff, and it would probably use $(prefix)/share rather than
23392         $(prefix)/lib.
23393
23394 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23395
23396         * console-io.c: added 2 includes that might be missing.
23397
23398 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
23399
23400         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
23401         profile.
23402
23403         * reflection.c (create_custom_attr): Allocate the params array using
23404         alloca so it gets GC tracking.
23405
23406 2005-03-23  Chris Toshok  <toshok@ximian.com>
23407
23408         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
23409         out some spew.
23410
23411 2005-03-24  Raja R Harinath  <rharinath@novell.com>
23412
23413         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
23414         changes to pick up any changes in prefix, etc.
23415
23416 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
23417
23418         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
23419         
23420         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
23421         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
23422
23423 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
23424
23425         * class-internals.h object-internals.h class.c reflection.c: Extend the
23426         mono_lookup_dynamic_token () function to return the class of the
23427         token as well. 
23428
23429         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
23430         well. Fixes #73848.
23431
23432 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
23433
23434         * security-manager.c: Skip inheritance checks for intra-corlib
23435         class inheritance and method overrides. This skips a lot of checks
23436         and (anyway) permissions cannot work until corlib is loaded.
23437
23438 2005-03-23  Martin Baulig  <martin@ximian.com>
23439
23440         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
23441         MONO_TYPE_GENERICINST.  
23442
23443 2005-03-23  Martin Baulig  <martin@ximian.com>
23444
23445         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
23446
23447 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
23448
23449         * class.c: added locking comments to some functions.
23450         Cache the interface offsets arrays (saves about 20 KB
23451         of runtime memory in a typical app).
23452         Reduce the time overhead in mono_class_setup_supertypes ().
23453
23454 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
23455
23456         * icall.c: speedup and fix leaks in GetMethodsByName and
23457         GetPropertiesByName.
23458
23459 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
23460
23461         * reflection.c: some locking fixes.
23462
23463 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
23464
23465         * metadata.c: added missing break in case statement.
23466
23467 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
23468
23469         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
23470         typedbyref return values. Fixes #73941.
23471
23472 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
23473
23474         * security-manager.c|h: Added demandunmanaged method and 
23475         suppressunmanagedcodesecurity class to MonoSecurityManager.
23476         Renamed aptc class to allowpartiallytrustedcallers.
23477
23478 2005-03-17  Martin Baulig  <martin@ximian.com>
23479
23480         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
23481
23482 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23483
23484         * file-io.c: disabled file async. IO using aio_*. It uses the
23485         threadpool now. Workaround for bug #73718.
23486
23487 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
23488
23489         * assembly.h, mono-config.c: added code to deal with bundled configs
23490         for bundled assemblies.
23491
23492 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
23493
23494         * *.c, private.h: cleanup, removing old private.h header file.
23495
23496 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
23497
23498         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
23499         and throw_on_unmappable_char attributes.
23500
23501 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
23502
23503         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
23504         _ProcessName_internal.
23505
23506 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
23507
23508         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
23509         #73631.
23510
23511         * icall.c threads.c threads-types.h: Remove slothash icalls as they
23512         are no longer used.
23513
23514 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
23515
23516         * object.c (compute_class_bitmap): Add support for generics. Fixes
23517         #73527.
23518
23519 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
23520
23521         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
23522
23523 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
23524
23525         * filewatcher.c: commented out the code for windows watcher, as we don't
23526         use it (we use the managed implementation instead).
23527
23528 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
23529
23530         * object-internals.h (MonoThread): Remove 'unused1' field.
23531
23532         * appdomain.c: Bump corlib version.
23533
23534         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
23535
23536         * reflection.c (mono_reflection_create_runtime_class): Remove the
23537         AssemblyBuilder.Save optimization since it causes too many problems.
23538
23539 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
23540
23541         * exception.c|h: Added mono_get_exception_reflection_type_load to
23542         create a ReflectionTypeLoadException object.
23543         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
23544         to return NULL is a InheritanceDemand fails during reflection. Updated
23545         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
23546         ReflectionTypeLoadException if an InheritanceDemand fails during 
23547         reflection. Added icall mapping for GetLinkDemandSecurity.
23548         * security-manager.c|h: Added ves_icall_System_Security_
23549         SecurityManager_GetLinkDemandSecurity internal call to return the
23550         class and methods permissions set for a LinkDemand. Removed unused
23551         fields in MonoSecurityManager.
23552
23553 2005-03-10  Martin Baulig  <martin@ximian.com>
23554
23555         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
23556         it's a generic instance.
23557
23558 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
23559
23560         * reflection.c (mono_get_object_from_blob): Applied patch from
23561         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
23562
23563         * class.c (mono_class_is_assignable_from): Another try at fixing 
23564         #73469 without breaking anything.
23565
23566 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
23567
23568         * class.c: (mono_class_is_assignable_from): Revert the last changes
23569         since they don't work with generics.
23570         
23571         * class.c (mono_class_is_assignable_from): Fix build bustage.
23572
23573         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
23574         the managed IsAssignableFrom method. Fixes #73469.
23575
23576         * reflection.c (mono_reflection_call_is_assignable_from): New helper
23577         function.
23578
23579 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
23580
23581         * object.c (mono_load_remote_field_new): Fix returning uninitialized
23582         memory when the remoting callback does not sets the out arguments.
23583         Fixes #73007.
23584
23585         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
23586         by mistake.
23587
23588         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
23589
23590         * object-internals.h (MonoStackFrame): Sync with managed object layout.
23591
23592         * appdomain.c: Bump corlib version.
23593
23594 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
23595
23596         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
23597         function.
23598
23599         * threads.c (mono_thread_attach): Detect threads which are not started
23600         by the GC pthread wrappers.
23601
23602 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
23603
23604         * icall.c: Added new icall for RNG.
23605         * rand.c|h: Added new icall to open the RNG. This allows to share a 
23606         single handle on Linux to access /dev/urandom and fix #73183.
23607
23608 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
23609
23610         * object.c: setting the new vtable in a transparent proxy object must
23611         not change the GC descriptor.
23612
23613 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
23614
23615         * object.c: fixed compilation without GCJ support.
23616         * reflection.c: for runtime-created types ensure klass->has_references
23617         is correct (bug #73215).
23618
23619 2005-03-02  Martin Baulig  <martin@ximian.com>
23620
23621         * class.c (mono_class_is_assignable_from): Make this work if
23622         `oklass' is a generic instance; fixes #72831.
23623
23624 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
23625
23626         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
23627         with hasthis set.
23628         
23629         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
23630
23631         * marshal.c: Reorganize native->managed marshalling code to also use
23632         the emit_marshal_... functions.
23633
23634 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
23635
23636         * object.c: typed allocs have issues with bitmap sizes > 30,
23637         so check for max_set >= 30.
23638
23639 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
23640
23641         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
23642         managed code. Fixes #73012.
23643
23644         * metadata.h (MonoMarshalSpec): Add elem_mult field.
23645
23646         * metadata.c reflection.c: Load/Emit elem_mult as well.
23647         
23648         * metadata.h (MonoMarshalSpec): Add comment.
23649
23650         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
23651
23652         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
23653         num_elem to -1 if not given.
23654
23655         * object-internals.h (MonoReflectionMarshal): Add has_size field.
23656
23657         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
23658         given values.
23659
23660 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
23661
23662         * null-gc.c (mono_gc_free_fixed): Was not compilable.
23663
23664 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
23665
23666         * reflection.c (encode_marshal_blob): Encode param_num field as well.
23667
23668         * object-internals.h (MonoReflectionMarshal): Add param_num field.
23669
23670 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
23671
23672         * object.c: generalized the reference bitmap creation
23673         and added hooks for the new GC.
23674         * class-internals.c: removed the gc_bitmap field from MonoClass.
23675
23676 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
23677
23678         * domain.c: help the compiler to produce better code
23679         in mono_jit_info_table_find ().
23680
23681 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
23682
23683         * object.c: make all allocations look typed.
23684
23685 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
23686
23687         * socket-io.c: load Mono.Posix if it's not loaded already
23688         (fixes bug#73033).
23689
23690 2005-02-24  Martin Baulig  <martin@ximian.com>
23691
23692         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
23693         * reflection.c (dup_type): Likewise.
23694
23695 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
23696
23697         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
23698         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
23699
23700 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
23701
23702         * domain.c, threads.c, object-internals.h: make the critical thread
23703         local vars use the fast access mode (even when we're compiled in
23704         a lib). Provide accessors to be used by the jit during codegen.
23705
23706 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
23707
23708         * appdomain.c: Changed hook functios behavior to include
23709         support for the reflection only assemblies. Some icalls were changed
23710         to support the mentioned assemblies too. Signatures of static methods
23711         try_assembly_resolve and real_load now have an additional parameter:
23712         refonly.
23713
23714         * assembly.c: General changes to mono_assembly_ methods to support
23715         reflection only api. Functions mono_assembly_open, mono_assembly_load,
23716         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
23717         suffix, to support an additional gbool parameter to specify whether
23718         the assembli is reflection only or not. Created some new hook functions 
23719         to add support for reflection only assemblies. Signatures of static 
23720         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
23721         have now an additional parameter: refonly.
23722
23723         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
23724         indicating whether the assembly is reflection only or not.
23725
23726         * exception.c: Add mono_get_exception_invalid_operation.
23727
23728         * icall.c: Throw an InvalidOperationException when trying to invoke
23729         a property/method/event, or trying to set/get the value of a field.
23730         Also add an icall to retrieve the ref_only flag to the
23731         MonoReflectionAssembly.
23732
23733 2005-02-23  Chris Toshok  <toshok@ximian.com>
23734
23735         Part of fix for #72827.
23736         * mono-debug.c (mono_debug_add_method): add lexical block data to
23737         the info we write.  Kind of a hack at the moment - we copy the
23738         lexical block info from the MonoDebugMethodInfo to the
23739         MonoDebugMethodJitInfo here, before writing it.
23740         (mono_debug_read_method): read the lexical block info.
23741
23742         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
23743
23744         * debug-mono-symfile.h: add lexical block support.
23745
23746         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
23747         support.
23748
23749 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
23750
23751         * loader.c (mono_lookup_pinvoke_call): Fix warning.
23752
23753         * object.c (mono_runtime_free_method): Call mono_free_method () and
23754         put the TODOs there.
23755
23756         * loader.c (mono_free_method): Free up most memory allocated for 
23757         dynamic methods.
23758
23759 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
23760
23761         * reflection.c: properly flag a Type argument to a
23762         named custom attr value (bug #72248).
23763
23764 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
23765
23766         * reflection.c: reduce code duplication in named custom
23767         attribute encoding.
23768
23769 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
23770
23771         * reflection.c: properly encode custom attrs of type object
23772         (bug #72649).
23773
23774 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
23775
23776         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
23777
23778 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
23779
23780         * socket-io.c: load System.dll if it's not loaded already
23781         (bug #72850 and #70477).
23782
23783 2005-02-21  Martin Baulig  <martin@ximian.com>
23784
23785         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
23786         generic instances.
23787
23788 2005-02-21  Martin Baulig  <martin@ximian.com>
23789
23790         * reflection.c (mono_image_build_metadata): We also need to
23791         "fixup" the MethodImpl table after we computed the final method
23792         indices.  Call fixup_methodimpl() to do that.
23793         (fixup_methodimpl): New private method.
23794
23795 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
23796
23797         * assembly.c: special case mscorlib.dll (bug#72536),
23798         patch from Carlos Alberto Cortez.
23799
23800 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
23801
23802         * threads-types.h threads.c: Fix build bustage.
23803
23804         * threads.c: Use a union for long<->double conversions.
23805
23806         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
23807         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
23808
23809         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
23810         containing the checkpoint call with NOT_TAKEN.
23811         
23812         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
23813         checkpoint before pushing the arguments, so they won't have to be
23814         spilled to stack.
23815
23816 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
23817
23818         * domain.c, assembly.c, domain-internals.h: make some data
23819         const and relocation-free.
23820
23821 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
23822
23823         * object.c, appdomain.c, class-internals.h: introduce the
23824         MonoClassRuntimeInfo structure to hold the info needed to
23825         use a class at runtime. Made mono_class_vtable() lock-free
23826         for all the appdomains.
23827
23828 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
23829
23830         * metadata-internals.h, image.c: introduce a per-image mempool to
23831         be used for memory that has the same lifetime as the image.
23832
23833 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
23834
23835         * domain.c: In mono_init_internal(), instead of selecting the first
23836         runtime version supported by an executable, get a list of all
23837         supported versions and select the one for which an mscorlib exists
23838         (since even if the runtime supports a given version, it doesn't mean
23839         that the framework for that version is installed).
23840         Modified get_runtimes_from_exe to support this behavior.
23841         In supported_runtimes, added information about additional system
23842         assembly versions.
23843         
23844         * assembly.c: Added support for more than one system assembly version
23845         per runtime version. Updated the assembly list.
23846         In mono_assembly_remap_version, removed the initial version check,
23847         since we don't know to which version we need to compare until we
23848         get the version set on which the assembly is based.
23849         Moved the code for loading corlib into the new method
23850         mono_assembly_load_corlib(), so it can be used by the initialization
23851         code.
23852         
23853         * domain-internals.h: Updated data structures and added declaration
23854         for mono_assembly_load_corlib.
23855
23856 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
23857
23858         * reflection.c (resolve_object): Fix the creation of the signature in 
23859         the SignatureHelper case.
23860
23861         * assembly.c (mono_assembly_remap_version): Fix binary search.
23862         
23863 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
23864  
23865         * class.c: Added inheritance check when a method is overloaded (from a
23866         virtual method or when implementing an interface) and when a class is
23867         inherited. Added functions to set a failure for a class and to 
23868         retreive the exception from a failure.
23869         * class-internals.h: Added fields to MonoClass to keep the exception
23870         information status for inheritance (or other exceptions) to be thrown
23871         later (i.e. not at load time).
23872         * object.c: Throw the inheritance SecurityException when a type is to 
23873         be created with either class or method inheritance violations.
23874         * reflection.c|h: Fix when getting declsec from a class. Removed 
23875         unrequired code for class. Improved sanity in parameter naming.
23876         * security-manager.c|h: Added functions to check for class and method
23877         inheritance.
23878
23879 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
23880
23881         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
23882         and has_finalize in dynamic types as well.
23883
23884 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
23885
23886         * culture-info-table.h : fixed currency format for en-GB (and so on).
23887
23888 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
23889
23890         * gc.c: ensure the GC handles never have 0 as a value.
23891
23892 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
23893
23894         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
23895         a pointer to a struct to unmanaged code. Fixes #72625.
23896
23897 2005-02-16  Martin Baulig  <martin@ximian.com>
23898
23899         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
23900
23901 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
23902
23903         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
23904
23905 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
23906
23907         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
23908
23909         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
23910         UnmanagedFunctionPointerAttribute, use it for determining calling convention
23911         etc. Fixes #71471.
23912
23913         * reflection.c (mono_custom_attrs_get_attr): New helper function.
23914
23915         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
23916
23917 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
23918
23919         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
23920         changes to make the current context a field in MonoThread.
23921
23922 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
23923
23924         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
23925         the last change.
23926         
23927         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
23928         extracted from mono_marshal_get_native_wrapper.
23929
23930         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
23931         to create wrappers around native functions.
23932
23933         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
23934         delegates for arbitrary function pointers. Fixes #71472.
23935
23936 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
23937
23938         * threads.c: cleaned up the code a little.
23939
23940 2005-02-15  Martin Baulig  <martin@ximian.com>
23941
23942         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
23943         the data table.
23944
23945         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
23946         allocate larger chunks if needed.
23947
23948 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
23949
23950         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
23951         in by mistake.
23952
23953 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
23954
23955         * domain.c: keep the domains in an array and ensure the domain ids
23956         are kept small, so they can be used as indexes to domain-specific data
23957         with a small memory overhead.
23958
23959 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
23960
23961         * icall.c: Handle byref types in Type icalls. Fixes #72544.
23962
23963 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
23964
23965         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
23966
23967 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
23968
23969         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
23970
23971         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
23972         values.
23973
23974         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
23975         
23976 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
23977
23978         * domain-internals.h: add the hashtable here.
23979
23980         * class-internals.h: Remove `info' from MonoMethod
23981
23982         * domain.c: Add a new hashtable, jit_trampoline_hash
23983
23984 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
23985
23986         * object.c: don't set the value of static fields
23987         (fixes bug#72494).
23988
23989 2005-02-11  Martin Baulig  <martin@ximian.com>
23990
23991         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
23992         (mono_debug_add_method): Silently ignore the method if it's too big.
23993         (mono_debug_add_type): Likewise.
23994
23995 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
23996
23997         * threads.c, appdomain.c: remove #ifdefs from the code.
23998
23999 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
24000
24001         * metadata-internals.h: Added flags to MonoAssembly to cache the most
24002         common security informations. This allows us to stay in unmanaged code
24003         when doing LinkDemand and it's special cases (except for the first 
24004         time for initialization). The flags a very much used with --security.
24005         * reflection.c|h: Added code to get declarative security attributes 
24006         for LinkDemand and InheritanceDemand. This required to refactor the
24007         existing code for Demand.
24008         * security-manager.c|h: Added new method fields for the special cases
24009         of LinkDemand.
24010
24011 2005-02-10  Martin Baulig  <martin@ximian.com>
24012
24013         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
24014         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
24015
24016 2005-02-10  Martin Baulig  <martin@ximian.com>
24017
24018         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
24019         debugging code; this is almost a complete rewrite.
24020
24021         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
24022
24023 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
24024
24025         * domain.c, object.h: expose mono_string_equal () and 
24026         mono_string_hash ().
24027         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
24028         it's implemented in managed code.
24029
24030 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
24031
24032         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
24033         lo leak objects between appdomains.
24034
24035 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
24036
24037         * assembly.c: old compilers compilation fix from 
24038         robertj@gmx.net (Robert Jordan).
24039
24040 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
24041
24042         * class-internals.h: Little reminder for the future.
24043
24044         * debug-helpers.c: Fix up wrapper_type_names
24045
24046 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
24047
24048         * image.c, metadata-internals.h: when loading an image from a file,
24049         mmap all of it and use the same codepaths as when using a
24050         in-memory image: the code is simpler and we use less memory
24051         (both writable and readonly).
24052
24053 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
24054
24055         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
24056         API to alloc runtime data structures that need to be tracked by the
24057         GC and contain pointers.
24058         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
24059         make the code more readable and eventually use a different GC.
24060
24061 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
24062
24063         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
24064         for out arguments.
24065         
24066 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
24067
24068         * object.c: In release_type_locks(), don't release the cctor lock
24069         if it has already been released. This fixes a crash in the
24070         thread5 test.
24071
24072 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
24073
24074         * gc.c, marshal.c, icall.c: register a delegate for finalization
24075         only when the native function pointer has been allocated for it.
24076
24077 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
24078
24079         * object.c: cleaned up some code, allocate objects that are
24080         pointer free with the atomic malloc variant. Allocate memory
24081         for static data from the mempool if it's pointer-free.
24082         Allocate the bounds array at the end of the array data, when needed.
24083         * object-internals.h, object.h: move a private function in a private
24084         header.
24085         * class.c: handle missing case in tracking references in fields.
24086
24087 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
24088
24089         * class.c, class-internals.h: keep track if a type has
24090         reference fields in either the instance or static fields.
24091
24092 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
24093
24094         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
24095         and renamed to MonoRuntimeInfo. Added fields to store the expected
24096         framework assembly version. Changed mono_get_framework_version and
24097         mono_get_runtime_version for a single mono_get_runtime_info method.
24098         
24099         * assembly.c: Added method to remap system assembly versions to the
24100         current executing runtime version. Removed old mapping code.
24101         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
24102         
24103         * icall.c, reflection.c: Track api changes.
24104
24105 2005-02-06  Miguel de Icaza  <miguel@novell.com>
24106
24107         * loader.c (method_from_memberref): Improve error reporting,
24108         produce the class name instead of the typeref/typedef index. 
24109
24110 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
24111
24112         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
24113
24114 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
24115
24116         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
24117         stdcall and charset name mangling.  Reorganize the code and add
24118         some tracing stuff.
24119
24120 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
24121
24122         * monodiet.c: More iters!
24123
24124         * marshal.c: Iter usage.
24125
24126         * icall.c: Iter usage.
24127
24128         * object.c: Use iters.
24129
24130         * debug-helpers.c: More iters
24131
24132 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
24133
24134         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
24135         under win32.
24136
24137 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
24138
24139         * mono-debug-debugger.c: use iters
24140
24141         * class.c, class-internals.h: mono_class_setup_events is static
24142         now
24143
24144         * All callers: use iters
24145
24146 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
24147
24148         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
24149         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
24150
24151 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
24152
24153         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
24154
24155         * marshal.h: Add prototypes for ldfld/stfld_remote.
24156
24157         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
24158         this is called during startup.
24159         
24160 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
24161
24162         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
24163         MonoThreadsSync struct private in monitor.c. Changed the way
24164         MonoThreadsSync is allocated so it's faster and there is no
24165         need to keep track of it with a finalizer and it uses less memory.
24166         This also finally allows us to allocate mono objects as ptrfree when
24167         there are no reference fields.
24168
24169 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
24170
24171         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
24172         disappearing link to the GC interface and use them to simplify
24173         the gchandles code.
24174
24175 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
24176
24177         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
24178         stfld_remote which call mono_load/store_field_new. This allows methods
24179         calling ldfld/stfld wrappers to be AOTed.
24180
24181         * console-io.c: Include sys/filio.h under solaris.
24182         
24183         * console-io.c: Include curses.h if needed correctly.
24184
24185 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
24186         
24187         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
24188         method->klass as well.
24189
24190         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
24191
24192         * class.c (mono_class_init): Switch on lazy initialization of 
24193         methods.
24194
24195         * class.c (mono_class_get_finalizer): Handle the case when the 
24196         finalizer is inherited.
24197
24198 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24199
24200         * console-io.c: <curses.h> is needed by term.h on solaris.
24201
24202 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
24203
24204         * icall.c, class-internals.h, monodiet.c, class.c: Remove
24205         mono_class_setup_properties where possible. Remove this ftn from
24206         the header file, and make it static.
24207
24208 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
24209
24210         * loader.c: Add missing setup_... call.
24211
24212         * class.c: Add missing setup_... calls.
24213
24214         * class.c (mono_class_init): Switch on lazy initialization of 
24215         the generic vtable.
24216         
24217         * class.c (mono_class_init): Fix generics broken by the recent changes.
24218
24219         * monodiet.c (handle_type): Add missing setup_... calls.
24220
24221         * class.c: Back out garbage in previous patch.
24222         
24223         * class.c: Add missing setup_... calls.
24224
24225         * class.c (mono_class_get_method_from_name_flags): Avoid calling
24226         mono_class_setup_methods () if possible.
24227
24228         * class-internals.h (MonoClass): Add 'has_cctor' flag.
24229
24230         * class-internals.h (MonoCachedClassInfo): New structure.
24231
24232         * class.c: Initialize properties and events fields of MonoClass lazily.
24233
24234         * class.c: Add infrastructure for lazily initializing the methods and
24235         vtable fields of MonoClass. Not yet used.
24236
24237         * class.c (mono_class_get_finalizer): New helper function.
24238
24239         * class.c: Add infrastructure for loading some class related data from
24240         an AOT file.
24241
24242         * object.c: Add infrastructure for initializing the vtable from data
24243         in the AOT file.
24244
24245         * gc.c (run_finalize): Use mono_class_get_finalizer ().
24246
24247         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
24248         appropriate initialization function before accessing parts of the
24249         MonoClass structure.
24250
24251         * marshal.c: Fix warnings.
24252         
24253         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
24254
24255         * mono-debug-debugger.c (get_exception_message): Use 
24256         mono_class_get_method_from_name_flags ().
24257
24258 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
24259
24260         * reflection.c, appdomain.c: Replace a few manual searches that
24261         Zoltan missed. (Paolo approved this part of my initial patch).
24262
24263 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
24264
24265         * profiler.c: disable recording statistical events at report time.
24266
24267 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
24268
24269         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
24270         to byteswap arrays of enum values, too (bug #72080).
24271
24272 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
24273
24274         * appdomain.c (set_domain_search_path): Allow this to be called if
24275         domain->setup is not yet set.
24276
24277         * loader.c (mono_method_get_index): New helper function.
24278
24279         * loader.c reflection.c: Use mono_method_get_index ().
24280
24281         * class.c (mono_class_get_method_from_name_flags): New helper method.
24282
24283         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
24284         this.
24285
24286         * class.c (mono_class_get_cctor): New helper method.
24287
24288         * string-icalls.c object.c class.c marshal.c reflection.c: Use
24289         mono_class_get_method () to look up methods.
24290
24291 2005-02-01  Miguel de Icaza  <miguel@novell.com>
24292
24293         * console-io.c: Fix the build, this should work on Windows.
24294
24295 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
24296
24297         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
24298         be set to null to keep things valid
24299
24300 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24301
24302         * icall.c: added Console 2.0 icalls.
24303         * Makefile.am: added console-io.[ch]
24304         * console-io.[ch]: internal calls for Console 2.0 API.
24305
24306 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
24307
24308         * class.c: make sure we consider all the interfaces
24309         when calculating max_interface_id (bug found by
24310         Jeroen Frijters running ikvm).
24311
24312 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
24313
24314         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
24315         valuetype fields to null.
24316
24317         * object.c (set_value): Ditto. Fixes #71669.    
24318
24319 2005-01-31  Martin Baulig  <martin@ximian.com>
24320
24321         * metadata.c (mono_metadata_has_generic_params): New public
24322         function; checks whether something is a generic method.
24323
24324 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
24325
24326         * appdomain.c: fix infinite recursion when adding assemblies.
24327
24328 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
24329
24330         * object.c: Fix small typo to return all items for Environment.
24331         GetCommandLineArgs.
24332
24333 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
24334
24335         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
24336         reflection.c: more domain and assembly-unload related fixes
24337         and memory leaks plugs.
24338
24339 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
24340
24341         * 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.
24342
24343 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
24344
24345         * loader.c (mono_method_signature): Make this method lazy
24346         (mono_get_method_from_token): Don't computate the signature here.
24347
24348         Doing this saves quite a bit of memory. I got 90 kb on starting up
24349         monodoc. It should also save some disk reads on startup.
24350
24351         * *: MonoMethod->signature might be NULL now. You *MUST* use
24352         mono_method_signature.
24353
24354 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
24355
24356         * object.c (mono_runtime_get_main_args): Return an array from the
24357         current domain here. Fixes #71938.
24358
24359 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
24360
24361         * monitor.c: formatting changes to comply with the
24362         mono coding style and remove #ifdefs from the code.
24363
24364 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
24365
24366         * metadata.c, private.h: remove some unneeded data
24367         and use a more compact representation for table schemas.
24368
24369 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
24370
24371         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
24372         to get a better distribution in hash tables.
24373         * *.c: use mono_aligned_addr_hash() where appropriate.
24374         * assembly.c: make var static.
24375
24376 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
24377
24378         * domain-internals.h: Put MonoJitInfo on a diet.
24379
24380         * domain.c: Fix a warning.
24381
24382 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
24383
24384         * gc.c: rework the gc handles code to reuse handles
24385         when freed.
24386
24387 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
24388
24389         * domain.c: fixed long standing bug in mono_string_equal() which
24390         was brought to light with the ldstr changes.
24391
24392 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
24393
24394         * reflection.c: Remove warning by adding missing include for marshal.h
24395
24396 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
24397
24398         * domain.c, object.c: change the ldstr_table to hold
24399         MonoString* as keys: makes the runtime isinterned lookup
24400         faster and simplifies memory management.
24401
24402 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
24403  
24404         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
24405         possible to add imperative security checks before calling the icall.
24406         * reflection.c: Return security attributes on the original MonoMethod
24407         (and not the wrapped one). This fix permissions on icalls.
24408
24409 2005-01-25  Dick Porter  <dick@ximian.com>
24410
24411         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
24412         the check for mktime() support actually test the mktime() return
24413         value.  "Fixes" bug 71682, though the output is still different to
24414         MS.
24415
24416 2005-01-25  Martin Baulig  <martin@ximian.com>
24417
24418         * class.c (mono_class_is_assignable_from): Make this work for
24419         generic instances.
24420
24421 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
24422
24423         * marshal.c (mono_string_utf8_to_builder)
24424         (mono_string_builder_to_utf16): We might not have ownership of the
24425         string. In thise case, we need to create a new buffer.
24426
24427         * object-internals.h (mono_stringbuilder_capacity): sb->str might
24428         be null, in which case, use the default capacity.
24429
24430 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
24431
24432         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
24433         GC events to the profiler.
24434
24435 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
24436
24437         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
24438         if you don't want the GC to run.
24439
24440 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
24441
24442         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
24443         start providing a GC API and keeping different implementations in
24444         their own file.
24445         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
24446
24447 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
24448
24449         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
24450         mmap rather than allocating a huge buffer.
24451         (mono_debug_close_mono_symbol_file): Free the buffer allocated
24452         above.
24453
24454 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
24455
24456         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
24457         and CheckExecutionRights.
24458         * reflection.c|h: Keep the index of the declarative security to be 
24459         used, instead of the pointer, when AOT compiler is used. Also add 
24460         class initialization when requesting demands.
24461         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
24462         CheckExecutionRights. Both properties are now FALSE by default, and
24463         unmodifiable, unless the --security option is used.
24464
24465 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
24466
24467         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
24468         reflection.c: properly refcount images and assemblies, many leaks fixed.
24469
24470 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
24471
24472         * threadpool.c: increase the timeout for threads in the thread pool to
24473         10s.  Fixes bug #67159.
24474
24475 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
24476
24477         * class-internals.h: Sun's compiler insists on explicit
24478         signed on bit fields to handle then correctly.
24479
24480 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
24481
24482         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
24483         Make the size of the array fit only the number of invalid path
24484         chars that we have.
24485
24486         * class.c (_mono_class_get): Improve the error reporting when a
24487         class referenced is not found, to assist debugging. 
24488
24489 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
24490
24491         * threads.c: fix off-by-one error.
24492         * domain.c: free data allocated in the domain.
24493
24494 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
24495
24496         * reflection.c (mono_method_body_get_object): Fill out exception info
24497         as well.
24498
24499         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
24500         structure.
24501         
24502 2005-01-19  Martin Baulig  <martin@ximian.com>
24503
24504         * loader.c (mono_get_method_constrained): Make this work again.
24505
24506 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
24507
24508         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
24509         guint16 to match the managed side.
24510
24511         * reflection.c (mono_reflection_body_get_object): Fill out local
24512         variables array.
24513
24514         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
24515         as well.
24516
24517         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
24518         'local_var_sig_token'.
24519
24520 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
24521
24522         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
24523         System.Drawing.
24524
24525         * reflection.c (mono_method_body_get_object): Handle abstract and
24526         runtime methods.
24527
24528 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
24529
24530         * marshal.c, loader.c, class-internals.h, reflection.c:
24531         store the emthod data for a wrapper in an array instead of a list.
24532
24533 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
24534
24535         * marshal.c: change the code to allocate memory more
24536         conservatively for method wrappers.
24537
24538 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
24539
24540         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
24541         fields from MonoClass to the marshal info structure where they belong.
24542
24543 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
24544
24545         * class.c, object.c, class-internals.h, marshal.c: rearrange
24546         some fields and tweak some types to lower memory usage.
24547
24548 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
24549
24550         * threads.c (signal_thread_state_change): Handle the case when the
24551         target thread is the current thread.
24552
24553         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
24554
24555         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
24556         emit_ptr_to_object_conv. 
24557
24558         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
24559         marshalling. Fixes #71352.
24560
24561 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
24562
24563         * metadata.h, blob.h: move table enum to blob.h so it can be included
24564         in any header.
24565         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
24566         cut the size of MonoImage/MonoDynamicImage.
24567
24568 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
24569
24570         * profiler.c (mono_profiler_install_simple): Fix default arguments.
24571
24572 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
24573
24574         * reflection.c, reflection.h, icall.c: add a function to check
24575         if an attribute type is defined for a metadata object.
24576
24577 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
24578
24579         * object-internals.h: Added some needed fields from StringBuilder class.
24580         * marshal.c: Set the maxCapacity when creating a StringBuilder.
24581
24582 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
24583
24584         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
24585         threads before shutting down the runtime.
24586
24587         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
24588
24589 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
24590
24591         * object-internal.h, threads.c: implement stacksize and 
24592         parameterized thread start functionality (requires
24593         matching corlib). Marked broken code for later removal.
24594
24595 2005-01-12  Martin Baulig  <martin@ximian.com>
24596
24597         * class-internals.h (MonoGenericClass): Moved the `initialized'
24598         flag to MonoDynamicGenericClass, removed `init_pending'.
24599         (MonoGenericInst): Added `is_reference' flag.
24600
24601 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
24602
24603         * reflection.c (mono_image_create_pefile): Only set the pe_offset
24604         inside the MSDOS header. Fixes #71201.
24605
24606         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
24607         gc thread.
24608         (mono_domain_finalize): Ditto.
24609
24610 2005-01-12  Martin Baulig  <martin@ximian.com>
24611
24612         * class.c (mono_get_shared_generic_class): Use the cache for
24613         non-dynamic generic classes.
24614
24615         * class-internals.h (mono_class_create_generic_2): Removed
24616         function prototype, this function is now static inside class.c.
24617
24618         * class.c (mono_class_create_generic_2): Made this static, only
24619         call it from mono_class_init() and mono_class_setup_parent().
24620         (collect_implemented_interfaces_aux): Call mono_class_init() on
24621         the interfaces we collect.
24622         (mono_class_setup_vtable): Call mono_class_init (class->parent).
24623
24624 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
24625
24626         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
24627         it a real thread handle.
24628
24629         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
24630         MonoJitExceptionInfo, since each catch clause needs its own variable.
24631         
24632 2005-01-11  Dick Porter  <dick@ximian.com>
24633
24634         * image.c (mono_pe_file_open): New variant on mono_image_open()
24635         that does not set up the CLI metadata; used for FileVersionInfo so
24636         it can get the data for windows binaries too.
24637         
24638         * process.c (process_read_string_block): Don't read off the end of
24639         the StringTable block.
24640
24641         These both fix bug 70766.
24642
24643 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
24644
24645         * gc.c: set some fields to NULL at GC cleanup time.
24646         * threads.c: if we quit the main thread, call exit ().
24647
24648 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
24649
24650         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
24651
24652 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
24653
24654         * threads.h, threads.c, object.c: added accessor and settor for
24655         main_thread. Handle it specially when exiting from it: wait
24656         for other foreground threads to exit.
24657
24658 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
24659
24660         * process.c, verify.c: remove some bloat.
24661
24662 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
24663
24664         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
24665         the calling convention to cdecl under win32.
24666
24667 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
24668
24669         * object.c (mono_object_get_size): New function to get the size of
24670         an object instance.
24671
24672         * profiler.c (simple_allocation): Use above.
24673
24674 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
24675
24676         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
24677         ves_icall_System_AppDomain_getRootDomain (as it's not required to
24678         get an appdomain by it's id and we can't assume the root's id is 0).
24679         * domain-internals.h: Change the function prototype to match.
24680         * icall.c: Change the icall table for AppDomain.
24681
24682 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
24683
24684         * locales.c (string_invariant_compare_char): Only compute
24685         GUnicodeTypes in the case where we need them.  Test for ordinality
24686         first and return if so.
24687
24688         From the commit:
24689
24690                 /*
24691                  * FIXME: here we must use the information from c1type and c2type
24692                  * to find out the proper collation, even on the InvariantCulture, the
24693                  * sorting is not done by computing the unicode values, but their
24694                  * actual sort order.
24695                  */
24696
24697 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
24698
24699         * loader.c: for P/Invoke methods, allow the "Internal" shared
24700         library name to refer to the calling process symbol namespace.
24701
24702 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
24703
24704         * Makefile.am: Add the security manager to the build.
24705         * security-manager.c|h: New. Initialization of the security manager.
24706
24707 2005-01-07  Dick Porter  <dick@ximian.com>
24708
24709         * threads.c: 
24710         * monitor.c: Update thread state during Monitor and WaitHandle
24711         waits.  Fixes bug 71031.
24712
24713 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
24714
24715         * reflection.c (property_encode_signature): Correctly handle when the
24716         property has no methods.
24717
24718 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
24719
24720         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
24721         
24722         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
24723         fields from mb, not rmb. Fixes #71017.
24724
24725         * marshal.c (emit_ptr_to_str_conv): Add support for 
24726         ByValTStr -> string conversion. Fixes #71015.
24727
24728         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
24729
24730         * mempool.c (mono_mempool_contains_addr): New helper function.
24731
24732 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
24733
24734         * metadata.c (mono_metadata_compute_size): Fix size calculation of
24735         HasSematics encoded fields.
24736         
24737         * metadata.c (mono_type_to_unmanaged): Improve error message for 
24738         invalid string marshalling.
24739
24740         * metadata.c: Fix warnings.
24741         
24742 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
24743
24744         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
24745         profiler support.
24746
24747 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
24748
24749         * domain.c object.c domain-internals.h: Revert part of r38077 since the
24750         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
24751         tests.
24752
24753 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
24754
24755         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
24756         so methods containing these can be AOTed.
24757
24758 2005-01-03  Martin Baulig  <martin@ximian.com>
24759
24760         * loader.c (find_method): Removed the hack for generic instances.
24761         (method_from_memberref): If our parent is a generic instance, pass
24762         its generic type definition to find_method() and then inflate the
24763         method.
24764         (mono_get_method_constrained): Pass the generic type definition to
24765         find_method() and inflate the method later.
24766
24767         * class-internals.h (MonoStats): Added `generic_class_count'.
24768
24769         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
24770         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
24771
24772         * reflection.c (mono_custom_attrs_from_params): Don't ignore
24773         generic type definitions.
24774
24775 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
24776
24777         * loader.c icall.c: Fix warnings.
24778
24779 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
24780
24781         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
24782         blittable types. Fixes #70864.
24783
24784 2004-12-29  Martin Baulig  <martin@ximian.com>
24785
24786         * icall.c
24787         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
24788
24789         * reflection.c (mono_method_get_object): Create a
24790         "System.Reflection.MonoGenericMethod" for inflated methods; don't
24791         call mono_get_inflated_method().
24792
24793         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
24794
24795 2004-12-27  Martin Baulig  <martin@ximian.com>
24796
24797         * class-internals.h (MonoMethod): Added `is_inflated' flag.
24798         (MonoMethodInflated): Added `inflated' field.
24799
24800         * class.c (mono_class_inflate_generic_method): Don't really
24801         inflate the method here; just set the `is_inflated' flag in the
24802         MonoMethod.
24803         (mono_class_get_inflated_method): Actually inflate the method here
24804         if it's not already inflated; we use the MonoMethodInflated's new
24805         `inflated' field as a cache.
24806
24807 2004-12-26  Martin Baulig  <martin@ximian.com>
24808
24809         * class.c
24810         (inflate_generic_class): Moved some code out of inflate_generic_type().
24811         (mono_class_inflate_generic_method): If we're already inflated,
24812         inflate the context and use the declaring method; ie. make sure
24813         the declaring method of an inflated method is always the generic
24814         method definition.
24815         (mono_class_create_from_typedef): Create
24816         `class->generic_container->context->gclass'.
24817
24818 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
24819
24820         * metadata-internals.h, marshal.c, reflection.c: More
24821         MonoGHashTable->GHashTable.
24822
24823         * domain-internals.h, class.c: Change MonoGHashTable's into
24824         GHashTables for some cases where no gc stuff is used
24825
24826         All users: update apis
24827
24828 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
24829
24830         * metadata.c (builtin_types): Make this `const'. Makes this get
24831         put into the shareable section.
24832         (mono_metadata_init): Casts to make gcc happy.
24833
24834 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
24835
24836         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
24837
24838 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
24839
24840         * icall.c: Added an internal call to retrieve the position and length
24841         of assembly-level declarative security attributes (RequestMinimum, 
24842         RequestOptional and RequestRefuse). This is used by the Assembly class
24843         to re-create the corresponding permission sets.
24844
24845 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
24846
24847         * marshal.c: fix the stelemref wrapper to be type correct
24848         (and faster).
24849
24850 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
24851
24852         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
24853         to do key & 0x7fffffff. Hashtable already does this. It just
24854         results in longer code.
24855
24856 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
24857
24858         * appdomain.c: Bump corlib version.
24859         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
24860         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
24861         * reflection.c|h: Add functions to get declarative security infos
24862         (blob position and length) for assemblies, classes and methods.
24863
24864 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
24865
24866         * reflection.c: sort the constant table (bug #70693).
24867
24868 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
24869
24870         * object-internals.h, threads.c, domain.c: add accessors for
24871         the MonoThread and MonoDomain tls keys.
24872
24873 2004-12-18  Martin Baulig  <martin@ximian.com>
24874
24875         * class.c (inflate_generic_type): If we're inflating a generic
24876         instance, set `ngclass->context->container = context->container';
24877         ie. the container we inflated into.
24878
24879         * metadata.c (mono_metadata_parse_generic_param): Reflect above
24880         inflate_generic_type() changes.
24881
24882 2004-12-17  Martin Baulig  <martin@ximian.com>
24883
24884         * class-internals.h
24885         (MonoGenericClass): Replaced `MonoType *generic_type' with
24886         `MonoClass *generic_class'.  Removed `dynamic_info'; if
24887         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
24888         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
24889
24890 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
24891
24892         * exception.c (mono_exception_from_token): New helper function.
24893
24894 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
24895
24896         * assembly.c (mono_assembly_load_with_partial_name): Call 
24897         mono_assembly_loaded before invoking the preload hooks. Fixes
24898         #70564.
24899
24900         * object-internals.h (MonoThread): Change culture_info and 
24901         ui_culture_info into an array.
24902
24903         * threads.c: Cache culture info objects from more than one appdomain.
24904
24905         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
24906         current UI culture.
24907
24908 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
24909
24910         * threads.h threads.c appdomain.c: Clear the culture_info field of
24911         all threads during unloading if they point to an object in the dying
24912         appdomain.
24913
24914 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
24915
24916         * culture-info.h (TextInfoEntry): New struct
24917         * object-internals.h: sync with managed
24918         * locales.c: fill the `text_info_data' field
24919         * culture-info-tables.h: update
24920
24921 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
24922
24923         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
24924         collector.
24925
24926 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
24927
24928         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
24929         (ves_icall_ModuleBuilder_getMethodToken): Ditto
24930
24931 2004-12-12  Martin Baulig  <martin@ximian.com>
24932
24933         * mono-debug-debugger.c (write_type): If we're an enum and the
24934         builtin types have already been initialized, call mono_class_init().
24935
24936 2004-12-11  Martin Baulig  <martin@ximian.com>
24937
24938         * metadata.c (mono_metadata_load_generic_params): Added
24939         `MonoGenericContainer *parent_container' argument; automatically
24940         compute `container->is_method'; pass the correct owner to
24941         get_constraints().      
24942
24943         * reflection.c (compare_genericparam): Sort the GenericParam table
24944         according to increasing owners. 
24945
24946 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
24947
24948         * profiler.c: allow disabling the default profiler.
24949
24950 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
24951
24952         * decimal.c, icall.c: allow disabling System.Decimal support.
24953
24954 2004-12-09  Marek Safar <marek.safar@seznam.cz>
24955
24956         * reflection.c: Add support for null attribute arguments.
24957
24958 2004-12-09  Martin Baulig  <martin@ximian.com>
24959
24960         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
24961         names to get rid of compiler warnings.
24962
24963 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
24964
24965         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
24966         mono_marshal_load_type_info (). Fixes #69625.
24967         (mono_marshal_get_ptr_to_struct): Likewise.
24968
24969 2004-12-08  Martin Baulig  <martin@ximian.com>
24970
24971         * mono-debug.h: Bumped version number to 47.
24972
24973         * mono-debug-debugger.c
24974         (mono_debugger_event_handler, mono_debugger_event): Take two
24975         guint64 arguments insteed of a gpointer and a guint32.  
24976
24977 2004-12-08  Martin Baulig  <martin@ximian.com>
24978
24979         * debug-mono-symfile.h
24980         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
24981         `address' to `native_offset'.
24982
24983 2004-12-08  Martin Baulig  <martin@ximian.com>
24984
24985         * class.c (mono_class_create_from_typespec): Only inflate if we
24986         either have `context->gclass' or `context->gmethod'.
24987
24988 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
24989
24990         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
24991
24992         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
24993
24994         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
24995
24996         * reflection.c (mono_assembly_get_object): Remove the workaround put
24997         in for the release.
24998         
24999         * appdomain.c: Use the corlib_internal field from MonoAssembly.
25000
25001         * appdomain.c: Bump corlib version.
25002
25003         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
25004         be visible in other appdomains.
25005
25006 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
25007
25008         * threads.c: Interlocked inc and dec for longs were messed up,
25009         use a KISS based impl for this. Fixes 70234
25010
25011 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
25012
25013         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
25014
25015 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
25016
25017         * icall.c: fix to follow policy not to allow struct
25018         arguments in icalls.
25019
25020 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25021
25022         * process.c: make the patch that handles spaces in file paths work
25023         on mono/windows too.
25024
25025 2004-12-06  Martin Baulig  <martin@ximian.com>
25026
25027         * class.c (mono_class_create_generic): Call
25028         mono_class_setup_supertypes() if we're dynamic.
25029         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
25030
25031 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
25032
25033         * object-internals.h: Add new fields to MonoThread.
25034
25035         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
25036
25037         * icall.c threads-types.h threads.c: Add new icalls.
25038
25039         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
25040
25041         * object-internals.h (MonoReflectionAssembly): Sync object layout with
25042         managed side.
25043
25044         * appdomain.c: Bump corlib version.
25045
25046         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
25047         internal assemblies. Fixes #69181.
25048
25049 2004-12-05  Martin Baulig  <martin@ximian.com>
25050
25051         * class.c (mono_class_inflate_generic_signature): Make this a
25052         no-op if `context' is NULL or we don't have any type parameters;
25053         also copy `sentinelpos'.        
25054
25055 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
25056
25057         * image.c: Add unbox_wrapper_cache.
25058
25059         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
25060
25061         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
25062         function generator.
25063         
25064         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
25065         Fixes #70173.
25066
25067         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
25068         
25069 2004-12-04  Martin Baulig  <martin@ximian.com>
25070
25071         * loader.c (mono_method_get_signature_full): New public function;
25072         like mono_method_get_signature(), but with an additional
25073         `MonoGenericContext *' argument.
25074
25075         * class.c (mono_class_inflate_generic_signature): Formerly known
25076         as inflate_generic_signature(); make this public.
25077
25078 2004-12-04  Martin Baulig  <martin@ximian.com>
25079
25080         * metadata.c
25081         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
25082         instead of a `MonoGenericContainer *'.  
25083         (mono_metadata_parse_array_full): Likewise.
25084         (mono_metadata_parse_signature_full): Likewise.
25085         (mono_metadata_parse_method_signature_full): Likewise.
25086         (mono_metadata_parse_generic_inst): Likewise.
25087         (mono_metadata_parse_generic_param): Likewise.
25088         (mono_metadata_parse_mh_full): Likewise.
25089         (mono_type_create_from_typespec_full): Likewise.
25090
25091 2004-12-03  Martin Baulig  <martin@ximian.com>
25092
25093         * class-internals.h (MonoGenericContainer): Replaced the
25094         `MonoGenericContext * pointer with a `MonoGenericContext'
25095         structure and made it the first element.
25096
25097 2004-12-03  Martin Baulig  <martin@ximian.com>
25098
25099         * class.c
25100         (inflate_generic_type): Set the `context->container' when creating
25101         a new MonoGenericContext.
25102         (mono_class_inflate_generic_method): Likewise.
25103         (mono_class_create_from_typespec): Just use `context->container'
25104         to get the container.
25105
25106         * loader.c (method_from_methodspec): Set `context->parent' from
25107         `context->container' - and if that's a method container, use its
25108         parent.  Also set the `context->container' when creating a new
25109         MonoGenericContext.
25110         (mono_get_method_from_token): Use just `context->container' to get
25111         the container.
25112
25113         * metadata.c (do_mono_metadata_parse_generic_class): Also set
25114         `gclass->context->container'.
25115
25116         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
25117         the `context->container' when creating a new MonoGenericContext.
25118
25119 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
25120
25121         * reflection.c (compare_genericparam): Sort params with identical
25122         owner by their number. Fixes gen-111 on sparc.
25123
25124 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
25125
25126         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
25127         around the domain changes.
25128
25129         * appdomain.c (mono_domain_unload): Handle the case when the thread
25130         calling Unload is itself being aborted during unloading. Fixes #70022.
25131
25132         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
25133
25134         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
25135         checkpoint_func as an icall so it gets a wrapper.
25136         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
25137         in the cross-appdomain wrappers too.
25138
25139         * threads.c (mono_thread_has_appdomain_ref): Make this public.
25140
25141         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
25142
25143         * reflection.c: Fix some memory leaks.
25144         
25145 2004-12-02  Martin Baulig  <martin@ximian.com>
25146
25147         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
25148
25149         * metadata.c (generic_class_cache): New static hashtable.
25150         (mono_metadata_lookup_generic_class): New public method.
25151
25152 2004-12-02  Martin Baulig  <martin@ximian.com>
25153
25154         * class.c (mono_class_create_from_typedef): Call
25155         mono_class_setup_parent() and mono_class_create_mono_type() before
25156         parsing the interfaces.
25157
25158 2004-12-02  Martin Baulig  <martin@ximian.com>
25159
25160         * metadata.c (generic_inst_cache): New static hashtable.
25161         (mono_metadata_lookup_generic_inst): New public function.
25162         (mono_metadata_inflate_generic_inst): New public function.
25163         (mono_metadata_parse_generic_inst): New public function.
25164         (do_mono_metadata_parse_generic_class): Use the new
25165         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
25166         since this'll also use the cache.
25167
25168         * reflection.c (mono_reflection_bind_generic_method_parameters):
25169         Use mono_metadata_lookup_generic_inst() to use the new cache.
25170
25171         * class.c (inflate_mono_type): Use
25172         mono_metadata_inflate_generic_inst() to inflate a generic
25173         instance; this'll also use the new cache.
25174
25175         * loader.c (method_from_methodspec): Use
25176         mono_metadata_parse_generic_inst() and
25177         mono_metadata_inflate_generic_inst() rather than parsing it
25178         manually, so we can use the new cache.
25179
25180 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
25181
25182         * threads.c (wait_for_tids): Do not incorrectly free threads when 
25183         the wait times out.
25184
25185 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
25186
25187         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
25188         iter->args based on whether parameters are passed in registers (i.e.
25189         MONO_ARCH_REGPARMS is defined)
25190
25191 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
25192
25193         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
25194         the exception message. Fixes #70070.
25195         (method_from_methodspec): Fix warnings.
25196
25197 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25198
25199         * process.c: (complete_path) return the path quoted
25200
25201 2004-12-01  Martin Baulig  <martin@ximian.com>
25202
25203         * class-internals.h (MonoGenericInst): New structure.
25204         (MonoGenericClass): Replaced `type_argc', `type_argv' and
25205         `is_open' with `MonoGenericInst *inst'.
25206         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
25207         `is_open' with `MonoGenericInst *inst'.
25208
25209 2004-11-30  Martin Baulig  <martin@ximian.com>
25210
25211         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
25212
25213         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
25214         to `generic_class_cache'.
25215
25216         * metadata.c
25217         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
25218         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
25219         (mono_generic_inst_is_valuetype): Renamed to
25220         mono_generic_class_is_valuetype().
25221
25222         * class-internals.h
25223         (MonoGenericInst): Renamed to MonoGenericClass.
25224         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
25225         (MonoClass): Renamed `generic_inst' to `generic_class'.
25226         (MonoGenericContext): Renamed `ginst' to `gclass'.
25227
25228         * object-internals.h
25229         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
25230
25231         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
25232         mono_reflection_generic_class_initialize().
25233
25234         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
25235         now known as "System.Reflection.MonoGenericClass".
25236         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
25237
25238 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
25239
25240         * class-internals.h: Added a flag field to MonoClass to cache the
25241         declarative security attributes actions associated with the class.
25242         * domain-internals.h: Added booleans to MonoJitInfo to cache the
25243         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
25244         applicable to the JITted method.
25245         * reflection.c|h: Added functions to extract (as flags) which security
25246         actions are available (declaratively) for a method, class or assembly.
25247         * metadata.c|h: Added functions to search the declarative security
25248         table in the metadata.
25249         
25250 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
25251
25252         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
25253         EXPORTEDTYPES are already in the class name cache, so there is no
25254         need to add extra code here to look at them. Just removes a bit of
25255         cruft.
25256
25257         (ves_icall_System_Environment_get_TickCount): No need for #if
25258         WINDOWS. We already have the code in io-layer.
25259
25260 2004-11-28  Martin Baulig  <martin@ximian.com>
25261
25262         * loader.c
25263         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
25264         Fixes gen-112.cs.
25265
25266 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
25267
25268         * assembly.c (do_mono_assembly_open): Instead of having a
25269         conditional WITH_BUNDLE, incorporate support for bundles here, by
25270         having a global `bundles' variable holding a pointer to the actual
25271         bundles. 
25272
25273         (mono_register_bundled_assemblies): New API call used by the
25274         bundle code. 
25275
25276         See mkbundle.1 for details.
25277         
25278 2004-11-27  Martin Baulig  <martin@ximian.com>
25279
25280         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
25281         the vtable for generic methods.
25282
25283 2004-11-26  Martin Baulig  <martin@ximian.com>
25284
25285         * metadata.c
25286         (mono_metadata_generic_method_hash): New public function.
25287         (mono_metadata_generic_method_equal): Likewise.
25288
25289         * class-internals.h
25290         (MonoGenericContainer): Added `GHashTable *method_hash'.
25291
25292         * reflection.c (ReflectionMethodBuilder): Added
25293         `MonoGenericContainer *generic_container'.
25294         (reflection_methodbuilder_to_mono_method): Don't create a new
25295         MonoGenericContainer each time we're called.
25296         (mono_reflection_bind_generic_method_parameters): Use
25297         `container->method_hash' to cache the results so we don't create a
25298         different method if we're called several times with the same
25299         arguments.
25300
25301         * loader.c (method_from_methodspec): Use the new
25302         `container->method_hash' here, too.
25303
25304 2004-11-26  Martin Baulig  <martin@ximian.com>
25305
25306         * class.c (inflate_generic_signature): Correctly compute
25307         `res->has_type_parameters'.
25308         (mono_class_vtable): Use the `has_type_parameters' flag to
25309         determine whether we're a generic method.
25310
25311         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
25312
25313 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
25314
25315         * object.c (mono_runtime_run_main): Fix a small memory leak.
25316
25317 2004-11-25  Martin Baulig  <martin@ximian.com>
25318
25319         * class.c (set_generic_param_owner): Fixed the loop.
25320
25321 2004-11-25  Martin Baulig  <martin@ximian.com>
25322
25323         * object.c (mono_class_vtable): Don't create any JIT wrappers for
25324         generic methods.
25325
25326 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
25327
25328         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
25329         names. Fixes #69787.
25330
25331 2004-11-24  Martin Baulig  <martin@ximian.com>
25332
25333         * class.c (mono_class_create_generic_2): If we don't have a
25334         `ginst->parent', inflate `gklass->parent' to get our parent.
25335
25336 2004-11-24  Martin Baulig  <martin@ximian.com>
25337
25338         * reflection.c (compare_genericparam): Correctly sort the
25339         GenericParam table; fixes #69779.
25340
25341 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
25342
25343         * reflection.c: When writing a PE file, don't create a huge
25344         buffer in memory. Just write the arrays we have to the file.
25345         This reduces memory usage.
25346
25347         * metadata-internals.h: MonoDynamicStream pefile is no longer used
25348         globally.
25349
25350 2004-11-17  Martin Baulig  <martin@ximian.com>
25351
25352         * class.c (mono_class_init): Don't setup `class->parent' for
25353         dynamic instances; moved this to mono_class_generic_2().
25354         (mono_class_create_generic): Also set `klass->inited' for dynamic
25355         generic instances.
25356         (mono_class_create_generic_2): Don't do anything for dynamic
25357         generic instances.  Set `klass->parent' here and also call
25358         mono_class_setup_parent() here. 
25359
25360         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
25361         `MonoType *parent' argument; set `ginst->parent' before calling
25362         mono_class_create_generic_2(), so we set the correct parent.
25363
25364 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
25365
25366         * reflection.c: allow getting attributes from ModuleBuilder
25367         (used by ikvm).
25368
25369 2004-11-17  Martin Baulig  <martin@ximian.com>
25370
25371         * class.c (mono_class_create_from_typedef): If a type parameter is
25372         inherited from an outer class, set its owner to that class.
25373
25374 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
25375
25376         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
25377           for (int*) written size. This fixes bug #69592.
25378
25379 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
25380
25381         * icall.c: Added IsAuthenticodePresnet internal call.
25382         * image.c|h: New function that check a MonoImage for an Authenticode
25383         signature in the certificate PE data directory.
25384         * security.c|h: New internal call to ask the runtime if an 
25385         Authenticode signature seems referenced in the PE header.
25386
25387 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
25388
25389         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
25390
25391         * reflection.c (mono_image_create_pefile): Free the assembly streams
25392         after writing out the assembly file.
25393
25394         * object.c (mono_runtime_run_main): Fix small memory leak.
25395
25396         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
25397         property access modifiers. Fixes #69389.
25398
25399 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
25400
25401         * domain.c, object.c, object-internals.h, domain-internals.h,
25402         object.h, marshal.c: keep dynamic code info per domain.
25403
25404 2004-11-15  Martin Baulig  <martin@ximian.com>
25405
25406         * class.c (mono_type_get_name_recurse): Put type arguments in
25407         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
25408         see bug #68387.
25409
25410 2004-11-15  Martin Baulig  <martin@ximian.com>
25411
25412         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
25413         (mono_class_setup_vtable): When computing `the_cname' for a
25414         generic instance, don't include the namespace since we'd otherwise
25415         add it twice.
25416
25417 2004-11-15  Martin Baulig  <martin@ximian.com>
25418
25419         * class.c (mono_class_create_generic): Changed return type to void.
25420         (mono_class_create_generic_2): New public function; setup
25421         `class->method', `class->field' and `class->interfaces' here
25422         instead of in mono_class_init().
25423
25424         * class.h (mono_class_create_generic): Moved to class-internals.h.
25425
25426 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
25427
25428         * reflection.c (mono_image_create_pefile): take a file HANDLE.
25429         rather than writing to memory, write to this file. Right now,
25430         we are just writting into a buffer, and copying that. However
25431         we can avoid the buffer later.
25432
25433         (mono_dynamic_stream_reset): new function
25434
25435         * icall.c, object-internals.h: update for the above.
25436
25437 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
25438
25439         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
25440         have been using gc'd memory. First it is slower, unlikely
25441         the comment in the source code said, secondly, it increases
25442         our footprint to do it in the gc.
25443
25444         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
25445         the method so that it does not have to copy to managed code.
25446
25447 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
25448
25449         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
25450
25451 2004-11-12  Martin Baulig  <martin@localhost>
25452
25453         * reflection.c (mono_image_create_token): Allow generic method
25454         definitions here, since they may appear in an `.override'; see
25455         gen-98/gen-99 for an example.
25456
25457 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
25458
25459         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
25460         #69365.
25461
25462         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
25463         descriptive.
25464
25465 2004-11-11  Martin Baulig  <martin@ximian.com>
25466
25467         * class.c (mono_class_setup_vtable): In an explicit interface
25468         implementation, the method name now includes the arity.
25469
25470 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
25471
25472         * object.c (mono_array_full_copy): Fix warning.
25473
25474 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
25475
25476         * appdomain.c: Removed look_for_method_by_name(). Use the new method
25477         mono_class_get_method_from_name() instead.
25478         
25479         * class-internals.h: Added two new types of wrappers. 
25480         Added MonoRemotingTarget enum. Added new trampoline function type, which
25481         takes an additional MonoRemotingTarget value as parameter, so it is
25482         possible to request a trampoline for a specific target.
25483         
25484         * class.c: Added new mono_class_get_method_from_name() method.
25485         
25486         * class.h: In MonoRemoteClass, we can have now to vtables, one for
25487         general remoting sinks and one specific for cross domain calls.
25488         
25489         * debug-helpers.c: Added new wrapper names.
25490         
25491         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
25492         of a remote class.
25493         
25494         * image.c: Porperly delete value objects form the remoting invoke hashtable.
25495         
25496         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
25497         with several other methods (mono_marshal_get_xappdomain_dispatch,
25498         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
25499         and others) can generate a fast remoting wrapper for cross domain calls.
25500         More information can be found in docs/remoting.
25501         Other changes: Removed mono_find_method_by_name, and used
25502         mono_class_get_method_from_name instead.
25503         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
25504         is stored in the remoting invoke hashtable.
25505         
25506         * marshal.h: published the new method for getting the xdomain wrapper,
25507         and also added a method for getting the adequate wrapper for a given
25508         method and target.
25509         
25510         * object-internals.h, object.c: Added a couple of methods for capying and
25511         cloning arrays.
25512         Modified mono_install_remoting_trampoline, which takes the new remoting
25513         trampoline that has a remoting target as parameter.
25514         mono_class_proxy_vtable now also takes a remoting target as parameter, and
25515         will return the most suitable vtable for the target.
25516         Added mono_remote_class_vtable, which returns the vtable of a remote class
25517         (which can be the normal remoting vtable or the xdomain vtable).
25518         
25519         * threads.c: the xdomain invoke and dispatch wrappers must also be
25520         protected against interruptions.
25521
25522 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25523
25524         * icall.c: use memmove in BlockCopyInternal when the source and
25525         destination arrays are the same.
25526
25527 2004-11-09  Martin Baulig  <martin@ximian.com>
25528
25529         * class-internals.h (MonoGenericContainer): Removed `method' and
25530         `signature', replaced them with `is_method' and `is_signature'
25531         flags.  Added `context'.
25532
25533         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
25534         instead of a `MonoGenericContainer *'.
25535
25536         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
25537         for dynamic type parameters.
25538         (mono_metadata_load_generic_params): Setup `container->context'.
25539
25540         * reflection.c (mono_reflection_setup_generic_class): Setup
25541         `tb->generic_container->context'.
25542         (do_mono_reflection_bind_generic_parameters): Use
25543         mono_class_inflate_generic_type() to correctly inflate types,
25544         rather than using our own hack just for MONO_TYPE_VAR.
25545
25546 2004-11-09  Martin Baulig  <martin@ximian.com>
25547
25548         * class.c (mono_class_inflate_generic_method): Small fix; don't
25549         crash here.
25550
25551         * icall.c
25552         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
25553         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
25554         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
25555         (ves_icall_Type_BindGenericParameters): Likewise.
25556         (ves_icall_Type_get_IsGenericInstance): Likewise.
25557         (ves_icall_Type_GetGenericParameterPosition): Likewise.
25558         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
25559         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
25560         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
25561
25562 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
25563
25564         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
25565         assembly versions and public key tokens. Fixes #69113.
25566
25567 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
25568
25569         * metadata.c: fix bug introduced with the type cache changes
25570         on 2004-11-06.
25571
25572 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
25573
25574         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
25575         the MonoClass pointer instead of the token in exception clauses.
25576         * reflection.c: updates for the above and make the code not depend
25577         on the structure of MonoExceptionClause.
25578
25579 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
25580
25581         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
25582         Add support for dynamic assemblies. Fixes #69114.
25583
25584         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
25585
25586 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
25587
25588         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
25589         since most only those methods use it. the code member of
25590         MonoMethodPInvoke was dead, so that can be removed too. Also,
25591         remove inline_count (again, not used), and move slot so that it
25592         can share bits with some other flags. This saves 8 bytes in the
25593         structure and gives us about 50 kb back for mcs helloworld.cs
25594
25595         * *.[ch]: Do naming changes for the above.
25596
25597         * loader.c (mono_method_get_header): Lazily init the header
25598         on first access.
25599         (mono_get_method_from_token): don't init the header here
25600         (mono_free_method): the header may never be allocated
25601
25602         Overall, this saves 150 kb of unmanaged allocations
25603         for mcs helloworld.cs. That accounts for 10% of the unmanaged
25604         memory at runtime.
25605         
25606         * loader.c, loader.h (mono_method_get_header): new accessor.
25607
25608         * *.[ch]: use the above method. Prepares us to lazily load
25609         the header.
25610
25611         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
25612         three warnings, which are actual bugs (see 69206).
25613
25614         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
25615         unused. Saves a cool 4 bytes / method.
25616
25617 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
25618
25619         * metadata.c (builtin_types): Add types for System.Object here.
25620         (mono_metadata_parse_type_full): Cache MonoType*'s that are
25621         for a class or valuetype from klass->this_arg or klass->byval_arg.
25622
25623         On mcs for a hello world, this gets us down from 21836 MonoType's
25624         to 14560.
25625
25626         (mono_metadata_free_type): Account for the above change.
25627
25628 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
25629
25630         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
25631         exception instead of asserting if name is null.
25632         (ves_icall_System_AppDomain_GetData): Ditto.
25633
25634 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
25635
25636         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
25637         EnumBuilder.
25638
25639         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
25640         Return NULL when the domain does not have entry_assembly set.
25641
25642         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
25643         Add a 'resource_modules' argument.
25644         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
25645
25646         * reflection.c (mono_reflection_create_runtime_class): Move setting
25647         of wastypebuilder here, so mono_get_type_object () returns a MonoType
25648         for enums too.
25649
25650         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
25651         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
25652         Throw an ArgumentNullException if 'ptr' is null.
25653
25654         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
25655         assemblies here. Fixes #69020.
25656
25657 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
25658
25659         * reflection.c (build_compressed_metadata): Fix the previous patch for
25660         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
25661         the stack.
25662
25663 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
25664
25665         * assembly.c (mono_assembly_names_equal): Allow a match if one of
25666         the cultures is false. Fixes #69090.
25667
25668         * reflection.c (build_compressed_metadata): Fix invalid memory read 
25669         detected by valgrind.
25670         
25671         * reflection.c (mono_reflection_get_type): Avoid triggering a 
25672         TypeResolve multiple times for the same type. Fixes #65577.
25673
25674 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
25675
25676         * marshal.c: Avoid using ldftn to call managed functions. It is
25677         much slower than just a call.
25678
25679         * reflection.c (mono_module_get_object): free the basename we
25680         allocate here from glib.
25681         
25682         * reflection.c (ensure_runtime_vtable): make sure to free
25683         overrides.  Also, we were allocating an array of MonoMethod not an
25684         array of MonoMethod*.
25685
25686         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
25687
25688         * image.c (mono_image_close): free image->guid here.
25689
25690 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
25691
25692         * reflection.c: Fix some spec conformance issues with the PE file
25693         structures so mcs compiled apps run on the Net 2.0 beta.
25694
25695 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
25696
25697         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
25698         Implement this. Fixes #67264.
25699
25700         * debug-helpers.h debug-helpers.c marshal.c: Move 
25701         mono_find_method_by_name to debug-helpers.c.
25702
25703 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
25704
25705         * object.c (mono_release_type_locks): type_initialization_hash is
25706         a GHashTable.
25707
25708         * reflection.c object.c object-internals.h: Fix warnings.
25709
25710         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
25711         without accessors. Fixes #61561.
25712
25713         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
25714         application base from the root domain if not set. Fixes #65641.
25715         (mono_runtime_init): Fix warning.
25716
25717 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25718
25719         * appdomain.c: call mono_thread_pool_init.
25720         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
25721         of worker threads based on the number of CPUs and the environment
25722         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
25723         for non-windows (windows) systems.
25724
25725 2004-10-27  Chris Toshok  <toshok@ximian.com>
25726
25727         * mono-debug-debugger.c (write_class): don't call mono_class_init
25728         here, as even with the check for (!klass->init_pending), we get
25729         into a situation where we're hitting cycles in class
25730         initialization.  Fixes #68816.
25731
25732 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
25733
25734         * image.c: Avoid overwriting values in the loaded_images_hash when an
25735         assembly is loaded multiple times. Fixes #61152.
25736
25737         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
25738         so multiple satellite assemblies for the same name can be loaded.
25739         Fixes #68259.
25740
25741         * mono_domain_assembly_preload: Actually return the loaded assembly, 
25742         not NULL.
25743
25744         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
25745         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
25746
25747         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
25748         pending finalizers are not invoked after the appdomain has been 
25749         unloaded. Fixes #67862.
25750
25751 2004-10-22  Martin Baulig  <martin@ximian.com>
25752
25753         * mono-debug-debugger.c
25754         (mono_debugger_runtime_invoke): Don't box valuetypes.
25755
25756 2004-10-22  Chris Toshok  <toshok@ximian.com>
25757
25758         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
25759         don't hide private methods.
25760
25761 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
25762
25763         * icall.c: Allows the runtime to "share" (when known) the public key
25764         token of an assembly. This avoid the need to recalculate the token 
25765         (from the public key) in managed code.
25766
25767 2004-10-21  Chris Toshok  <toshok@ximian.com>
25768
25769         * debug-helpers.c (append_class_name): argh, revert last patch.
25770         
25771 2004-10-21  Chris Toshok  <toshok@ximian.com>
25772
25773         * debug-helpers.c (append_class_name): use '+' as the delimiter,
25774         not '/', so that it matches what the debugger uses to look up
25775         methods.
25776
25777 2004-10-21  Martin Baulig  <martin@ximian.com>
25778
25779         * mono-debug-debugger.c (mono_debugger_throw_exception): New
25780         public method; this is called each time an exception is thrown and
25781         allows the debugger to use exception catch points.
25782
25783 2004-10-21  Martin Baulig  <martin@ximian.com>
25784
25785         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
25786         the stack pointer and the exception object in some struct and pass
25787         that to the debugger.
25788
25789 2004-10-21  Chris Toshok  <toshok@ximian.com>
25790
25791         * mono-debug-debugger.c (do_write_class): add instance/static
25792         event support.  We don't expose "raise" or "other" yet.
25793         (event_is_static): new method.
25794
25795 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
25796
25797         * mono-debug-debugger.c
25798         (mono_debugger_handle_exception): Remove
25799         bogus return value for fussy compilers.
25800
25801 2004-10-20  Martin Baulig  <martin@ximian.com>
25802
25803         * mono-debug-debugger.c
25804         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
25805         (mono_debugger_handled_exception): Likewise.
25806
25807 2004-10-20  Martin Baulig  <martin@ximian.com>
25808
25809         * mono-debug-debugger.h (MonoDebuggerEvent): Added
25810         MONO_DEBUGGER_EVENT_EXCEPTION.
25811
25812         * mono-debug-debugger.c (mono_debugger_handle_exception): New
25813         public function to send the debugger a notification for an
25814         exception and inform it about a catch/finally clause.
25815
25816 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
25817
25818         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
25819         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
25820         fix 2.95 build. 
25821
25822         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
25823
25824 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
25825
25826         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
25827         marshalled as [In,Out]. Fixes #58325.
25828
25829 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
25830
25831         * reflection.c (mono_method_body_get_object): Implement some fields.
25832
25833 2004-10-12  Martin Baulig  <martin@ximian.com>
25834
25835         * reflection.c (mono_reflection_bind_generic_parameters): Small
25836         fix, correctly retrieve our parent from a generic instance.
25837
25838 2004-10-12  Martin Baulig  <martin@ximian.com>
25839
25840         * metadata.c (mono_metadata_generic_param_equal): We always have
25841         an owner.
25842
25843         * class.c
25844         (mono_class_from_generic_parameter): We need to have an owner.
25845         (my_mono_class_from_generic_parameter): Likewise.
25846
25847         * reflection.c (mono_reflection_setup_generic_class): Renamed to
25848         mono_reflection_create_generic_class() and added a new
25849         mono_reflection_setup_generic_class().  
25850         (mono_reflection_initialize_generic_param): If we're a nested
25851         generic type and inherited from the containing class, set our
25852         owner to the outer class.
25853
25854 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
25855
25856         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
25857
25858         * reflection.c (mono_method_body_get_object): New function to create
25859         a MethodBody object.
25860
25861         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
25862
25863 2004-10-11  Martin Baulig  <martin@ximian.com>
25864
25865         * metadata.c (_mono_metadata_type_equal): Renamed to
25866         do_mono_metadata_type_equal() and made static.
25867
25868 2004-10-11  Martin Baulig  <martin@ximian.com>
25869
25870         * appdomain.c: Bump corlib version number to 28.
25871
25872 2004-10-10  Martin Baulig  <martin@ximian.com>
25873
25874         * class-internals.h
25875         (MonoGenericInst): Added `MonoGenericContainer *container'.
25876         (MonoGenericMethod): Likewise.
25877         (MonoGenericContext): Likewise.
25878         (MonoGenericParam): Added `MonoGenericContainer *owner'.
25879
25880         * metadata.c
25881         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
25882         (do_mono_metadata_parse_generic_inst): Likewise.
25883         (mono_metadata_parse_type_full): New public method.  This is the actual
25884         mono_metadata_parse_type() implementation - with an additional
25885         `MonoGenericContainer *' argument.
25886         (mono_metadata_parse_array_full): Likewise.
25887         (mono_metadata_parse_signature_full): Likewise.
25888         (mono_metadata_parse_method_signature_full): Likewise.
25889         (mono_metadata_parse_mh_full): Likewise.
25890         (mono_type_create_from_typespec): Likewise.
25891         (mono_metadata_interfaces_from_typedef_full): New public method;
25892         this is similar to the other _full() methods, but we take a
25893         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
25894         (mono_metadata_parse_generic_param): Take an additional
25895         `MonoGenericContainer *' argument and lookup the MonoGenericParam
25896         from that container.
25897         (mono_metadata_generic_param_equal): New static method to compare
25898         two type parameters.
25899         (_mono_metadata_type_equal): New static method; takes an
25900         additional `gboolean signature_only' argument - if true, we don't
25901         compare the owners of generic parameters.
25902         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
25903         with a TRUE argument - do a signature-only comparision.
25904
25905         * loader.c: Use the new _full() methods and pass the
25906         MonoGenericContainer to them.
25907
25908         * object-internals.h (MonoReflectionTypeBuilder): Added
25909         `MonoGenericContainer *generic_container' field.
25910         (MonoReflectionMethodBuilder): Likewise.
25911
25912 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
25913
25914         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
25915         case initial images of dynamic assemblies.
25916
25917         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
25918
25919         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
25920
25921         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
25922         length of event->other array.
25923         (typebuilder_setup_events): Ditto.
25924
25925         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
25926         'assembly_by_name' and add an 'assemblies' list.
25927
25928         * assembly.h assembly.c: Add a new search hook for determining whenever
25929         an assembly is already loaded. Use this instead of searching in the
25930         loaded_assemblies list.
25931
25932         * domain.c appdomain.c: Implement the new search hook so loaded 
25933         assemblies are now scoped by appdomain. Fixes #67727.
25934
25935 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
25936
25937         * threads.c (mono_thread_attach): Initialize synch_lock field so
25938         mono_thread_detach works again.
25939
25940         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
25941         'lib' too. Fixes #63130.
25942
25943 2004-10-06  Jackson Harper  <jackson@ximian.com>
25944
25945         * culture-info-tables.h: regenerated.
25946
25947 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
25948
25949         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
25950         implemented by other interfaces in the result. Fixes #65764.
25951         
25952         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
25953         Handle unloadable modules without crashing.
25954
25955         * image.c (load_modules): Revert the previous patch since modules must
25956         have a fixed index inside the array.
25957         
25958         * image.c (load_modules): Don't include native modules in the modules
25959         array.
25960
25961 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
25962
25963         * reflection.h: Add param_defaults field.
25964
25965         * reflection.c: Add support for parameter defaults in dynamic methods.
25966         Fixes #64595.
25967
25968         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
25969         an empty string when a type has no namespace. Fixes #64230.
25970
25971 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
25972
25973         * tabledefs.h: Added "internal" security actions to support non-CAS
25974         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
25975         Note: they do not seems to be used anymore in 2.0 (new metadata format)
25976
25977 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
25978
25979         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
25980         constructor of abstract class. Fixes #61689.
25981
25982 2004-10-04  Martin Baulig  <martin@ximian.com>
25983
25984         * class-internals.h (MonoGenericContainer): New type.
25985         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
25986         `MonoGenericContainer *generic_container'.
25987         (MonoClass): Replaced `gen_params' and `num_gen_params' with
25988         `MonoGenericContainer *generic_container'.
25989
25990         * metadata.c (mono_metadata_load_generic_params): Return a
25991         `MonoGenericContainer *' instead of a `MonoGenericParam *';
25992         removed the `num' argument.
25993
25994 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
25995
25996         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
25997         for dynamic images.
25998
25999         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
26000         machine fields.
26001
26002         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
26003
26004         * reflection.c: Save pe_kind and machine values into the generated
26005         image file.
26006
26007         * appdomain.c: Bump corlib version number.
26008
26009         * object-internals.h: Reorganize layout of LocalBuilder.
26010
26011         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
26012         New helper function.
26013
26014         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
26015         created MonoType for dynamic types. Fixes #66180.
26016
26017 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
26018
26019         * threadpool.c: the ares hashtable needs a critical section around it.
26020         this prevents some nasty segfaults
26021
26022 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
26023
26024         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
26025         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
26026         bug 67324).
26027         
26028 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
26029
26030         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
26031         
26032 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
26033
26034         * image.c: Always canonicalize image file names, to avoid loading
26035         the same assembly twice when referenced using a relative path.
26036
26037 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
26038
26039         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
26040
26041         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
26042
26043         * marshal.c: Fix warnings.
26044
26045 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
26046
26047         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
26048         attempting to marshal the delegate_trampoline as the method_addr.
26049         This patch has a static hashtable of marshalled delegates so that 
26050         we can map delegate_trampoline addresses back to delegates.  This
26051         allows a delegate passed to managed code to be passed back into native
26052         code.  Fixes #67039
26053
26054 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
26055
26056         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
26057
26058         * reflection.c (method_encode_code): Align method headers properly.
26059         Fixes #66025.
26060
26061 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
26062
26063         * marshal.c: In the runtime invoke wrapper, reset the abort
26064         exception if it is cached. This avoids the automatic rethrowal of 
26065         the exception after the catch of the wrapper. Also check for pending
26066         interruptions before calling the managed method. This is done using
26067         the new method emit_thread_force_interrupt_checkpoint, since the
26068         normal checkpoint method is ignored when running the invoke wrapper.
26069         * object.c: If the abort exception is rethrown, set the abort_exc
26070         field of the thread, so it will be rethrown aftere every catch.
26071         * threadpool.c: Only run an interruption checkpoint if what has been
26072         requested is a stop of the thread (aborts will be ignored).
26073         * threads.c: By default, a thread will now never be interrumped while
26074         running the runtime invoke wrapper (this ensures that runtime_invoke
26075         will always return to the caller if an exception pointer is provided).
26076         There is a new special method mono_thread_force_interruption_checkpoint()
26077         to force an interruption checkpoint even if running a protected
26078         wrapper, which is used by the same runtime invoke wrapper to do a check
26079         at a safe point.
26080
26081 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
26082
26083         * object.c, object-internals.h: Implemented mono_release_type_locks,
26084         which releases the cctor locks held by a thread.
26085         * threads.c, threads.h: In thread_cleanup, release cctor locks held
26086         by a thread. Added mono_thread_exit() method to be used to safely stop
26087         a thread.
26088
26089 2004-09-28  Raja R Harinath  <rharinath@novell.com>
26090
26091         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
26092         Move null check before dereference.  Avoid indexing beyond the end
26093         of the 'modules' array.
26094
26095 2004-09-28  Raja R Harinath  <rharinath@novell.com>
26096
26097         * metadata-internals.h (MonoImage): Add module_count field.
26098         * image.c (load_modules): Set image->module_count.
26099         (mono_image_load_file_for_image): Use image->module_count.
26100         * reflection.c (mono_image_load_module): Append to image->modules array 
26101         of dynamic assembly.
26102         (mono_module_get_object): Fix loop to actually increment index.
26103         Use image->module_count.
26104         * assembly.c (mono_assembly_load_references): Use image->module_count.
26105         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
26106         Likewise.
26107
26108 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
26109
26110         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
26111         Avoid assert on generic types.
26112
26113 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
26114
26115         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
26116
26117         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
26118
26119         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
26120         function to convert a MarshalSpec structure to its managed counterpart.
26121
26122         * reflection.c: Fix warnings.
26123         
26124         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
26125         field.
26126
26127         * icall.c (mono_create_icall_signature): Fix build.
26128
26129 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
26130
26131         * icall.c: Add MakePointType icall.
26132
26133         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
26134         warnings.
26135
26136 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26137
26138         * threadpool.c: reuse allocated slots in the queue.
26139
26140 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
26141
26142         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
26143
26144         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
26145
26146         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
26147         previous change.
26148
26149         * tabledefs.h: Add constants for pinvoke attributes BestFit and
26150         ThrowOnUnmappableChar.
26151
26152         * icall.c (ves_icall_Type_GetPacking): New icall.
26153
26154 2004-09-24  Martin Baulig  <martin@ximian.com>
26155
26156         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
26157
26158 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26159
26160         * appdomain.c:
26161         (mono_domain_set): allow setting a domain that is being unloaded.
26162         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
26163         being unloaded.
26164
26165 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
26166
26167         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
26168         the GetCustomAttributes icall.
26169
26170 2004-09-23  Martin Baulig  <martin@ximian.com>
26171
26172         * object-internals.h (MonoReflectionGenericParam): Replaced
26173         'has_ctor_constraint', `has_reference_type' and `has_value_type'
26174         with `guint32 attrs'.
26175
26176 2004-09-23  Martin Baulig  <martin@ximian.com>
26177
26178         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
26179
26180 2004-09-23  Martin Baulig  <martin@ximian.com>
26181
26182         * object-internals.h (GenericParameterAttributes): New enum.
26183
26184 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
26185
26186         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
26187         
26188         * class.c (init_events): Fill out event->other field.
26189
26190         * class.c: Fix warnings.
26191
26192         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
26193
26194 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
26195
26196         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
26197         walk which doesn't supply the IL offset.
26198
26199 2004-09-22  Martin Baulig  <martin@ximian.com>
26200
26201         * reflection.c (mono_reflection_setup_internal_class): If we're
26202         System.ValueType, System.Object or System.Enum, set
26203         `klass->instance_size' and create the vtable.
26204         (mono_reflection_create_internal_class): If we're an enum type,
26205         get the base class from our current corlib.
26206
26207 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
26208
26209         * reflection.h (MonoResolveTokenError): New type.
26210
26211         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
26212         icall.
26213
26214         * icall.c: Add an 'error' argument to the ResolveToken icalls.
26215
26216 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
26217
26218         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
26219         Support also calling constructors, but only for already allocated objects.
26220
26221 2004-09-17  Geoff Norton <gnorton@customerdna.com>
26222
26223         * reflection.c (type_get_qualified_name): If the klass is null
26224         return the typename to avoid a NullRefEx.
26225         (encode_cattr_value): Get the qualified name of the boxed type,
26226         not the underlying enumtype.  Fixes #62984.
26227
26228 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
26229
26230         * marshal.c: Fix problems with previous checkin.
26231
26232 2004-09-21    <vargaz@freemail.hu>
26233
26234         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
26235         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
26236
26237         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
26238
26239 2004-09-21  Geoff Norton <gnorton@customerdna.com>
26240
26241         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
26242         should only return a type for pointers, arrays, and passbyref types.
26243         Fixes bug #63841.
26244
26245 2004-09-21  Martin Baulig  <martin@ximian.com>
26246
26247         * domain.c (mono_debugger_check_runtime_version): New public
26248         function.
26249
26250         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
26251
26252 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
26253
26254         * reflection.c: Added missing sort to the declarative security 
26255         attributes table. MS implementation stops seeing the attributes if the
26256         token number regress in the table (as shown by ildasm and permview).
26257
26258 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
26259
26260         * object-internals.h (MonoReflectionModule): Add 'token' field.
26261         
26262         * reflection.c (mono_reflection_get_token): Add support for Module
26263         and Assembly.
26264         (mono_module_get_object): Set 'token' field.
26265         (mono_module_file_get_object): Set 'token' field.
26266
26267         * icall.c: Add new Assembly and Module icalls.
26268
26269         * appdomain.c: Bump corlib version.
26270
26271 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
26272
26273         * loader.h loader.c class.h class.c: Add helper functions for obtaining
26274         tokens of metadata objects.
26275
26276         * reflection.h reflection.c (mono_reflection_get_token): New function
26277         to obtain the token of a metadata object.
26278
26279         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
26280
26281 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
26282
26283         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
26284         
26285         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
26286
26287 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
26288
26289         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
26290         * object-internals.h: Added 3 MonoArray* members to MonoReflection
26291         AssemblyBuilder to access the permissions set in the class lib.
26292         * reflection.c: Added security attributes encoding step in 
26293         mono_image_build_metadata.
26294         * tabledefs.h: Added new security actions defined in 2.0:
26295         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
26296
26297 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
26298
26299         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
26300         macro parameter.
26301
26302 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
26303  
26304         * locales.c: nullify the ICU_collator member of CompareInfo when it is
26305           finalized. There where random SIGSEVs at program termination, when
26306           an object being finalized was trying to do a string comparison and
26307           the current culture was already finalized.
26308  
26309 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26310
26311         * threads.c: call thread_cleanup before finishing the thread if we get
26312         there.
26313
26314 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
26315
26316         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
26317         assemblies from the parent. Fixes #65665.
26318
26319 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
26320
26321         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
26322         modifiers.
26323
26324 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
26325
26326         * reflection.h: add prototype for mono_get_dbnull_object
26327         * reflection.c: add prototypes for get_default_param_value_blobs 
26328         and mono_get_object_from_blob for fussier compilers
26329
26330 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
26331  
26332         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
26333         false deadlock checks in class initialization.
26334  
26335 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
26336
26337         * image.c (mono_image_addref): Fix comment.
26338
26339         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
26340         possible.
26341
26342 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
26343
26344         * reflection.c (mono_param_get_objects): Modified to return
26345         ParameterInfo.DefaultValue object.
26346
26347         (get_default_param_value_blobs):
26348         (mono_get_object_from_blob):
26349         (mono_get_dbnull_object): New helper routines. 
26350
26351         * object.c (mono_get_constant_value_from_blob): New helper routine
26352         carved out from get_default_field_value ()
26353
26354         * object-internals.h (mono_get_constant_value_from_blob): Added
26355         function declaration.
26356
26357 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
26358
26359         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
26360         referenced assemblies. Fixes #62135.
26361
26362         * exception.h exception.c (mono_get_exception_file_not_found2): New
26363         helper function.
26364
26365 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
26366
26367         * class.h class.c: Add mono_type_get_underlying_type ().
26368
26369 2004-09-09  Geoff Norton <gnorton@customerndna.com>
26370
26371         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
26372         Fix GetTypes() to support dynamically created assemblies.
26373
26374 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
26375
26376         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
26377         
26378         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
26379         previous patch.
26380
26381         * reflection.h reflection.c loader.c: Allow dynamic construction of
26382         pinvoke methods. Fixes #65571.
26383         
26384         * reflection.c (mono_reflection_get_type): Revert previous change since
26385         it causes regressions.
26386
26387 2004-09-08  Martin Baulig  <martin@ximian.com>
26388
26389         * class.c (class_compute_field_layout): Don't call
26390         mono_class_layout_fields() for open generic instances.
26391
26392 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
26393         * threads.c appdomain.c: fix typo in GC macro
26394
26395 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26396
26397         * threads.c: don't call mono_thread_detach() in start_wrapper(),
26398         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
26399
26400 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
26401
26402         * image.c (mono_image_close): Applied patch from 
26403         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
26404         assembly is loaded multiple times from data.
26405         
26406         * image.c (mono_image_open): Fix warning.
26407
26408 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
26409
26410         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
26411         once. Fixes #58334.
26412         
26413         * reflection.c (mono_reflection_create_runtime_class): Initialize
26414         klass->nested_classes. Fixes #61224.
26415
26416 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
26417
26418         * threads.c: sched_yield() on exit, to allow threads to quit.
26419
26420 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
26421
26422         * object.c (mono_unhandled_exception): Remove leftover debug code.
26423
26424 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
26425
26426         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
26427
26428 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
26429
26430         * marshal.c (emit_marshal_array): Really null terminate string arrays.
26431         
26432         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
26433
26434 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
26435
26436         * marshal.c (emit_marshal_array): Null terminate string arrays.
26437         
26438         * marshal.c (raise_auto_layout_exception): Fix warning.
26439
26440         * reflection.c (mono_param_get_objects): Initialize the default value
26441         with DBNull.Value, not null. Fixes #62123.
26442
26443 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
26444
26445         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
26446         throw an exception with a cute explanation.
26447
26448 2004-09-06  Dick Porter  <dick@ximian.com>
26449
26450         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
26451         Close the new process's thread handle, as we don't use it.  The
26452         handle stays around forever otherwise.
26453
26454 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
26455
26456         * object.c (arith_overflow): Fix warning.
26457
26458         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
26459         calling conventions in method refs. Fixes #65352.
26460
26461         * reflection.c: Fix warnings.
26462
26463 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
26464
26465         * icall.c: Add a new icall for Array.Clear
26466
26467 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
26468
26469         * object.c: When allocating an array, we have to throw
26470         an overflow exception if any of the lengths are < 0.
26471
26472 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
26473
26474         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
26475         properly. Also move implementation of string array marshalling to 
26476         managed code. Fixes #42316.
26477
26478 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26479
26480         * assembly.c: provide more information when loading an assembly fails.
26481
26482 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26483
26484         * filewatcher.c: don't expect the development fam package to be
26485         installed.
26486
26487 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
26488
26489         * marshal.c: Make a copy of the signature cookie since it will be
26490         freed by the caller.
26491         
26492         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
26493
26494         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
26495
26496         * metadata.c (mono_metadata_free_marshal_spec): New function to free
26497         marshal specs.
26498
26499         * marshal.c: More refactoring.
26500         
26501         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
26502         smaller functions.
26503
26504 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
26505
26506         * object.c: In mono_message_invoke, fill the output parameter array after
26507           calling the managed method (it was done before the call). This fixes
26508           bug #59299.
26509
26510 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
26511
26512         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
26513         as well.
26514
26515 2004-09-02  Martin Baulig  <martin@ximian.com>
26516
26517         * class.c (mono_class_instance_size): Don't allow generic type
26518         definitions or open generic instances.
26519         (mono_class_array_element_size): If we're a value type, call
26520         mono_class_instance_size() on the original class.
26521
26522         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
26523         handle generic instances.
26524
26525         * mono-debug-debugger.c (write_type): Handle generic instances
26526         like classes.
26527
26528 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
26529
26530         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
26531         the allocation request fails. Fixes #65089.
26532
26533         * object.c (mono_runtime_free_method): Do not call mono_free_method.
26534         
26535         * object.c (mono_runtime_free_method): New function to free a dynamic
26536         method.
26537
26538         * marshal.c (mono_delegate_free_ftnptr): New function to free the
26539         delegate trampoline.
26540
26541         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
26542         with hasthis as dynamic,
26543
26544         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
26545
26546         * domain.c (mono_jit_info_table_remove): New function to remove an
26547         entry from the jit info table.
26548
26549         * class-internals.h (MonoMethod): Add 'dynamic' field.
26550
26551         * loader.c: Fix warnings.
26552
26553 2004-09-01  Martin Baulig  <martin@ximian.com>
26554
26555         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
26556         instead of mono_debugger_lock() because the latter one is a no-op
26557         unless running in the debugger.
26558
26559 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
26560
26561         * class.c (class_compute_field_layout): Classes with auto-layout or
26562         reference fields are not blittable.
26563         
26564 2004-09-01  Dick Porter  <dick@ximian.com>
26565
26566         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
26567         mono_image_get_filename() to get the assembly location.
26568
26569         * icall.c:
26570         * metadata.h: Fix compile warnings
26571
26572 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
26573
26574         * class.c (class_compute_field_layout): System.Object is blittable.
26575
26576         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
26577         as in/out. Fixes #59909.
26578
26579 2004-09-01  Martin Baulig  <martin@ximian.com>
26580
26581         * metadata.h (MONO_TYPE_ISREFERENCE): Call
26582         mono_metadata_generic_inst_is_valuetype() if we're a generic
26583         instance to check whether our underlying type is a reference type.
26584
26585 2004-09-01  Martin Baulig  <martin@ximian.com>
26586
26587         * metadata.c (mono_type_size): If we're a generic instance, call
26588         mono_class_value_size() for value types.
26589
26590 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
26591
26592         * marshal.c: Implement more custom marshalling functionality. Fixes
26593         #64915.
26594
26595 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
26596
26597         * mono-debug.c, debug-mono-symfile.c: add some locking love.
26598
26599 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
26600
26601         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
26602
26603         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
26604
26605         * icall.c: Fix some warnings.
26606
26607         * threads.c (abort_appdomain_thread): Fix unref errors.
26608         (mono_thread_current): Fix THREAD_DEBUG define.
26609
26610 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
26611
26612         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
26613
26614         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
26615
26616 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
26617
26618         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
26619         string arrays.
26620
26621 2004-08-28  Martin Baulig  <martin@ximian.com>
26622
26623         * metadata.c
26624         (mono_metadata_generic_inst_is_valuetype): New public function.
26625
26626         * metadata.h (MONO_TYPE_ISSTRUCT): Call
26627         mono_metadata_generic_inst_is_valuetype() if we're a generic
26628         instance to check whether our underlying type is a valuetype.
26629
26630 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
26631
26632         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
26633         #63768.
26634
26635 2004-08-25  Martin Baulig  <martin@ximian.com>
26636
26637         * loader.c (mono_get_method_from_token): Abstract methods can also
26638         be generic and thus have type parameters.
26639
26640         * metadata-internals.h
26641         (MonoDynamicImage): Added `GPtrArray *gen_params'.
26642
26643         * reflection.c (mono_image_get_generic_param_info): Don't create a
26644         metadata row, just add an entry to the `gen_params' array.
26645         (build_compressed_metadata): Sort the `gen_params' array and then
26646         actually create the metadata.
26647
26648 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26649
26650         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
26651
26652 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
26653
26654         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
26655
26656 2004-08-24  Martin Baulig  <martin@ximian.com>
26657
26658         * class.cs (mono_class_is_subclass_of): Like an interface, a
26659         generic instance also derives from System.Object.
26660
26661 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
26662
26663         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
26664         custom modifiers to be in any order. Fixes #61990.
26665
26666 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
26667
26668         * object.c: Register mono_object_new_fast icall.
26669         
26670         * object.c (mono_class_get_allocation_ftn): Return to calling
26671         mono_object_new_fast, since it seems faster to compute the object 
26672         size in unmanaged code than passing it as a parameter.
26673
26674         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
26675
26676         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
26677         this function with Boehm as the oom handler, so we don't have to check
26678         the result of GC_malloc.
26679
26680         * object.c: Remove checks for oom.
26681
26682         * object.h object.c (mono_class_get_allocation_ftn): New function to
26683         return the icall which can be used to allocate an instance of a given
26684         class. 
26685
26686         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
26687
26688         * class-internals.h: Add 'enabled' field.
26689
26690 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
26691
26692         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
26693
26694 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
26695         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
26696         value 0x0010.
26697
26698 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
26699
26700         * appdomain.c: use the Tls function for appdomain too,
26701         at Zoltan's request. Actually return in mono_context_get
26702
26703         * appdomain.c, profiler.c, threads.c: use __thread
26704
26705 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
26706
26707         * appdomain.c threads.c: Call GC_CreateThread on windows.
26708
26709         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
26710         multiple libraries since this don't work on windows.
26711
26712 2004-08-18  Martin Baulig  <martin@ximian.com>
26713
26714         * class-internals.h
26715         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
26716         MonoMethodHeader.
26717
26718         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
26719         MonoMethodNormal since we also need it for abstract and interface
26720         methods.
26721
26722         * reflection.c
26723         (build_compressed_metadata): Sort the GenericParam table.
26724         (mono_image_create_token): Added `gboolean create_methodspec'
26725         argument; this is false when generating a MethodImpl token.
26726         (reflection_methodbuilder_to_mono_method): Abstract and interface
26727         methods may also have generic parameters.
26728
26729 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
26730
26731         * appdomain.c: thread local alloc
26732
26733 2004-08-17  Martin Baulig  <martin@ximian.com>
26734
26735         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
26736
26737         * icall.c
26738         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
26739         argument.
26740
26741         * class.c (mono_type_get_full_name): New public function.
26742         (mono_type_get_name): Don't include the type arguments.
26743
26744 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
26745
26746         * Makefile.am: Build static versions of libmetadata and libmonoruntime
26747         for inclusion into the mono executable.
26748
26749 2004-08-16  Martin Baulig  <martin@ximian.com>
26750
26751         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
26752         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
26753
26754 2004-08-14  Martin Baulig  <martin@ximian.com>
26755
26756         * class.c (dup_type): Also copy the `byref' field.
26757
26758 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
26759
26760         * reflection.c (create_dynamic_mono_image): Revert the last change 
26761         since it breaks bootstrap.
26762
26763 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
26764
26765         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
26766
26767         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
26768         not free them with g_free.
26769
26770 2004-08-11  Martin Baulig  <martin@ximian.com>
26771
26772         * reflection.c (mono_reflection_setup_internal_class): Also call
26773         mono_class_setup_mono_type() if we already have a `tb->type.type'.
26774
26775 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
26776
26777         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
26778         called during default (first) AppDomain creation. Keep track of
26779         Evidence when loading assemblies.
26780
26781 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
26782
26783         * opcodes.c, opcodes.h: reduce runtime relocations.
26784
26785 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
26786
26787         * culture-info.h, locales.c: fixes and chages to sue the new
26788         optimized format of the locale data.
26789         * culture-info-tables.h: regenerated.
26790
26791 2004-08-06  Geoff Norton <gnorton@customerdna.com>
26792         
26793         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
26794
26795 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
26796
26797         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
26798         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
26799         * domain-internals.h: icall declaration.
26800         * icall.c: icall registration.
26801         * object-internals.h: New fields in MonoAssembly for CAS.
26802
26803 2004-08-05  Duncan Mak  <duncan@ximian.com>
26804
26805         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
26806         CEE_LDELEM_ANY.
26807
26808 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
26809
26810         * reflection.c: fix to deal with object[] arrays in custom ctors
26811         (bug #62550).
26812
26813 2004-08-05  Martin Baulig  <martin@ximian.com>
26814
26815         * class.c (mono_class_array_element_size): Added support for
26816         generic instances and correctly handle "recursive" types.
26817
26818 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
26819
26820         * assembly.c: Fix warnings.
26821
26822 2004-08-04  Martin Baulig  <martin@ximian.com>
26823
26824         * class.c
26825         (mono_type_get_name_recurse): Added `gboolean include_arity'
26826         argument specifying whether or not we should include the generic
26827         arity in the type name.
26828         (_mono_type_get_name): New static function.
26829         (mono_class_setup_vtable): If we're a generic instance, don't
26830         include the generic arity in the names of explicit method
26831         implementations.        
26832
26833 2004-08-03  Martin Baulig  <martin@ximian.com>
26834
26835         * class.c (mono_type_get_name_recurse): Enclose the generic type
26836         arguments in `<', '>'.
26837
26838 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
26839
26840         * gc.c: make GC warning messages use the trace API, they are just
26841         noise to most of the users.
26842
26843 2004-08-03  Martin Baulig  <martin@ximian.com>
26844
26845         * debug-mono-symfile.c (read_string): Correctly read the string.
26846
26847 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
26848
26849         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
26850         
26851         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
26852         icalls.
26853         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
26854
26855 2004-07-30  Martin Baulig  <martin@ximian.com>
26856
26857         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
26858         Reflect latest symbol writer changes.   
26859
26860 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
26861
26862         * object.c: always create an object if null is passed
26863         to Invoke() where a valuetype is expected.
26864
26865 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
26866
26867         * marshal.c (mono_marshal_init): make managed
26868         signatures match native ones better for 64bits.
26869
26870 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26871
26872         * appdomain.c: hack to build correctly the private bin path on windows.
26873         Fixes bug #61991.
26874
26875 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
26876
26877         * assembly.c: Load mscorlib from the correct framework directory
26878           (mono/<version>/mscorlib.dll).
26879         * appdomain.h: Added prototypes for new functions.
26880         * internals.h: Added some prototypes.
26881         * domain.c: When initializing the runtime, get from the executable and
26882           the configuration files the runtime version that the app supports.
26883           Added support methods for reading app.exe.config. Added list of versions
26884           supported by the JIT. Added two new methods: mono_init_from_assembly,
26885           which initializes the runtime and determines the required version from
26886           the provided exe file, and mono_init_version, which initializes
26887           the runtime using the provided version.
26888         * icall.c: Get machine.config from version-specific directory.
26889         * reflection.c: When generating an image, embed the version number
26890           of the current runtime.
26891
26892 2004-07-28  Dick Porter  <dick@ximian.com>
26893
26894         * socket-io.c
26895         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
26896         returned sockaddr size before creating the remote address object.
26897         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
26898         61608.
26899
26900 2004-07-28  Dick Porter  <dick@ximian.com>
26901
26902         * locales.c (string_invariant_compare_char): Fix invariant char
26903         compares between upper and lower cases.  Fixes bug 61458.
26904
26905 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
26906         
26907         * marshal.c: actually cache stelem.ref wrappers.
26908         
26909 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
26910
26911         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
26912         sections and remove the mono_cli_rva_map () function.
26913
26914 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
26915
26916         * debug-mono-symfile.c: fix one more endianess issue, from a patch
26917         by Geoff Norton (<gnorton@customerdna.com>).
26918
26919 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
26920
26921         * class.c: fix class loads for pointer types (typeof(int) !=
26922         typeof(int*)).
26923
26924 2004-07-27  Martin Baulig  <martin@ximian.com>
26925
26926         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
26927         reading the debugging information from an external ".mdb" file.
26928
26929 2004-07-24  Martin Baulig  <martin@ximian.com>
26930
26931         * reflection.c (mono_image_get_type_info): Only write a class
26932         layout entry if we actually have a size or a packing size.
26933
26934 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
26935
26936         * reflection.c (type_get_fully_qualified_name): 
26937         insert cast to get type checking of ?: with non-gcc compilers
26938
26939 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
26940
26941         * rand.c: use g_getenv for both lookups of
26942         MONO_EGD_SOCKET
26943
26944 2004-07-17  Martin Baulig  <martin@ximian.com>
26945
26946         * reflection.c (mono_reflection_bind_generic_method_parameters):
26947         Set `gmethod->reflection_info'.
26948
26949 2004-07-17  Martin Baulig  <martin@ximian.com>
26950
26951         * class.c (mono_class_create_from_typedef): Insert the newly
26952         created class into the hash table before computing the interfaces
26953         since we could be called recursively.
26954
26955 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
26956
26957         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
26958         function to implement stelem.ref in managed code
26959         * class-internals.h, debug-helpers.c: a new wrapper type
26960         for the above.
26961
26962 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
26963
26964         * gc.c: allow GC handles to work even when no GC is compiled in.
26965         Fix part of bug #61134 (GetAddrOfPinnedObject).
26966
26967 2004-07-13  Peter Williams  <peter@newton.cx>
26968  
26969         * process.c (complete_path): Make sure we don't attempt to execute
26970         directories.
26971  
26972 2004-07-12  Geoff Norton <gnorton@customerdna.com>
26973
26974         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
26975           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
26976           and will add/subtract the hour if needed
26977
26978 2004-07-12  Martin Baulig  <martin@ximian.com>
26979
26980         * reflection.c (mono_field_get_object): If we have
26981         `field->generic_info', take the attributes from
26982         `field->generic_info->generic_type'.    
26983
26984 2004-07-12  Martin Baulig  <martin@ximian.com>
26985
26986         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
26987         This function must be called before initializing the runtime.
26988         (mono_debug_init_1): New function; call this after initializing
26989         the runtime, but before loading the assembly.  It tells the
26990         debugger to load corlib and the builtin types.
26991
26992         * mono-debug-debugger.c: Did some larger changes in the debugging
26993         code; support recursive class declarations, make sure we actually
26994         add all classes.
26995
26996 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
26997
26998         * debug-helpers.c: undo my previous patch and fixed the real issue in
26999         ../mini/exceptions-x86.c
27000
27001 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27002
27003         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
27004         when no HOME env. variable was set and a NullRef was thrown in a .cctor
27005         called from other .cctors.
27006
27007 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
27008
27009         * loader.c: Removed the mono_loader_wine_init hack now that we are
27010         doing a managed version of Windows.Forms.
27011
27012 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
27013
27014         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
27015         threadpool.c, threads.c: remove static data from rootset.
27016
27017 2004-07-09  Dick Porter  <dick@ximian.com>
27018
27019         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
27020         Don't do any more processing if the matched length was 0.  It was
27021         increasing the size of the string before.  Fixes bug 61167.
27022
27023 2004-07-09  Dick Porter  <dick@ximian.com>
27024
27025         * socket-io.h:
27026         * socket-io.c
27027         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
27028         Add support for SO_PEERCRED if its available.
27029
27030 2004-07-09  Peter Bartok <pbartok@novell.com>
27031         * loader.c: winelib.exe.so error message is now only displayed if
27032         MONO_DEBUG is set. To help us avoid questions when people are trying
27033         out the new Managed.Windows.Forms.
27034
27035 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
27036
27037         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
27038         for isinst and castclass wrappers.
27039
27040         * class-internals.h icall.c: Move registration and lookup of JIT icalls
27041         to libmetadata from the JIT, so they could be used by the marshalling
27042         code and the interpreter.
27043
27044         * marshal.c: Register marshalling related JIT icalls here instead of
27045         in mini.c. Use CEE_MONO_ICALL instead of the family of 
27046         CEE_MONO_PROC<x> opcodes to call marshalling functions.
27047
27048         * metadata.h: Remove unneeded marshalling conversions.
27049
27050         * opcodes.c: Update for new opcodes.
27051         
27052 2004-07-08  Martin Baulig  <martin@ximian.com>
27053
27054         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
27055         (mono_debug_get_domain_data): Make this function static.
27056
27057 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
27058
27059         * gc.c, object.h: add nice GC handle API for embedders.
27060
27061 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
27062
27063         * reflection.c: more changes for the new api
27064
27065         * object.c: When we reflect on a field w/ a constant value, it
27066         will not have a memory location, so we must access metadata. Also,
27067         allow easier reading of strings so that we can read them from
27068         the constant data.
27069
27070         * class.c (mono_class_layout_fields): no need for literal fields here.
27071
27072         * class-internals.h: api changes for const fields
27073
27074         * icall.c (ves_icall_get_enum_info): use new apis for const fields
27075
27076 2004-07-06  Martin Baulig  <martin@ximian.com>
27077
27078         * mono-debug.h: Increment version number to 44.
27079
27080         * mono-debug.c (mono_debug_add_wrapper): The second argument is
27081         now a gpointer, rewrote this whole method.
27082
27083         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
27084         function.  Add information about the wrapper in a new "misc table".
27085
27086         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
27087         for the new misc table.
27088
27089 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
27090
27091         * metadata-internals.h image.c: Add a cache for helper signatures.
27092
27093         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
27094
27095 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
27096
27097         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
27098         delegates from a delegate. Fixes #61033.
27099         
27100         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
27101         marshalling of stringbuilder arrays. Fixes #59900.
27102
27103 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
27104
27105         * icall.c: Add EnumBuilder:setup_enum_type icall.
27106
27107 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
27108
27109         * icall.c: Added a new icall for the property version of
27110         OffsetOfStringData.
27111
27112 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
27113
27114         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
27115         it has a constant size across platforms.
27116
27117         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
27118         stack trace.
27119
27120 2004-06-29  Martin Baulig  <martin@ximian.com>
27121
27122         * mono-debug.c (mono_debug_add_method): Protect the whole function
27123         in mono_debugger_lock(), not just parts of it.
27124
27125 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
27126
27127         * reflection.c: make sure padding bytes in heaps are zeroed.
27128
27129 2004-06-24  David Waite  <mass@akuma.org>
27130
27131         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
27132         image.c, loader.c, locales.c, marshal.c, metadata.c,
27133         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
27134         string-icalls.c, threads.c: change to C90-style comments from C99 /
27135         C++ -style
27136
27137 2004-06-24  Dick Porter  <dick@ximian.com>
27138
27139         * threads.c
27140         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
27141         return createdNew.  Fixes bug 60412.
27142
27143         * threads-types.h: 
27144         * icall.c: Add createdNew parameter to CreateMutex icall
27145
27146 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
27147
27148         * reflection.c, object-internals.h: save default value in params.
27149
27150 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27151
27152         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
27153         no need to build a new path combining that with the application base.
27154         Fixes bug #60442.
27155
27156 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
27157
27158         * reflection.c: fixed minor standard compliance issues.
27159
27160 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
27161
27162         * reflection.c: fixed issue with encoding some custom attributes
27163         (arrays in properties and fields, bug #60411).
27164
27165 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27166
27167         * reflection.c: fix start address when copying the public key token.
27168
27169 2004-06-23  Martin Baulig  <martin@ximian.com>
27170
27171         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
27172         the `exc' object in a static object to put it into the GC's root set.
27173
27174 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
27175
27176         * reflection.c: make mono_reflection_setup_internal_class ()
27177         callable a second time to setup a new parent class.
27178
27179 2004-06-23  Dick Porter  <dick@ximian.com>
27180
27181         * threads.c: Check for WAIT_IO_COMPLETION return values.
27182
27183 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
27184
27185         * appdomain.c: Removed the g_free on the public key token. Now copy 
27186         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
27187         * assembly.c: Added public key token string value when loading 
27188         assemblies. Fix bug #60439.
27189         * icall.c: Added missing informations (like public key) in 
27190         GetReferencedAssemblies. Fix #60519.
27191         * image.h: Changed definition for public key token from const char*
27192         public_tok_value to guchar public_key_token [17];
27193         * reflection.c: Updated for changes to public key token.
27194
27195 2004-06-22  Lluis Sanchez Gual
27196
27197         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
27198         for the field in base classes.
27199
27200 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
27201
27202         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
27203         mark headers as not supported, they are installed only for use by the
27204         debugger.
27205
27206 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
27207
27208         * *.c, *.h: avoid namespace pollution in public headers.
27209
27210 2004-06-21  Martin Baulig  <martin@ximian.com>
27211
27212         * exception.c (mono_get_exception_security): It's in
27213         "System.Security", not in "System".
27214
27215         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
27216         the exception classes.
27217
27218 2004-06-21  Martin Baulig  <martin@ximian.com>
27219
27220         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
27221         Protect the exception object from being finalized.
27222
27223 2004-06-21  Martin Baulig  <martin@ximian.com>
27224
27225         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
27226         public function.
27227
27228 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
27229
27230         * reflection.c: Load the assembly in mono_reflection_type_from_name,
27231         if it was not loaded before. Fix parts of #60439.
27232
27233 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
27234
27235         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
27236         code that was broken since Ben's change: wrappers are now
27237         dependent on the method signature only again.
27238
27239 2004-06-21  Martin Baulig  <martin@ximian.com>
27240
27241         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
27242         added interface support.
27243
27244 2004-06-21  Martin Baulig  <martin@ximian.com>
27245
27246         * class.c (mono_vtable_get_static_field_data): New public method.
27247
27248 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
27249
27250         * filewatcher.c : Windows build fix to be compliant with API changes.
27251
27252 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
27253
27254         * class.h, class.c: more accessors.
27255         * metadata.h, metadata.c: prepare for hiding MonoType and
27256         MonoMethodSignature: people should use the accessors from now on
27257         outside of the tree.
27258
27259 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
27260
27261         * *.c, *.h: more API cleanups.
27262
27263 2004-06-18  Jackson Harper  <jackson@ximian.com>
27264
27265         * assembly.c: Trace loading assemblies.
27266         * loader.c: Trace loading native libraries.
27267         * mono-config.c: Trace loading config files.
27268         
27269 2004-06-18  Dick Porter  <dick@ximian.com>
27270
27271         * locales.c: Tell ICU the lengths of strings, it can cope with
27272         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
27273
27274 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
27275
27276         * image.c: swapped name/filename;
27277
27278 2004-06-18  Martin Baulig  <martin@ximian.com>
27279
27280         * mono-debug-debugger.c (write_class): Write the parent class at
27281         the end of the header.
27282
27283 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
27284
27285         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
27286
27287 2004-06-17  Raja R Harinath  <rharinath@novell.com>
27288
27289         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
27290         (bundle_obj): New conditional define.
27291         (BUILT_SOURCES): Remove.
27292         ($(bundle_srcs)): Make parallel-make safe.
27293         (libmonoruntime_la_LIBADD): Make unconditional.
27294         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
27295         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
27296
27297 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
27298
27299         * culture-info-tables.h: It was inconsistent with the latest
27300           supp info files.
27301
27302 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
27303
27304         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
27305         be loaded.
27306
27307         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
27308         with gcc 2.95.
27309
27310 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
27311
27312         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
27313         cleaned up public header threads.h.
27314
27315 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
27316
27317         * Makefile.am, *.c, *.h: more API cleanups.
27318
27319 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
27320
27321         * Makefile.am: removed monosn from compilation.
27322         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
27323         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
27324         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
27325         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
27326         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
27327         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
27328
27329 2004-06-15  Jackson Harper  <jackson@ximian.com>
27330
27331         * assembly.c: Make locales lower case when searching the GAC for
27332         assemblies. gacutil will always make locales lowercase when
27333         installing so this effectively makes them case insensitive.
27334         
27335 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
27336
27337         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
27338         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
27339           parameter which allows to choose whether the wait can be interrupted or 
27340           not. Also added the method mono_monitor_enter(), which locks the monitor
27341           using an infinite wait and without allowing interruption.
27342           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
27343           interrupted.
27344         * object.h: Added new fields in MonoThread. suspend_event holds the event
27345           used to susped/resume the thread. synch_lock is the lock object to use for
27346           modifying the thread state.
27347         * threads.c: Use the new synch_lock object for locking, instead of "this",
27348           which can generate deadlocks.
27349           Moved thread state change in Thread.Sleep and Thread.Join from managed
27350           to unmanaged code. This avoids a deadlock when the thread was suspended
27351           just after acquiring the thread lock.
27352           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
27353           Implemented Thread.Suspend using an event instead of ThreadSuspend,
27354           which is not fully implemented in the io-layer.
27355         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
27356
27357 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
27358
27359         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
27360         threads-types.h: more API cleanups.
27361
27362 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
27363
27364         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
27365         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
27366         threadpool.c, threads.c: first pass at the exported API cleanup.
27367
27368 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
27369
27370         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
27371
27372 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27373
27374         * icall.c: added internalGetHome.
27375
27376 2004-06-14  Dick Porter  <dick@ximian.com>
27377
27378         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
27379         possible to return successfully when '.' or '..' were the only
27380         entries in a directory, but were skipped.  The MonoIOStat was not
27381         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
27382         Fixes bug 59574.
27383
27384 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
27385
27386         * reflection.c: make binaries run on .Net 1.1 by default.
27387
27388 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
27389
27390         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
27391
27392 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
27393
27394         * marshal.c: keep track of struct size with explicit layout
27395         (bug #59979).
27396
27397 2004-06-12  Martin Baulig  <martin@ximian.com>
27398
27399         * mono-debug-debugger.c: Comment out a debugging g_message().
27400
27401 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
27402
27403         * reflection.c, reflection.h: do not free custom attrs that are cached.
27404         * icall.c: use braces to make code clearer.
27405
27406 2004-06-11  Martin Baulig  <martin@ximian.com>
27407
27408         * class.h (MonoInflatedField): New type.
27409         (MonoClassField): Replaced `MonoType *generic_type' with
27410         `MonoInflatedField *generic_info'.
27411
27412         * icall.c
27413         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
27414
27415 2004-06-11  Martin Baulig  <martin@ximian.com>
27416
27417         * reflection.c (mono_image_create_method_token): Correctly encode
27418         varargs methods.
27419
27420 2004-06-11  Martin Baulig  <martin@ximian.com>
27421
27422         * metadata.c (mono_metadata_parse_method_signature): When parsing
27423         a MethodDef which has VarArgs, also set sentinelpos if we don't
27424         have any parameters.
27425
27426 2004-06-11  Martin Baulig  <martin@ximian.com>
27427
27428         * verify.c (mono_method_verify): In CEE_CALL, use
27429         mono_method_get_signature() to get the method's signature, unless
27430         we're a PInvoke method.
27431
27432 2004-06-10  Jackson Harper  <jackson@ximian.com>
27433
27434         * assembly.c: Use <path>/lib/mono/gac for the extra paths
27435         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
27436         logical name as the supplied path is just a prefix to the gac not
27437         the direct path to it.
27438         
27439 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
27440
27441         * reflection.c: make the token for a created method match
27442         the token of the MethodBuilder it was created from
27443         (IKVM requires this behaviour now).
27444
27445 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
27446
27447         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
27448         reflection.c, socket-io.c: leak fixes.
27449
27450 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
27451
27452         * icall.c: handle sentinel pos in vararg methods in position different
27453         from 0.
27454
27455 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27456
27457         * culture-info-tables.h: freshly generated.
27458
27459 2004-06-09  Martin Baulig  <martin@ximian.com>
27460
27461         * loader.c (mono_get_method_constrained): Call `mono_class_init
27462         (constrained_class)'.   
27463
27464 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
27465
27466         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
27467         any methods. Fixes #59629.
27468
27469 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
27470
27471         * culture-info-tables.h: reflecting locale-builder updates.
27472
27473 2004-06-08  Dick Porter  <dick@ximian.com>
27474
27475         * object.h:
27476         * locales.c: Fixed compile warnings, including a real bug in
27477         CompareInfo_internal_compare.
27478         
27479 2004-06-08  Dick Porter  <dick@ximian.com>
27480
27481         * locales.c
27482         (ves_icall_System_Globalization_CompareInfo_internal_index):
27483         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
27484         Double-check the resuls of usearches, because ICU currently
27485         ignores most of the collator settings here.  Fixes bug 59720.
27486         
27487 2004-06-08  Dick Porter  <dick@ximian.com>
27488
27489         * locales.c
27490         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
27491         Fix memory leak and segfault-causing typo.  No idea how this one
27492         lasted so long without being noticed.
27493
27494 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
27495
27496         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
27497         any methods. Fixes #59629.
27498
27499 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27500
27501         * assembly.c:
27502         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
27503         own the critical section before). Removed dead code (that's done
27504         in the preload hook).
27505
27506         (mono_assembly_load_with_partial_name): call the preload hook.
27507
27508 2004-06-08  Martin Baulig  <martin@ximian.com>
27509
27510         * metadata.c (mono_metadata_signature_alloc): Default
27511         `sentinelpos' to -1.
27512
27513         * reflection.c (mono_image_get_array_token): Likewise.
27514
27515 2004-06-08  Martin Baulig  <martin@ximian.com>
27516
27517         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
27518
27519         * metadata.c (mono_metadata_parse_method_signature): When parsing
27520         a MethodDef which has VarArgs, set sentinelpos.
27521
27522         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
27523         `gint16' since we're using -1 for non-varargs methods.
27524
27525         * reflection.c
27526         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
27527         (method_encode_signature): Added varargs support.
27528         (method_builder_encode_signature): Likewise.
27529         (mono_image_get_varargs_method_token): New static method.
27530         (mono_image_create_method_token): New public method; this is
27531         called via an icall instead of mono_image_create_token() when
27532         calling a varargs method.       
27533
27534 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
27535
27536         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
27537
27538 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
27539
27540         * culture-info-tables.h : Reflecting the latest locale-builder that
27541           fixed empty array representation ({} to {0}).
27542
27543 2004-06-07  Jackson Harper  <jackson@ximian.com>
27544
27545         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
27546         looking up extra gac paths. This allows MONO_GAC_PATH to act
27547         exactly like a prefix.
27548         
27549 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
27550
27551         * reflection.c (mono_reflection_type_from_name): Make a copy of the
27552         type name before modifying it. Fixes #59405.
27553
27554 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
27555
27556         * culture-info.h: added fields for "all datetime patterns".
27557         * locales.c: (  ves_icall_System_Globalization_CultureInfo
27558           _construct_datetime_format ()): fill xxx_patterns fields.
27559         * object.h: added fields for "all datetime patterns" to
27560           MonoDateTimeFormatInfo.
27561         * culture-info-tables.h: reflecting locale-builder updates.
27562
27563 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
27564
27565         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
27566         the event has no add and remove methods. Fixes #59629.
27567
27568 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
27569
27570         * object.c: Fixed possible integer overflow when allocating large
27571         strings.
27572
27573 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
27574
27575         * culture-info-tables.h: reflecting locale-builder updates.
27576
27577 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
27578
27579         * culture-info-tables.h: reflecting locale-builder updates.
27580
27581 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
27582
27583         * culture-info-tables.h: reflecting locale-builder updates.
27584
27585 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
27586
27587         * threads.c: Made Thread.Sleep abortable.
27588
27589 2004-06-02  Martin Baulig  <martin@ximian.com>
27590
27591         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
27592
27593         * debug-mono-symfile.h: Bumped symbol file version number to 37.
27594
27595 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
27596
27597         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
27598
27599 2004-05-30  Jackson Harper  <jackson@ximian.com>
27600
27601         * reflection.c: Do not hardcode assembly versions or public key
27602         tokens anymore. All of this except the corlib section was dead
27603         code anyways.
27604         
27605 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
27606
27607         * object.c (mono_runtime_invoke_array): Automatically create boxed
27608         objects for byref valuetypes if needed. Fixes #59300.
27609         
27610         * object.c (mono_method_return_message_restore): Handle 
27611         MONO_TYPE_OBJECT as well.
27612
27613 2004-05-28  Jackson Harper  <jackson@ximian.com>
27614
27615         * reflection.c: The modified type encoding was causing build
27616         problems. Reverted for now.
27617         
27618 2004-05-28  Jackson Harper  <jackson@ximian.com>
27619
27620         * reflection.c/h: Take an assembly ref so that we dont create
27621         fully qualified names when encoding types in the same assembly as
27622         the custom attribute being emitted.
27623         * appdomain.c: Increment version number.
27624         
27625 2004-05-26  Duncan Mak  <duncan@ximian.com>
27626
27627         * icall.c
27628         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
27629         Set the full version number (major, minor, build, revision).
27630
27631 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
27632
27633         * marshal.c (emit_struct_conv): increment src/dst after blit
27634         (mono_marshal_get_managed_wrapper,
27635         mono_marshal_get_native_wrapper): make sure we have marshalling
27636         info before marshalling params (info computation affects
27637         blittable)
27638
27639         * class.c (class_compute_field_layout): correctly deal with
27640         blittable
27641         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
27642         value types (as per what windows dows by default)
27643         (mono_class_setup_mono_type): System.ValueType is blittable
27644         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
27645         blittable
27646
27647         * marshal.c (mono_marshal_load_type_info): flag types  as
27648         non-blittable if the native layout doesn't match the managed
27649         layout
27650
27651 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27652
27653         * appdomain.c: don't add stuff in the private search path that is
27654         above the application base. If application base is not set, there's
27655         no private search path.
27656
27657 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
27658
27659         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
27660         byref struct arguments in native->managed marshalling.
27661
27662 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
27663
27664         * marshal.c (mono_marshal_get_runtime_invoke): correctly
27665         cache methods using signature (special case for methods
27666         that are value type or string class)
27667         
27668         * image.c (mono_image_close): clean up allocated GSList's
27669         in runtime_invoke_cache.
27670
27671 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27672
27673         * mono-config.c: set the correct path for mono_cfg_dir on windows when
27674         there's no MONO_CFG_DIR environment variable defined.
27675
27676 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27677
27678         * threads.c: windows version must be >= 0x0500 to include OpenThread.
27679
27680 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
27681
27682         * threadpool.c: Really wait for 500ms after the async call, even if the wait
27683           is interrumped.
27684         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
27685           before waiting for it, and call CloseHandle after the wait to unref it.
27686           This will make sure that handles are not disposed too early.
27687
27688 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27689
27690         * appdomain.c:
27691         * appdomain.h:
27692         * icall.c: removed
27693         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
27694         needed now.
27695
27696         * object.c: se the application_base only for the domain that runs
27697         Main. Fixes bug #59216,
27698
27699 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27700
27701         * appdomain.c:
27702         * object.c: only the domain in which Main is run have
27703         SetupInformation.ConfigurationFile set, so moved a few lines from
27704         appdomain.c to object.c.
27705
27706 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27707
27708         * appdomain.c: we tried to load [name].(dll|exe), but according
27709         to bug #57710, we must also try [culture]/[name].(dll|exe) and
27710         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
27711         There's a test case attached to bug #58922.
27712
27713 2004-05-27  Dick Porter  <dick@ximian.com>
27714
27715         * icall.c:
27716         * file-io.c: Implemented icalls for locking and unlocking regions
27717         in a file.
27718         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
27719         FALSE on error (fixes both compiler warning and real bug.)
27720
27721 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
27722
27723         * culture-info-tables.h: reflecting locale-builder updates.
27724
27725           (Added missing ChangeLog entry for 05/26)
27726
27727 2004-05-27  Jackson Harper  <jackson@ximian.com>
27728
27729         * locales.c: Fix some cut and paste errors.
27730         
27731 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27732
27733         * mono-config.c: set the correct path for config. directory on windows.
27734
27735 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
27736
27737         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
27738           on win32.
27739
27740 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
27741
27742         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
27743         from pinvoke functions.
27744         
27745         * marshal.c (mono_ftnptr_to_delegate): Implement this.
27746
27747 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
27748
27749         * culture-info-tables.h: reflecting locale-builder updates.
27750
27751 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
27752
27753         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
27754         #59086.
27755
27756 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
27757
27758         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
27759         * icall.c: Modified icalls for RNG.
27760         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
27761         Windows (CryptoAPI).
27762
27763 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
27764
27765         * locales.c: Fix build.
27766
27767 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
27768
27769         * culture-info-tables.h: reflecting locale-builder updates.
27770
27771 2004-05-25  Jackson Harper  <jackson@ximian.com>
27772
27773         * locales.c: When creating the current culture use the $LANGs
27774         specific culture. So DateTimeFormat and NumberFormat entries are created.
27775         
27776 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
27777
27778         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
27779         a char array as parameter.
27780
27781 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
27782
27783         * image.c: In mono_image_open(), always use an absolute path name to
27784           look for already loaded images.
27785
27786 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
27787
27788         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
27789         missing in the windows build (like older cygwin include files).
27790
27791 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
27792
27793         * icall.c: Fixed check for possible integer overflow in Buffer_
27794         BlockCopy icall. Replaced comments style // by /* */.
27795
27796 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
27797
27798         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
27799         
27800         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
27801         check after MONO_VTADDR. Fixes pinvoke2.exe.
27802
27803         * marshal.h marshal.c metadata.h: Add beginnings of support for
27804         ftnptr -> delegate marshalling.
27805
27806 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
27807
27808         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
27809         * threads.c: Fix warnings.
27810
27811 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
27812
27813         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
27814         * icall.c: Registered icalls for Suspend and Resume.
27815         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
27816           Thread.Abort.
27817         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
27818         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
27819         * process.c: Use WaitForSingleObjectEx.
27820         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
27821           checkpoints.
27822         * threads.c, threads.h: Make use of new Ex wait methods. Improved
27823           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
27824           for Suspend and Resume. Added new mono_thread_stop, used for stoping
27825           background threads. Added basic support for Abort in Windows.
27826           Start new threads using a managed delegate invoke wrapper. This wrapper
27827           has an interruption checkpoint that is needed since an interruption
27828           can be requested before the thread leaves the unmanaged code that starts 
27829           the thread.
27830         * marshal.c: Added interruption checkpoint after every native call, and
27831           also before managed calls for wrappers called from unmanaged code to
27832           go into managed code.
27833         * object.h: Added new field in MonoThread to keep track of interruption
27834           requests.
27835
27836 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
27837
27838         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
27839         calls.
27840
27841 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27842
27843         * appdomain.c:
27844         * assembly.c:
27845         * gc.c:
27846         * locales.c:
27847         * mono-config.c:
27848         * rand.c: getenv -> g_getenv (windows!)
27849
27850         * process.c: complete_path is also used on non-windows platforms.
27851
27852 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27853
27854         * icall.c: new signature for Process_Start.
27855
27856         * process.[ch]: new signature for Process_Start. If we're on windows
27857         and UseShellExecute is false, we have to search for the program by
27858         ourselves if we don't get a full path.
27859
27860 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
27861
27862         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
27863         marshalling and call CleanUpNativeData if needed. Fixes #58646.
27864
27865 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27866
27867         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
27868         Fixes bug #58373.
27869
27870 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27871
27872         * process.c: use double quotes to quote program name and arguments on
27873         windows. Fixes bug #58575.
27874
27875 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27876
27877         * file-io.c: don't return "." and ".." when using windows Find*File.
27878
27879 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
27880
27881         * marshal.c: Don't pass wrappers to message init because method 
27882         addressed used to lookup metadata. part of remoting[2|3] fix.
27883
27884 2004-05-15  Jackson Harper  <jackson@ximian.com>
27885
27886         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
27887         path is essentially the same as MONO_PATH except that it points to
27888         GACs instead of lib directories.
27889         * loader.h: The user gac is gone so we dont need function to
27890         enable/disable it.
27891         * mono-config.c: user gac option is now gone.
27892         
27893 2004-05-15  Jackson Harper  <jackson@ximian.com>
27894
27895         * culture-info.h: Make defines more consistent, add calendar data
27896         to the culture info table.
27897         * culture-info-tables.h: Add basic calendar data. Basically
27898         everyone gets default gregorian until all the data is
27899         updated.
27900         * locales.c: Use the new consistent defines. Set calendar data for
27901         culture info objects.
27902         * object.h: add a field for calendar data to CultureInfo
27903         
27904 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
27905
27906         * image.c: image->runtime_invoke_cache is keyed on signatures now.
27907         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
27908         a signature.
27909         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
27910         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
27911         an extra param that is the pointer of the method to invoke. The IL for
27912         the invoke method is no longer specific to the method, but to the
27913         signature of the method. Thus, we can share the same code for multiple
27914         methods. This reduces the number of methods that have to be compiled.
27915
27916 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
27917
27918         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
27919
27920         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
27921
27922         * icall.c: Optimize Buffer.BlockCopy.
27923
27924 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27925
27926         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
27927         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
27928         quote). Changed them to "MMMM yyyy".
27929
27930 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
27931
27932         * rand.c
27933         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
27934
27935 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
27936
27937         * reflection.h: Updated after changes to managed structures.
27938
27939         * appdomain.c: Bump corlib version.
27940
27941 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27942
27943         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
27944         windows.
27945
27946 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27947
27948         * Makefile.am: link to ../os/libmonoos.la on windows.
27949
27950         * assembly.c:
27951                 -If MONO_DEBUG, warn about non-existing directories in
27952                 MONO_PATH.
27953                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
27954                 compile time variable.
27955                 -Removed init_default_path and call mono_set_rootdir from
27956                 libmonoos.a instead (windows only).
27957
27958         * assembly.h: declare mono_assembly_getrootdir().
27959
27960         * domain.c:
27961         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
27962
27963         * loader.c: s/getenv/g_getenv/
27964
27965 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
27966
27967         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
27968
27969         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
27970
27971         * metadata.h: Add new marshalling conversions.
27972
27973         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
27974         function.
27975
27976         * reflection.c (mono_reflection_get_type): Lookup the type in all
27977         modules of a multi-module assembly. Fixes #58291.
27978
27979 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
27980
27981         * threads.c: Before aborting a background, set the StopRequested
27982         state.  This avoids throwing the Abort exception.
27983         In mono_thread_manage, don't continue with the shutdown until all
27984         aborted threads have actually stopped.
27985
27986 2004-05-10  Jackson Harper  <jackson@ximian.com>
27987
27988         * locales.c: Remove the modifier from culture names.
27989         
27990 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27991
27992         * Makefile.am: monosn is not installed any more. It has been deprecated
27993         in favor of sn.
27994
27995 2004-05-07  Jackson Harper  <jackson@ximian.com>
27996
27997         * locales.c
27998         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
27999         Fix array construction, add bailout if the length is 0.
28000
28001 2004-05-07  Dick Porter  <dick@ximian.com>
28002
28003         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
28004         machine doesn't have a DNS entry.  Patch by Urs Muff
28005         (umuff@quark.com), fixes bug 57928.
28006
28007 2004-05-06  Jackson Harper  <jackson@ximian.com>
28008
28009         * reflection.c: Handle null PublicTokens properly. alloc mem for
28010         assembly names culture so we dont crash when freeing it.
28011         
28012 2004-05-06  Jackson Harper  <jackson@ximian.com>
28013
28014         * assembly.c: Check the usergac when loading with partial names.
28015         
28016 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
28017
28018         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
28019         does nothing for now (not required for Linux/Windows) but the class
28020         library can call it (and a newer or modified runtime could need it).
28021         * icall.c: Registred icall.
28022
28023 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28024
28025         * loader.c: prints a message on module loading error we set MONO_DEBUG
28026         environment variable.
28027
28028 2004-05-05  Jackson Harper  <jackson@ximian.com>
28029
28030         * appdomain.c: Handle PublicKeyToken=null properly.
28031         
28032 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
28033
28034         * environment.c|h: Added icall ves_icall_System_Environment_
28035         GetOSVersionString to get the current OS version as a string.
28036         * icall.c: Registred icall.
28037
28038 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
28039
28040         * object.c: in mono_object_get_virtual_method(), take into account that
28041         non-virtual methods don't have a slot in the vtable. Check needed when
28042         the object is a proxy.
28043
28044 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
28045
28046         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
28047         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
28048
28049         * object.c (mono_class_compute_gc_descriptor): Fix warning.
28050
28051         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
28052         passed when a valuetype is expected.
28053
28054         * object.c (mono_unhandled_exception): Only set the exit code if the
28055         exception happens in the main thread. Fixes thread5.exe.
28056
28057         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
28058         invalid names. Fixes #58047.
28059
28060 2004-05-03  Jackson Harper  <jackson@ximian.com>
28061
28062         * assembly.c: This line was committed accidently and is unneeded.
28063         
28064 2004-05-03  Jackson Harper  <jackson@ximian.com>
28065
28066         * icall.c: Add new icall for Assembly::LoadWithPartialName
28067         * assembly.c/.h: new function that probes the GAC to load partial
28068         assembly names by Paolo Molaro.
28069         
28070 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28071
28072         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
28073         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
28074         (type_get_fully_qualified_name): Added PublicKeyToken when building a
28075         full type name.
28076
28077 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28078
28079         * appdomain.c: fixed check for 'neutral' culture and removed warning.
28080         * reflection.c: fix bug when parsing a full type name and Version is not
28081         the last thing in the string.
28082
28083 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
28084
28085         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
28086         crashes when it is freed.
28087
28088 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28089
28090         * assembly.c: print the compat warning to stderr.
28091
28092 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
28093
28094         * assembly.c (mono_assembly_load_references): Add a compatibility
28095         hack to run old applications that might be still referencing the
28096         3300-based assemblies, only do this for System.xxx.
28097
28098 2004-05-01  Jackson Harper  <jackson@ximian.com>
28099
28100         * appdomain.c: If the culture is neutral we set it to "".
28101         
28102 2004-04-29  Jackson Harper  <jackson@ximian.com>
28103
28104         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
28105
28106 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
28107  
28108         * string-icalls.c: added low overhead function for copying chars
28109         * icall.c: added needed icall for the above function
28110  
28111 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28112
28113         * icall.c: fix return value of get_global_assembly_cache.  Implemented
28114         Environment.GetLogicalDrives.
28115
28116 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
28117
28118         * rand.c: try and talk to egd or prngd
28119         for random bytes if opening devices fail.
28120
28121 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
28122
28123         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
28124         alignment for the type using the native alignment of its members 
28125         instead of using klass->min_align.
28126
28127         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
28128
28129 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28130
28131         * file-io.c:
28132         * socket-io.c: added check for sys/aio.h.
28133
28134 2004-04-28  Dick Porter  <dick@ximian.com>
28135
28136         * threads.c: Don't abort a thread thats already aborting, when
28137         terminating everything.
28138
28139 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28140
28141         * icall.c: added 2 new async calls for Socket.
28142
28143         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
28144         IO on *nix systems.
28145
28146         * threadpool.c: removed unused variable.
28147
28148 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
28149
28150         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
28151
28152 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
28153
28154         * locales.c: put back string_invariant_tolower () and
28155         string_invariant_toupper ().
28156
28157 2004-04-26 David Waite <mass@akuma.org>
28158
28159         * file-io.h:
28160         * socket-io.h:
28161         * threads.h:
28162         * unicode.h: remove comma from end of enumeration declarations
28163
28164 2004-04-26 David Waite <mass@akuma.org>
28165
28166         * debug-mono-symfile.h:
28167         * decimal.c:
28168         * mono_debug.h:
28169         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
28170
28171
28172 2004-04-26  Jackson Harper  <jackson@ximian.com>
28173
28174         * appdomain.c: Increment version number.
28175         
28176 2004-04-26  Jackson Harper  <jackson@ximian.com>
28177
28178         * appdomain.c: Set assembly references public token value when
28179         PublicKeyToken is specified, not the hash_value. Free public token
28180         values when free assembly name data. Previously the public key
28181         token was hex decoded, however we are using hex encoded public key
28182         tokens, so this is not neccasary.
28183         * assembly.c: Lookup assemblies in the gac if their public token
28184         value is set. Add function to allow enabling user gac
28185         lookups. Specify whether or not the assembly was loaded from the
28186         GAC. Compare full assembly names when checking the cache for
28187         assemblies (Temporarily disabled see comment in code). Remove
28188         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
28189         specifies trace-loader they get extra info to stdout on the
28190         loading of assemblies.
28191         * image.h: Add a field for an assembly references public token
28192         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
28193         whether an assembly has been loaded from the GAC.
28194         * image.c: Remove a corlib -> mscorlib name mapping.
28195         * loader.h: Add function to enable/disable the user gac.
28196         * mono-config.c: Check if the usergac is enabled in the config
28197         file.
28198         * icall.c: New icall to determine whether or not an assembly has
28199         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
28200         * tabldefs.h: Add constant for assemblyref flag that specifies a
28201         full public key is used instead of a public token.
28202         * reflection.c: Remove mscorlib -> corlib mappings. Set
28203         PublicTokenValue instead of hash value. This value is a hex
28204         string so it does not need to be expanded.
28205
28206 2004-04-26  Martin Baulig  <martin@ximian.com>
28207
28208         * mono-debug-debugger.c (mono_debugger_initialize): Set
28209         `mono_debugger_initialized' before calling mono_debug_lock().
28210
28211 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
28212
28213         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
28214           InternalToUpper/InternalToLower.
28215         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
28216           removed invariant culture shortcut.  This is now done in managed code.
28217         * locales.c: (string_invariant_toupper/tolower) removed.
28218
28219 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28220
28221         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
28222         Added Poll internal call.
28223
28224         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
28225         call for Poll. Select was too heavy for polling a single socket.
28226
28227         * threadpool.[ch]: added mono_threadpool_cleanup.
28228         * threads.c: use it. Don't use Thread_Abort on windows.
28229
28230 2004-04-23  Martin Baulig  <martin@ximian.com>
28231
28232         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
28233
28234 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
28235
28236         * icall.c: Registred new icalls for key pair protection and added an
28237         icall for Environment.GetFolderPath on Windows.
28238         * security.c|h: Added new icalls for key pair protection.
28239
28240 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28241
28242         * socket-io.c: don't display the non-supported family warning for known
28243         families. Now this is not displayed on windows when checking support
28244         for IPv4/IPv6.
28245
28246 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28247
28248         * class.c: don't display the layout warning for static fields.
28249
28250 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
28251
28252         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
28253         * locales.c, locales.h: Added new icalls for culture-specific
28254         Char.ToLower and Char.ToUpper.
28255
28256 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28257
28258         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
28259         by David Waite.
28260
28261 2004-04-20  Martin Baulig  <martin@ximian.com>
28262
28263         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
28264         of the type name before passing it to mono_reflection_type_from_name().
28265
28266 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
28267
28268         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
28269         encodings here. Fixes #56965.
28270
28271 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
28272
28273         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
28274         fix test on strstr result not that I can see anything that
28275         relies on the result.
28276
28277 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
28278
28279         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
28280         Fixes #57081.
28281
28282         * marshal.c (mono_marshal_get_string_encoding): New helper function.
28283
28284         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
28285         function to determine which marshalling to use for strings. Fixes
28286         #56965.
28287
28288         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
28289
28290         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
28291
28292 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
28293
28294         * icall.c: #include mono-config.h
28295
28296 2004-04-15  Jackson Harper  <jackson@ximian.com>
28297
28298         * culture-info-tables.h: Fix date formats for en-US culture.
28299         
28300 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
28301
28302         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
28303         ThreadPool.SetMinThreads.
28304         * threadpool.c: Implemented ThreadPool.GetMinThreads and
28305         ThreadPool.SetMinThreads.
28306
28307 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
28308
28309         * mono-config.c: also load the .config file in the directory
28310         where the assembly was found.
28311
28312 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
28313
28314         * assembly.c: load per-assembly config files.
28315         * icall.c: decrapified code to get the config dir and moved to
28316         mono-config.c.
28317         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
28318         per-assembly config files. When doing a dll map lookup give precedence
28319         to the per-assembly data.
28320
28321 2004-04-14  Martin Baulig  <martin@ximian.com>
28322
28323         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
28324         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
28325         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
28326
28327         * mono-debugger-debugger.c: While the debugger is locked, remember
28328         whether the symbol tables have changes and send one single
28329         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
28330
28331 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
28332
28333         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
28334
28335         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
28336         function.
28337
28338         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
28339         account when marshalling string arrays. Fixes #56965.
28340
28341 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
28342
28343         * icall.c: Add new icalls mapping for security.
28344         * security.c|h: Add internal calls for WindowsIdentity,
28345         WindowsImpersonationContext and WindowsPrincipal.
28346
28347 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
28348
28349         * class.c: Added comment to ensure the System.MonoDummy class
28350         is removed when no longer necessary
28351
28352 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
28353
28354         * appdomain.c: Pass arguments to the bootstraping exceptions to
28355         minimize JITed methods at boot
28356
28357         * metadata.c (mono_exception_from_name_two_strings): Allow for the
28358         second string to be null.
28359
28360         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
28361         Change the protocol to minimize the JIT methods at startup.  Now
28362         it Returns the internal codepage, if the value of "int_code_page"
28363         is 1 at entry, and we can not compute a suitable code page
28364         number, returns the code page as a string.
28365
28366 2004-04-13  Jackson Harper  <jackson@ximian.com>
28367
28368         * culture-info-tables.h: Fix number of decimal digits for all
28369         english locales.
28370
28371 2004-04-13  Jackson Harper  <jackson@ximian.com>
28372
28373         * icall.c: Clairfy out of sync error message. It is not always
28374         your corlib that is out of sync.
28375
28376 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
28377
28378         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
28379         properties when only the set accessor is overriden. Fixes #55874.
28380
28381 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
28382
28383         * assembly.c (mono_assembly_load_references): Make this thread safe.
28384         Fixes #56327.
28385
28386 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
28387
28388         * monosn.c: Add missing initialization calls.
28389
28390 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
28391
28392         * locales.c:
28393         ves_icall_System_Globalization_CultureInfo_construct_number_format
28394         Fix g_assert so it compiles on fussier compilers re int/ptr
28395         mismatch
28396
28397 2004-04-08  Dick Porter  <dick@ximian.com>
28398
28399         * socket-io.h:
28400         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
28401         53992.  Also rearrange the code so that the internal calls return
28402         an error value and exceptions are thrown from managed code.
28403
28404         * icall.c: Add type info to the socket icalls.
28405
28406 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28407
28408         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
28409         owes me a beer.
28410
28411 2004-04-07  Martin Baulig  <martin@ximian.com>
28412
28413         * class.c (mono_class_from_generic_parameter): Don't default
28414         `klass->parent' to `mono_defaults.object_type'.
28415
28416 2004-04-07  Martin Baulig  <martin@ximian.com>
28417
28418         * reflection.c (mono_reflection_initialize_generic_parameter): Set
28419         `param->pklass->reflection_info'.       
28420
28421 2004-04-07  Jackson Harper  <jackson@ximian.com>
28422
28423         * culture-info-tables.h: Fix date separator symbol.
28424         
28425 2004-04-07  Martin Baulig  <martin@ximian.com>
28426
28427         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
28428         from System.Type to System.MonoType.
28429
28430 2004-04-07  Martin Baulig  <martin@ximian.com>
28431
28432         * reflection.h
28433         (MonoReflectionGenericParam): Added `has_reference_type' and
28434         `has_value_type' fields.
28435
28436         * reflection.c (mono_image_get_generic_param_info): Encode the
28437         correct flags if we have the `class' or `struct' constraint.
28438
28439 2004-04-07  Martin Baulig  <martin@ximian.com>
28440
28441         * reflection.h
28442         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
28443
28444 2004-04-07  Jackson Harper  <jackson@ximian.com>
28445
28446         * appdomain.c: Revert extra patches, just wanted to bump the
28447         version number.
28448         
28449 2004-04-07  Jackson Harper  <jackson@ximian.com>
28450
28451         * Makefile.am: Add culture-info private headers.
28452         * icall.c: Add new icalls for contructing locales.
28453         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
28454         * locales.h: Declare new culture info construction methods.
28455         * object.h: Add new fields used to avoid the CultureMap to
28456         MonoCultureInfo.
28457         * culture-info.h: Definition of structs used in the culture info
28458         tables.
28459         * culture-info-tables.h: Autogenerated tables that contain culture
28460         info data. This file was generated with the locale-builder tool.
28461         * appdomain.c: Incement corlib version number.
28462         
28463 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
28464
28465         * appdomain.c: (mono_runtime_init) move mono_thread_init
28466         to before mono_object_new calls so critical sections
28467         are initialized before use.
28468
28469 2004-04-07  Martin Baulig  <martin@ximian.com>
28470
28471         * icall.c
28472         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
28473         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
28474         (ves_icall_MonoGenericParam_initialize): Removed.
28475         (monogenericparam_icalls): Removed.
28476         (generictypeparambuilder_icalls): Added new table for
28477         System.Reflection.Emit.GenericTypeParameterBuilder.
28478
28479         * reflection.c
28480         (mono_reflection_define_generic_parameter): Removed.
28481         (mono_reflection_initialize_generic_parameter): This is now called
28482         from GenericTypeParameterBuilder's .ctor.
28483
28484 2004-04-06  Martin Baulig  <martin@ximian.com>
28485
28486         * class.c (mono_class_init): Don't inflate nested classes in a
28487         generic instance.
28488         (mono_type_get_name_recurse): Include the generic arguments for
28489         generic instances and generic type declarations.
28490         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
28491         (_mono_class_get_instantiation_name): Removed.
28492         (mono_class_create_generic): Always use `gklass->name' as our name.
28493
28494         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
28495
28496         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
28497         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
28498         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
28499         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
28500         closed generic methods here.
28501
28502         * reflection.c
28503         (mono_reflection_generic_inst_get_nested_types): Removed.
28504         (inflate_mono_method): Copy the generic parameters from the
28505         MonoMethodHeader into out MonoGenericMethod.
28506
28507 2004-04-06  Martin Baulig  <martin@ximian.com>
28508
28509         * row-indexes.h
28510         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
28511
28512         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
28513
28514         * reflection.c (build_compressed_metadata): If we have any entries
28515         in the GenericParam, MethodSpec or GenericParamConstraint tables,
28516         set the header version to 1.1.
28517
28518 2004-04-06  Martin Baulig  <martin@ximian.com>
28519
28520         * class.c (mono_class_init): If we're a generic instance,
28521         initialize our nested classes, too.
28522         (_mono_class_get_instantiation_name): Deal with the new `!%d'
28523         suffix. 
28524
28525 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28526
28527         * process.c: quote the argument passed to the shell on windows.
28528
28529 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
28530
28531         * threads.c (mono_alloc_special_static_data): Allow this to be
28532         called during startup.
28533
28534 2004-04-02  Martin Baulig  <martin@ximian.com>
28535
28536         * icall.c
28537         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
28538
28539 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
28540
28541         * icall.c: Fix build.
28542
28543 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
28544
28545         * Makefile.am: Added security.c|h.
28546         * icall.c: Added icall for get_UserName;
28547         * security.c: New file for security related icalls. Added function
28548         get_UserName for System.Environment (fix #56144).
28549         * security.h: New. Header file for security.c
28550
28551 2004-04-02  Dick Porter  <dick@ximian.com>
28552
28553         * icall.c: Deleted the icalls that were obsoleted some time ago
28554         by the ICU string code, and which were mixed into the icall
28555         rearranging.  Fixes bug 55969.
28556
28557         * string-icalls.h: 
28558         * string-icalls.c: Deleted the code that those icalls reference.
28559
28560 2004-04-01  Martin Baulig  <martin@ximian.com>
28561
28562         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
28563
28564         * class.c (mono_class_from_generic_parameter): Don't set 
28565         TYPE_ATTRIBUTE_INTERFACE.
28566         (my_mono_class_from_generic_parameter): Likewise.
28567
28568 2004-04-01  Martin Baulig  <martin@ximian.com>
28569
28570         * loader.c (find_method): Added an optional `MonoClass *ic'
28571         argument to search in a specific interface.
28572         (mono_get_method_constrained): New public function.
28573
28574 2004-04-01  Martin Baulig  <martin@ximian.com>
28575
28576         * reflection.c (mono_image_get_generic_field_token): Use the
28577         `handleref' cache here.
28578
28579 2004-04-01  Martin Baulig  <martin@ximian.com>
28580
28581         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
28582
28583         * reflection.c (create_generic_typespec): Use the `typespec' hash
28584         here, not the `typeref' one.    
28585
28586 2004-04-01  Martin Baulig  <martin@ximian.com>
28587
28588         * class.c (mono_class_inflate_generic_type): Moved the
28589         functionality into a new static inflate_generic_type() which
28590         returns NULL if it didn't do anything.  Only increment the
28591         `mono_stats.inflated_type_count' if we actually inflated
28592         something.
28593         (mono_class_get_full): Check the classes type to see whether we
28594         need to inflate it; also inflate MONO_TYPE_(M)VAR.
28595
28596 2004-04-01  Jackson Harper  <jackson@ximian.com>
28597
28598         * reflection.c: Set culture for assembly references.
28599         
28600 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
28601
28602         * reflection.[ch], icall.[ch], Fix support for pinning variables.
28603
28604 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28605
28606         * assembly.c:
28607         (do_mono_assembly_open): the critical section also covers
28608         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
28609
28610 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28611
28612         * threads.c:
28613         (mono_manage_threads): abort the background threads when finishing.
28614         Fixes bug #47232.
28615
28616 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28617
28618         * gc.c: only close the done_event handle if there was no timeout.
28619         C-ified comments.
28620
28621 2004-03-30  Martin Baulig  <martin@ximian.com>
28622
28623         * icall.c (icall_entries): It's called "System.Activator", not
28624         "System.Activation".    
28625
28626 2004-03-30  Martin Baulig  <martin@ximian.com>
28627
28628         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
28629         (mono_class_create_from_typespec): Likewise.
28630
28631 2004-03-30  Martin Baulig  <martin@ximian.com>
28632
28633         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
28634         `has_ctor_constraint' and `initialized'.
28635
28636 2004-03-30  Martin Baulig  <martin@ximian.com>
28637
28638         * reflection.c (encode_new_constraint): New static function to add
28639         the constructor constraint attribute to a type parameter.
28640         (encode_constraints): Call encode_new_constraint() if necessary.
28641
28642         * reflection.h
28643         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
28644
28645         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
28646         
28647 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
28648
28649         * reflection.c, icall.c: add support for pinning variables. 
28650
28651 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
28652
28653         * marshal.c (mono_marshal_get_managed_wrapper):
28654         init bool local with zero rather than null.
28655
28656 2004-03-29  Martin Baulig  <martin@ximian.com>
28657
28658         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
28659         the "official" behavior here.
28660         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
28661
28662 2004-03-29  Martin Baulig  <martin@ximian.com>
28663
28664         * icall.c: Reflect latest API changes.
28665
28666 2004-03-29  Martin Baulig  <martin@ximian.com>
28667
28668         * loader.c (mono_get_method_from_token): Also call
28669         mono_metadata_load_generic_params () for abstract and interface
28670         methods; replace the type arguments in the method signature with
28671         the ones which are loaded from the metadata.
28672
28673 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
28674
28675         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
28676         of the lock is not the current thread. MS.NET don't do it, in spite of
28677         what the documentation says. See bug #56157.
28678
28679 2004-03-28  Martin Baulig  <martin@ximian.com>
28680
28681         * class.c (mono_class_init): Don't call init_properties() and
28682         init_events() for generic instances; set `prop->parent' when
28683         inflating properties.
28684
28685         * reflection.c (mono_generic_inst_get_object): Call
28686         `mono_class_init (ginst->klass)'.
28687         (mono_type_get_object): Only create a MonoGenericInst if your
28688         generic type is a TypeBuilder.
28689         (do_mono_reflection_bind_generic_parameters): Only set
28690         `ginst->is_dynamic' if our generic type is a TypeBuilder.
28691
28692 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
28693
28694         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
28695         Fixes #56091.
28696
28697 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28698
28699         * icall.c: added Kill_internal icall.
28700         * process.[ch]: added Kill_internal icall.
28701
28702 2004-03-25  Martin Baulig  <martin@ximian.com>
28703
28704         * class.h (MonoStats): Added `generic_instance_count',
28705         `inflated_method_count', `inflated_type_count' and
28706         `generics_metadata_size'.       
28707
28708 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28709
28710         * reflection.c: no warnings now.
28711
28712 2004-03-25  Martin Baulig  <martin@ximian.com>
28713
28714         * class.c (mono_class_get_full): New public function; does a
28715         mono_class_get(), but also takes a `MonoGenericContext *'.
28716
28717         * loader.c (mono_field_from_memberref): Renamed to
28718         `field_from_memberref', made static and added `MonoGenericContext *'
28719         argument.
28720         (mono_field_from_token): Added `MonoGenericInst *' argument.
28721         (method_from_memberef): Likewise.
28722         (mono_get_method_from_token): Likewise.
28723         (mono_get_method_full): New public function; does a
28724         mono_get_method(), but also takes a `MonoGenericContext *'.
28725
28726         * verify.c (mono_method_verify): Get the method's generic context
28727         and pass it to mono_field_from_token(), mono_get_method_full() and
28728         mono_class_get_full().
28729
28730 2004-03-25  Martin Baulig  <martin@ximian.com>
28731
28732         * class.c (mono_class_inflate_generic_type): Take a
28733         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
28734         `MonoGenericMethod *'.
28735
28736 2004-03-25  Martin Baulig  <martin@ximian.com>
28737
28738         * loader.h (MonoMethodInflated): Store the MonoGenericContext
28739         instead of the MonoGenericMethod here.
28740
28741 2004-03-25  Martin Baulig  <martin@ximian.com>
28742
28743         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
28744         each time we create a new MonoGenericInst, we also create a new
28745         context which points back to us.
28746
28747         * class.c (inflate_method): Use `ginst->context' instead of
28748         creating a new context.
28749
28750         * loader.c (method_from_memberref): Use
28751         `klass->generic_inst->context' instead of creating a new context.
28752
28753 2004-03-25  Martin Baulig  <martin@ximian.com>
28754
28755         * class.h (MonoGenericContext): New struct.
28756         (MonoGenericMethod): Removed `generic_inst'.
28757
28758         * class.c (mono_class_inflate_generic_method): Take a
28759         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
28760
28761 2004-03-25  Martin Baulig  <martin@ximian.com>
28762
28763         * loader.h (MonoMethodInflated): New typedef.
28764
28765         * metadata.h (MonoMethodSignature): Removed `gen_method', make
28766         `generic_param_count' consume just 30 bits, added `is_inflated'
28767         and `has_type_parameters' flags (one bit each).
28768
28769         * class.c (mono_class_inflate_generic_method): Create a
28770         MonoMethodInflated instead of a MonoMethodNormal and set
28771         `is_inflated' in the method signature.
28772
28773         * class.h (MonoGenericMethod): Removed `generic_method'.
28774
28775 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
28776
28777         * image.c: Make sure the name of a MonoImage is always an absolute path.
28778           This fixes bug #54415.
28779
28780 2004-03-24  Martin Baulig  <martin@ximian.com>
28781
28782         * class.c (mono_class_setup_vtable): If we're a generic instance,
28783         use our generic type's vtable size.
28784
28785 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
28786
28787         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
28788         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
28789         problems.
28790
28791 2004-03-23  Martin Baulig  <martin@ximian.com>
28792
28793         * class.h (MonoDynamicGenericInst): Added `int count_events' and
28794         `MonoEvent *events'.
28795
28796         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
28797         (typebuilder_icalls): Added "get_event_info"; calls
28798         mono_reflection_event_builder_get_event_info(). 
28799
28800         * reflection.c (mono_reflection_generic_inst_initialize): Added
28801         `MonoArray *events'.
28802         (mono_reflection_event_builder_get_event_info): New function.
28803
28804 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
28805
28806         * object.h: add mono_type_initialization_init
28807
28808         * object.c (mono_runtime_class_init): 
28809         implement class constructor synchronization rules
28810         to cope with threading issues.  
28811         add mono_type_initialization_init
28812
28813         * appdomain.c (mono_runtime_init): call 
28814         mono_type_initialization_init
28815
28816         * class.h: removing initializing field from MonoVTable
28817
28818 2004-03-23  Martin Baulig  <martin@ximian.com>
28819
28820         * class.c (my_mono_class_from_generic_parameter): Use
28821         `param->name' if it's not NULL. 
28822
28823 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
28824
28825         * class.c: do not insert non-virtual methods in the vtable.
28826         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
28827         that means the method is non-virtual. This never would have
28828         happened before.
28829
28830 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
28831
28832         * profiler.c: Added lock for accessing coverage_hash.
28833
28834 2004-03-22  Martin Baulig  <martin@ximian.com>
28835
28836         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
28837         `method->method->signature->generic_param_count != 0' to make it
28838         work for interface methods.
28839
28840 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28841
28842         * process.c: quote the string passed to the shell using g_shell_quote.
28843
28844 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28845
28846         * threads.c:
28847         (mono_threads_manage): don't remove the finalizer thread and self
28848         from the threads hash table so that mono_thread_manage can be called
28849         more than once.
28850
28851 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28852
28853         * process.c: quote the arguments when UseShellExecute is true. Fixes
28854         bug #55790.
28855
28856 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28857
28858         * threads.c: set mono_thread_detach as a cleanup routine for every
28859         thread. This way it's always executed upon thread termination, either
28860         aborted or finished normally. No more xsp hangs!
28861
28862 2004-03-17  Martin Baulig  <martin@ximian.com>
28863
28864         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
28865         `int count_nested' and a `MonoType **nested'.
28866
28867         * reflection.c (mono_reflection_bind_generic_parameters): Moved
28868         most of the functionality into a new static
28869         do_mono_reflection_bind_generic_parameters() and don't take a
28870         `MonoType *nested_in' argument any more.  Don't compute nested
28871         types here.
28872         (mono_reflection_generic_inst_get_nested_types): New public method
28873         to get nested types.
28874
28875         * class.c (mono_class_create_generic): Set `klass->nested_in' if
28876         we're a nested class.
28877
28878         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
28879         mono_reflection_generic_inst_get_nested_types() to compute the
28880         nested types.
28881
28882 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
28883
28884         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
28885         descriptive error message under windows.
28886         
28887 2004-03-17  Martin Baulig  <martin@ximian.com>
28888
28889         * class.c (dup_type): Added `const MonoType *original' argument;
28890         copy the attrs from the original type.
28891
28892 2004-03-17  Martin Baulig  <martin@ximian.com>
28893
28894         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
28895         `m->generic_inst_cache' here.
28896
28897 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
28898
28899         * exception.h exception.c: Add stack_overflow_exception.
28900
28901 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28902
28903         * threadpool.c:
28904         (overlapped_callback): call SetEvent *after* invoking the callback.
28905         No need to call CloseHandle.
28906
28907 2004-03-16  Martin Baulig  <martin@ximian.com>
28908
28909         * reflection.c (mono_image_get_fieldref_token): Take a
28910         `MonoReflectionField *' instead of a `MonoClassField *' and a
28911         `MonoClass *'; store the `MonoReflectionField *' in the hash.
28912
28913 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28914
28915         * appdomain.c: don't add the culture to the filename we're looking for
28916         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
28917
28918 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28919
28920         * locales.c: don't ignore symbols when doing case insensitive compares.
28921         Thanks Dick! Fixes bug #54046.
28922
28923         * threads.c: surround 'threads' usage with enter/leave in
28924         mono_thread_manage.
28925
28926 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
28927
28928         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
28929         implicitly marshalled as [Out]. Fixes #55450.
28930
28931         (mono_marshal_get_runtime_invoke): Zero out the result if there is
28932         an exception.
28933
28934 2004-03-16  Martin Baulig  <martin@ximian.com>
28935
28936         * class.c (mono_class_from_generic_parameter): Use the actual
28937         parameter name. 
28938
28939 2004-03-16  Martin Baulig  <martin@ximian.com>
28940
28941         * reflection.c (type_get_signature_size): New static function.
28942         Compues the size of the type in a method signature.
28943         (method_get_signature_size): New static function; calls
28944         type_get_signature_size() to compute the actual size of the
28945         method's signature.
28946         (method_encode_signature): Use method_get_signature_size() to get
28947         the signature's size rather than using `nparams * 10'.
28948
28949 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28950
28951         * file-io.h: define here WapiOverlapped on windows. I don't want the
28952         regular OVERLAPPED one.
28953
28954         * file-io.c:
28955         * threadpool.c: somehow, BindIoCompletionCallback is not found.
28956         Disabling AIO on windows.
28957
28958 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28959
28960         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
28961         bug #55385.
28962
28963 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
28964
28965         * appdomain.c: upgraded corlib version.
28966
28967         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
28968         and BeginWrite. Allow opening files for asynchrnous operations.
28969
28970         * file-io.h: new struct that maps FileStreamAsyncResult.
28971         * icall.c: added new icalls.
28972         * process.[ch]: support setting child process environment variables
28973         and use the SHELL or COMSPEC when UseShellExecute is true.
28974
28975         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
28976         callback for async. IO is here and also BindHandle.
28977
28978         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
28979         from here.
28980
28981 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
28982
28983         * reflection.c (create_custom_attr): Allow len == 0.
28984
28985         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
28986         computation on big-endian machines.
28987
28988 2004-03-13  Martin Baulig  <martin@ximian.com>
28989
28990         * class.h (MonoGenericInst): Added `int count_ifaces'.
28991
28992         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
28993         `ginst->count_ifaces' instead `klass->interface_count' since we
28994         may get called before the vtable is created.
28995
28996         * loader.c (mono_method_get_param_names): If we're a generic
28997         instance, return and don't initialize the class.
28998
28999         * reflection.c (mono_reflection_setup_generic_class): Don't call
29000         ensure_runtime_vtable().
29001         (mono_reflection_bind_generic_parameters): Set
29002         `ginst->count_ifaces'.
29003
29004 2004-03-11  Jackson Harper <jackson@ximian.com>
29005
29006         * icall.c:
29007         * unicode.c:
29008         * unicode.h: Remove unused System.Char icalls.
29009         
29010 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
29011
29012         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
29013         code when we P/Invoke the first library in Windows.Forms, instead
29014         of when we first open the assembly.
29015
29016         * assembly.c: Drop the lookup from here.
29017
29018 2004-03-10  Martin Baulig  <martin@ximian.com>
29019
29020         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
29021         class for properties, fields and events.  Finally fixes #54945.
29022
29023 2004-03-10  Martin Baulig  <martin@ximian.com>
29024
29025         * metadata.c (mono_metadata_class_equal): New static function;
29026         checks whether two generic instances or two generic parameters are
29027         equal.
29028         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
29029         compare classes.        
29030
29031 2004-03-10  Martin Baulig  <martin@ximian.com>
29032
29033         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
29034
29035         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
29036         argument and write it into the `reflection_info' field.
29037
29038         * icall.c
29039         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
29040         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
29041
29042 2004-03-09  Jackson Harper  <jackson@ximian.com>
29043
29044         * char-conversions.h: use 8 bits for numeric data its all we need
29045         * icall.c: numeric data is only 8 bits now.
29046
29047 2004-03-09  Martin Baulig  <martin@ximian.com>
29048
29049         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
29050
29051         * class.c (init_properties, init_events): Initialize the new
29052         `parent' field.
29053
29054         * reflection.c (typebuilder_setup_properties): Likewise.
29055         (typebuilder_setup_events): Likewise.
29056
29057         * reflection.h (MonoEventInfo): Replaced `parent with
29058         `declaring_type' and `reflected_type'.
29059
29060         * icall.c (ves_icall_get_property_info): Distinguish between
29061         declaring and reflected type.
29062         (ves_icall_get_event_info): Likewise.
29063
29064 2004-03-09  Martin Baulig  <martin@ximian.com>
29065
29066         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
29067         (ves_icall_Type_GetField): Correctly set field->klass.
29068
29069 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
29070
29071         * loader.h: Fix warning.
29072
29073 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
29074
29075         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
29076         library routine if present.  Notice that it will still continue
29077         executing even if its missing, for those working on the Gtk#
29078         edition of Windows.Forms.
29079
29080         * assembly.c (do_mono_assembly_open): If loading the
29081         System.Windows.Forms call mono_loader_wini_init.
29082
29083 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
29084
29085         * class.h: Added MonoRemoteClass struct.
29086         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
29087         function for MonoStrings.
29088         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
29089         Added internal call for getting the proxy type.
29090         * marshal.c: Get the type of transparent proxies from its remote_class.
29091         Added methods that generate the IL for type checks and casts:
29092         mono_marshal_get_isinst, mono_marshal_get_castclass, 
29093         mono_marshal_get_proxy_cancast.
29094         * marshal.h: Declaration of the previous new methods.
29095         * object.c: Added new moethods for creating and updating MonoRemoteClass
29096         instances: mono_remote_class, mono_upgrade_remote_class, 
29097         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
29098         * verify.c: FIx transparent_proxy_fields layout.
29099         * appdomain.c: Bump corlib version.
29100
29101 2004-03-04  Jackson Harper  <jackson@ximian.com>
29102
29103         * icall.c: Add icall to access char conversion tables.
29104         * char-conversions.h: Character conversion tables.
29105         * Makefile.am: Add char-conversions.h private header file.
29106         
29107 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
29108
29109         * appdomain.c (unload_thread_main): Increase unloading timeout to
29110         10 sec as a temporary workaround for Nant problems.
29111
29112 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
29113
29114         * gc.c: Add checks for GC_enable and GC_disable.
29115
29116         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
29117         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
29118         (bug #54988).
29119         
29120 2004-02-27  Martin Baulig  <martin@ximian.com>
29121
29122         * reflection.c (mono_reflection_bind_generic_parameters): Take a
29123         `MonoReflectionType *' instead of a `MonoType *'.
29124
29125 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
29126
29127         * gc.c (run_finalize): Avoid finalizing the object representing the
29128         finalizer thread.
29129         (finalizer_thread): Fix warning.
29130
29131 2004-02-25  Martin Baulig  <martin@ximian.com>
29132
29133         * class.c (_mono_class_get_instantiation_name): Added `int offset'
29134         argument for nested types.
29135         (mono_class_create_generic): Added support for nested generictypes.
29136
29137         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
29138         `GList *nested'.
29139
29140         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
29141
29142         * reflection.c (method_encode_signature): Increase the minimum
29143         value of `size' from 10 to 11.
29144         (mono_reflection_bind_generic_parameters): Take `int type_argc'
29145         and `MonoType **types' arguments instead of the `MonoArray
29146         *types'; added `MonoType *nested_in'.  Recursively instantiate
29147         nested classes. 
29148
29149 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
29150
29151         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
29152         stack_overflow_ex members which are used by exception handling.
29153
29154         * appdomain.c (mono_runtime_init): Initialize the new members.
29155
29156         * gc.c (mono_gc_enable): New helper function.
29157         * gc.c (mono_gc_disable): New helper function.
29158
29159 2004-02-23  Martin Baulig  <martin@ximian.com>
29160
29161         * icall.c: I must have been really stupid - make it actually work
29162         this time ;-)
29163
29164 2004-02-23  Martin Baulig  <martin@ximian.com>
29165
29166         * loader.c (method_from_memberref): Only inflate the method if
29167         it's in another klass.
29168
29169 2004-02-23  Martin Baulig  <martin@ximian.com>
29170
29171         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
29172         (mono_class_init): If we're a generic instance and an interface,
29173         compute `class->interface_id'; also create `class->interfaces'
29174         here and inflate them.
29175
29176         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
29177         `ginst->is_open'.
29178         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
29179
29180         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
29181
29182 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
29183
29184         * reflection.c (method_encode_code): Improved the error message
29185         generated by the exception.
29186
29187 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29188
29189         * icall.c: Martin did not do what he said in the ChangeLog for
29190         2004-02-18, but put back the changes for properties and events.
29191         Commenting those changes out again and adding comment to bug #54518.
29192         
29193         * process.c: removed warning.
29194
29195 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
29196
29197         * marshal.c (emit_struct_conv): Print an error message instead of
29198         asserting when a type does not have the StructLayout attribute.
29199
29200 2004-02-20  Martin Baulig  <martin@ximian.com>
29201
29202         * reflection.c (mono_type_get_object): Also use the cache for
29203         generic instances.
29204         (mono_reflection_bind_generic_parameters): Always compute
29205         `ginst->ifaces'.        
29206
29207 2004-02-20  Martin Baulig  <martin@ximian.com>
29208
29209         * class.h (MonoGenericMethod): Removed `klass'.
29210
29211         * class.c (mono_class_inflate_generic_method): Added `MonoClass
29212         *klass' argument.
29213
29214 2004-02-20  Martin Baulig  <martin@ximian.com>
29215
29216         * reflection.c (method_encode_methodspec): Actually use the
29217         uninflated signature for the memberref.
29218
29219 2004-02-20  Martin Baulig  <martin@ximian.com>
29220
29221         * class.h (MonoGenericMethod): Removed `declaring'.
29222
29223         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
29224         is NULL, compute it here.
29225
29226 2004-02-20  Martin Baulig  <martin@ximian.com>
29227
29228         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
29229
29230         * metadata.c (mono_metadata_generic_inst_hash): New method.
29231         (mono_metadata_generic_inst_equal): New method.
29232
29233         * reflection.c (mono_reflection_bind_generic_parameters): Use the
29234         `klass->image->generic_inst_cache' cache to avoid creating
29235         duplicate MonoGenericInst's.
29236
29237         * class.c (mono_class_inflate_generic_type): Use the cache.
29238
29239 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
29240
29241         * object.c: fixed gc descriptor calculation for embedded valuetypes.
29242
29243 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29244
29245         * icall.c: added Socket.WSAIoctl icall.
29246
29247         * socket-io.[ch]: implemented
29248         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
29249
29250 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
29251
29252         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
29253
29254 2004-02-18  Urs C Muff  <umuff@quark.com>
29255
29256         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
29257         this work on PPC and other big-endian architectures.
29258
29259         * debug-mono-symfile.h: Prepended the names of all the `guint32'
29260         fields with an underscore to make sure they're only accessed by
29261         the read32() macro.
29262
29263 2004-02-18  Martin Baulig  <martin@ximian.com>
29264
29265         * icall.c: Put the klass->refclass changes back for methods and
29266         fields, but not for properties and events.  We're currently not
29267         distinguishing between DeclaringType and ReflectedType for
29268         properties and events, that's what caused the regressions.
29269
29270 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29271
29272         * object.c:
29273         (mono_async_result_new): the handle can be NULL.
29274
29275         * threadpool.c: Use an event instead of a semaphore, don't initialize
29276         it until needed. This saves quite a few semaphores from being created
29277         when using the threadpool.
29278
29279 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
29280
29281         * object.c (mono_string_is_interned_lookup): Fix interning of long
29282         strings. Fixes #54473.
29283
29284         * domain.c (ldstr_equal): Optimize if the two strings are equal.
29285
29286         * icall.c: Revert the klass->refclass changes since they introduce
29287         regressions (bug #54518).
29288
29289 2004-02-18  Martin Baulig  <martin@ximian.com>
29290
29291         * class.c (mono_class_init): If we're a generic instance and don't
29292         come from a TypeBuilder, inflate our members here.
29293         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
29294         (mono_class_create_generic): New public method.
29295         (mono_class_initialize_generic): Removed.
29296         (get_instantiation_name): Renamed to
29297         _mono_class_get_instantiation_name() and made it public.
29298
29299 2004-02-18  Martin Baulig  <martin@ximian.com>
29300
29301         * class.c (mono_class_inflate_generic_type): Clear the new
29302         instance's `nginst->klass' when inflating a generic instance.
29303         (mono_class_is_subclass_of): Added (basic) support for generic
29304         instances.
29305
29306 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
29307
29308         * appdomain.h, domain.c: use a MonoCodeManager instead of a
29309         MonoMempool to hold compiled native code.
29310
29311 2004-02-17  Martin Baulig  <martin@ximian.com>
29312
29313         * class.h (MonoDynamicGenericInst): Added `count_properties' and
29314         `properties'.
29315
29316         * reflection.c (mono_reflection_generic_inst_initialize): Added
29317         `MonoArray *properties' argument.
29318
29319         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
29320
29321 2004-02-17  Martin Baulig  <martin@ximian.com>
29322
29323         * icall.c (ves_icall_Type_GetFields): Renamed to
29324         ves_icall_Type_GetFields_internal() and added a
29325         `MonoReflectionType *rtype' argument; pass it to
29326         mono_field_get_object() to set the field's "reflected" type.
29327         (ves_icall_Type_GetConstructors): Likewise.
29328         (ves_icall_Type_GetEvents): Likewise.
29329         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
29330         argument; pass it to mono_method_get_object() to set the method's
29331         "reflected" type.       
29332
29333 2004-02-17  Martin Baulig  <martin@ximian.com>
29334
29335         * class.h (MonoDynamicGenericInst): New type.
29336         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
29337
29338         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
29339         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
29340         (ves_icall_MonoGenericInst_GetFields): New interncall.
29341
29342         * class.c (mono_class_from_generic): Don't call
29343         mono_class_initialize_generic() if this is a dynamic instance;
29344         ie. it's being created from a TypeBuilder.
29345         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
29346         `class->byval_arg.type'.
29347
29348         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
29349         to `inflate_method' and made static.
29350         (mono_reflection_inflate_field): Removed.
29351         (mono_reflection_generic_inst_initialize): New public method.
29352
29353         * reflection.h (MonoReflectionGenericInst): Removed `methods',
29354         `ctors' and `fields'; added `initialized'.
29355
29356 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
29357
29358         * debug-helpers.c (mono_method_full_name): Fix output for empty
29359         namespaces.
29360
29361 2004-02-12  Martin Baulig  <martin@ximian.com>
29362
29363         * class.h (MonoClassField): Added `MonoType *generic_type'.
29364
29365         * reflection.c (mono_image_get_fieldref_token): Added support for
29366         instantiated generic types.
29367         (field_encode_inflated_field): Removed.
29368         (mono_image_get_inflated_field_token): Removed.
29369         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
29370
29371         * reflection.h (MonoReflectionInflatedField): Removed.
29372
29373 2004-02-12  Martin Baulig  <martin@ximian.com>
29374
29375         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
29376         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
29377
29378         * reflection.c (mono_image_get_methodspec_token): Take a
29379         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
29380         (mono_image_create_token): Check whether we have a
29381         `method->signature->gen_method' and call
29382         mono_image_get_methodspec_token() if appropriate.
29383         (inflated_method_get_object): Removed.
29384         (mono_reflection_bind_generic_method_parameters): Return a
29385         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
29386         (mono_reflection_inflate_method_or_ctor): Likewise.
29387
29388         * reflection.h (MonoReflectionInflatedMethod): Removed.
29389
29390 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
29391
29392         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
29393         for custom valuetype marshalling.
29394
29395         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
29396
29397 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29398
29399         * icall.c: fixed WSAGetLastError_internal name.
29400
29401 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
29402
29403         * threads.c (mono_thread_attach): Allow this to be called multiple
29404         times for a thread.
29405         
29406         * threads.c (build_wait_tids): Do not wait for ourselves.
29407
29408         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
29409         appdomain list is empty.
29410
29411         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
29412         memory returned by mono_string_builder_to_utf16, since it points into
29413         managed memory. Thanks to Bernie Solomon for noticing this.
29414
29415         * icall.c: Add AppDomainSetup icalls.
29416
29417         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
29418
29419         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
29420         types.
29421
29422         * reflection.c (reflection_methodbuilder_to_mono_method): Save
29423         custom attributes to the method_aux struct. Also fix array indexes etc.
29424
29425         * loader.c (mono_method_get_param_names): Make dynamic case work again.
29426         
29427 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
29428
29429         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
29430         (both static and runtime) and reduce startup time.
29431
29432 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
29433
29434         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
29435         AsAny marshalling conversion instead of crashing.
29436
29437         * marshal.c: Fix warnings.
29438
29439 2004-02-09  Martin Baulig  <martin@ximian.com>
29440
29441         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
29442
29443         * reflection.h (MonoReflectionInflatedMethod): Removed the
29444         `declaring' field, it's now in the unmanaged MonoGenericMethod.
29445
29446         * reflection.c (method_encode_methodspec): Removed the `method'
29447         argument; we get it from `gmethod->declaring'.
29448         (inflated_method_get_object): Removed the `declaring' argument.
29449
29450 2004-02-09  Martin Baulig  <martin@ximian.com>
29451
29452         * class.h (MonoGenericMethod): New type.
29453         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
29454         `generic_method'.
29455
29456         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
29457         a `MonoGenericMethod *gen_method' one.
29458
29459         * class.c (mono_class_inflate_generic_type): Take an additional
29460         `MonoGenericMethod * argument.  This is only non-NULL if we're
29461         inflating types for a generic method.   
29462         (mono_class_inflate_generic_signature): Renamed to
29463         inflate_generic_signature() and made static; take a
29464         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
29465         (inflate_generic_header): Take a `MonoGenericMethod *' argument
29466         instead of a `MonoGenericInst *' one.
29467         (mono_class_inflate_generic_method): Likewise.
29468
29469         * reflection.c (encode_generic_method_sig): Take a
29470         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
29471         (method_encode_methodspec): Likewise.
29472         (inflated_method_get_object): Likewise. 
29473
29474         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
29475         field with a `MonoGenericMethod *gmethod' one.  
29476
29477 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
29478
29479         * class.h (mono_class_has_parent): add parens to expansion
29480         so you can ! this.
29481
29482 2004-02-08  Martin Baulig  <martin@ximian.com>
29483
29484         * image.h (MonoImage): Removed `generics_cache'.
29485
29486         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
29487         instead of a `MonoType *' argument; removed the `inflate_methods'
29488         argument.  Don't inflate methods here.
29489
29490         * loader.c (find_method): If it's a generic instance, call
29491         mono_class_init() on the `sclass->generic_inst->generic_type'.
29492
29493         * metadata.c (mono_type_size): Make this work on uninitialized
29494         generic instances; call it on the `ginst->generic_type's class.
29495
29496         * reflection.c (mono_reflection_bind_generic_parameters): Call
29497         mono_class_from_generic() to create the `ginst->klass'.
29498
29499 2004-02-08  Martin Baulig  <martin@ximian.com>
29500
29501         * class.h (MonoClass): Changed type of `generic_inst' from
29502         `MonoType *' to `MonoGenericInst *'.
29503
29504 2004-02-08  Martin Baulig  <martin@ximian.com>
29505
29506         * icall.c (ves_icall_Type_BindGenericParameters): Just call
29507         mono_type_get_object(), this is now creating a `MonoGenericInst'
29508         for MONO_TYPE_GENERICINST.
29509         (ves_icall_MonoGenericInst_GetParentType): Likewise.
29510         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
29511
29512         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
29513         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
29514         (inflated_method_get_object): Added `MonoClass *refclass' argument.
29515         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
29516         and reflected type.
29517
29518         * reflection.h (MonoReflectionInflatedMethod): Removed
29519         `declaring_type' and `reflected_type'.
29520
29521 2004-02-08  Martin Baulig  <martin@ximian.com>
29522
29523         * class.h (MonoGenericInst): Added `MonoType *parent' and
29524         `MonoType **ifaces'.
29525
29526         * reflection.h (MonoReflectionGenericInst): Removed `klass',
29527         `parent' and `interfaces'.
29528
29529         * reflection.c (mono_reflection_bind_generic_parameters): Take a
29530         `MonoType *' argument and return a `MonoType *'.
29531
29532         * icall.c
29533         (ves_icall_MonoGenericInst_GetParentType): New interncall.
29534         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
29535
29536 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
29537
29538         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
29539         valuetype marshalling.
29540
29541 2004-02-06  Martin Baulig  <martin@ximian.com>
29542
29543         * class.c
29544         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
29545         (my_mono_class_from_generic_parameter): Likewise.
29546
29547 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
29548
29549         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
29550         contents of the symbol files lazily.
29551
29552         * object.h (MonoThread): Add 'name' and 'name_len' fields.
29553
29554         * threads.h threads.c icall.c: New icalls for getting and setting the
29555         threads name.
29556
29557 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
29558
29559         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
29560         Raise an exception when the domain is not found.
29561
29562 2004-02-03  Martin Baulig  <martin@ximian.com>
29563
29564         * reflection.c (mono_image_get_methodspec_token): Use the
29565         uninflated signature; fixes gen-33.
29566
29567 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
29568
29569         * gc.c threads.c: Make the finalizer thread a normal managed thread so
29570         the finalizer code can use thread functionality.
29571
29572         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
29573         the finalizer thread.
29574
29575         * threads.c: Make some functions more robust.
29576
29577         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
29578
29579         * metadata.h: Add new marshalling conventions.
29580
29581         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
29582         stringbuilder marshalling. Fixes #53700.
29583
29584         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
29585
29586         * reflection.c (mono_image_get_type_info): Save declarative security
29587         info.
29588
29589         * reflection.c (mono_image_get_field_info): Handle uninitialized 
29590         unmanaged fields as well.
29591
29592         * appdomain.c: Bump corlib version.
29593
29594 2004-02-01  Martin Baulig  <martin@ximian.com>
29595
29596         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
29597         method type arguments.  
29598
29599 2004-01-30  Duncan Mak  <duncan@ximian.com>
29600
29601         * marshal.h: Add prototype for
29602         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
29603         and
29604         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
29605         fix the build.
29606
29607 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
29608
29609         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
29610         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
29611
29612 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
29613
29614         * marshal.c (mono_marshal_get_native_wrapper): Add support for
29615         custom marshalling of valuetypes.
29616
29617         * marshal.c: Fix some warnings.
29618
29619 2004-01-29  Martin Baulig  <martin@ximian.com>
29620
29621         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
29622         for generic method parameters.
29623
29624         * reflection.c (method_encode_methodspec): Write the uninflated
29625         signature into the methodspec table.
29626         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
29627         is always the uninflated method.
29628         (reflection_methodbuilder_to_mono_method): Copy the generic
29629         parameters from the MethodBuilder into `header->gen_params'.
29630
29631 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
29632
29633         * class.c (mono_class_from_generic_parameter): Fix warning.
29634
29635 2004-01-27  Martin Baulig  <martin@ximian.com>
29636
29637         * class.c (mono_class_from_generic_parameter): Don't create
29638         `klass->methods' here.  
29639
29640 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
29641
29642         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
29643         extension since it does not work with libraries named lib<FOO>.dll.so.
29644
29645 2004-01-25  Martin Baulig  <martin@ximian.com>
29646
29647         * class.c (mono_class_inflate_generic_type): Added support for
29648         MONO_TYPE_GENERICINST.
29649
29650         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
29651         inflate methods on open constructed types.      
29652
29653 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29654
29655         * object.c: fire ProcessExit event in the root AppDomain after running
29656         Main. Fixes bug #53299.
29657
29658 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
29659
29660         * socket-io.c: include the new socket-wrappers.h header.
29661         Use the wrappers instead of the unix socket functions to make the code
29662         more clear.
29663
29664 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
29665
29666         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
29667
29668         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
29669         Fixes #22532.
29670
29671 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
29672
29673         * reflection.c (mono_image_create_pefile): Handle the case when the
29674         entry point is not a MethodBuilder.
29675
29676         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
29677         field to ReflectionMethod since it is not allways a builder.
29678
29679         * reflection.c (type_get_fully_qualified_name): New helper function to
29680         return the fully qualified name of a type.
29681
29682         * reflection.c (encode_marshal_blob): Always emit the fully qualified
29683         type name for custom marshallers.
29684
29685         * reflection.c (mono_marshal_spec_from_builder): Ditto.
29686
29687         * class.c (mono_class_setup_vtable): If a parent class already 
29688         implements an interface, use the implementing methods from that class.
29689         Fixes #53148.
29690
29691 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29692
29693         * threadpool.c: just return instead of ExitThread to allow for thread
29694         clean up earlier.
29695
29696 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
29697
29698         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
29699         when closing resource modules.
29700
29701         * reflection.c (mono_image_create_pefile): Handle the case when the
29702         entry point is not a MethodBuilder.
29703
29704         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
29705         field to ReflectionMethod since it is not allways a builder.
29706
29707 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
29708
29709         * marshal.c (mono_marshal_get_managed_wrapper): 
29710         mono_marshal_alloc takes native int so CONV_I
29711         the arg for 64bits.
29712
29713 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
29714
29715         * reflection.c (fixup_cattrs): New function to fixup the methoddef
29716         tokens in the cattr table. Fixes #53108.
29717
29718 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29719
29720         * loader.c: don't trim ".dll" before looking up in the config file.
29721         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
29722
29723 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
29724
29725         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
29726         Return the module which contains the resource as well.
29727         (ves_icall_System_Reflection_Module_Close): New icall.
29728
29729         * appdomain.c: Bump corlib version number.
29730
29731         * image.c (mono_image_addref): New public function.
29732
29733         * assembly.c: Call mono_image_addref.
29734
29735         * reflection.c (mono_module_get_object): Increase reference count of 
29736         the image.
29737
29738         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
29739         Fixes #22532.
29740
29741         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
29742         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
29743         proper exceptions on DllImport problems.
29744
29745 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
29746
29747         * class.c, metadata.c: eliminate CSIZE macro.
29748
29749 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
29750
29751         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
29752         * object.h: Added async_callback field in MonoAsyncResult.
29753         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
29754         * verify.c: Added async_callback in MonoAsyncResult layout.
29755
29756 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
29757
29758         * reflection.c (mono_reflection_get_custom_attrs): Add support
29759         for Modules.
29760
29761 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
29762
29763         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
29764         marshalling.
29765         (mono_marshal_method_from_wrapper): Add null pointer check.
29766
29767 2004-01-16  Martin Baulig  <martin@ximian.com>
29768
29769         * debug-mono-symfile.h: Set version number to 36 and reflect
29770         latest symbol writer changes.
29771
29772 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
29773
29774         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
29775         multi-dimensional arrays.
29776         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
29777         (mono_class_from_mono_type): Use bounded_array_class_get.
29778         
29779         * class.c (mono_bounded_array_class_get): New function which takes
29780         a 'bounded' bool argument to distinguish vectors from one dimensional
29781         arrays.
29782
29783         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
29784         bounded_array_class_get if the array has bounds.
29785
29786         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
29787         Search modules loaded using AssemblyBuilder:AddModule as well.
29788
29789 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29790
29791         * appdomain.c: increased corlib version.
29792         * filewatcher.c: removed g_print.
29793         * icall.c:
29794         (get_property_info): only allocate what is actually requested.
29795         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
29796
29797 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29798
29799         * Makefile.am: added filewatcher.[ch]
29800         * filewatcher.[ch]: FileSystemWatcher runtime support.
29801         * icall.c: added new FSW icalls.
29802
29803 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
29804
29805         * string-icalls.c: fix stringbuilder regression as suggested by
29806         Iain McCoy <iain@mccoy.id.au>.
29807
29808 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
29809
29810         * process.c (process_read_stringtable_block): Recognize '007f' as
29811         a language neutral stringtable block.
29812
29813 2004-01-12  Patrik Torstensson
29814
29815         * object.h (MonoStringBuilder) : Changed layout to support our
29816         new stringbuilder class.
29817         * marshal.c: Change marshalling to support the new layout of 
29818         string builder.
29819         * appdomain.c: increased version number because new layout of
29820         string builder.
29821
29822 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
29823
29824         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
29825         assembly name as an string instead of an AssemblyName, since it is
29826         easier to extract info from it.
29827
29828         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
29829         the culture subdirectories too. Fixes #52231.
29830
29831 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29832
29833         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
29834         It takes 2 new parameters with an optional name for the method to look
29835         for and case ignoring info.
29836
29837         * threadpool.c: removed unused variable.
29838
29839 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29840
29841         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
29842         It takes 2 new parameters with an optional name for the property to look
29843         for and case ignoring info.
29844         Fixes bug #52753.
29845
29846 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
29847
29848         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
29849         Fix #52451.
29850
29851 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29852
29853         * appdomain.c:
29854         * assembly.c: escape the uri before passing it to g_filename_from_uri.
29855         Fixes bug #52630.
29856
29857 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
29858
29859         * reflection.c: Add support for more than one unmanaged resource.
29860
29861         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
29862         in field->def_value, as done in all other cases.
29863
29864         * reflection.c (mono_reflection_get_custom_attrs): Add support for
29865         TypeBuilders.
29866
29867         * reflection.c (mono_reflection_create_runtime_class): Remove 
29868         errorneous assignment to klass->element_class, since it is already
29869         done in mono_reflection_setup_internal_class.
29870
29871 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
29872
29873         * gc.c: added missing LeaveCriticalSection.
29874         * icall.c: indented a couple of lines.
29875         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
29876         if we call EndInvoke inside a callback. Fixes bug #52601.
29877
29878 2004-01-07  Martin Baulig  <martin@ximian.com>
29879
29880         * mono-debug-debugger.h
29881         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
29882
29883 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
29884
29885         * appdomain.c: Use messages in NotImplementedException.
29886
29887         * exception.c (mono_get_exception_not_implemented): Now this takes
29888         a message argument.
29889
29890         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
29891         exception instead of g_asserting an aborting when something is not
29892         implemented.
29893
29894         Add some inline docs.
29895
29896 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
29897
29898         * reflection.h: Update after changes to object layout.
29899
29900         * reflection.c: Implement saving of unmanaged aka win32 resources.
29901
29902         * appdomain.c: Bump version number.
29903
29904         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
29905         Handle missing domains gracefully.
29906
29907 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
29908
29909         * file-io.c : On Windows, there are much more invalid_path_chars.
29910
29911 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
29912
29913         * class.h, object.c: prepare for GetType () speedup.
29914
29915 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
29916
29917         * profiler.c: workaround for --profile null reference exception on
29918           cygwin. Patch by Patrik Torstensson.
29919
29920 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
29921
29922         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
29923         make work for unaligned access.
29924
29925 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
29926
29927         * class.c: small cleanup (class->fields [i] -> field).
29928         * image.c: check address of metadata is valid.
29929
29930 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
29931
29932         * assembly.h assembly.c (mono_assembly_loaded): New public function to
29933         search the list of loaded assemblies.
29934
29935         * reflection.c (mono_reflection_type_from_name): Use 
29936         mono_assembly_loaded instead of mono_image_loaded.
29937
29938         * reflection.c: Fix warnings.
29939
29940 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
29941
29942         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
29943         is dynamic. This is needed since an assembly can contain both dynamic and
29944         non-dynamic images.
29945
29946         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
29947         assembly->dynamic.
29948
29949         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
29950
29951         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
29952         to store modules loaded using AddModule.
29953
29954         * reflection.c (mono_image_fill_file_table): Generalize this so it works
29955         on Modules.
29956
29957         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
29958
29959         * reflection.c (mono_image_fill_export_table_from_module): New function to
29960         fill out the EXPORTEDTYPES table from a module.
29961
29962         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
29963         into a separate function. Also handle loaded non-dynamic modules.
29964
29965         * reflection.c (mono_image_basic_init): Fix memory allocation.
29966
29967         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
29968
29969         * assembly.c (mono_assembly_load_references): Make this public.
29970
29971 2003-12-19  Martin Baulig  <martin@ximian.com>
29972
29973         * class.c (mono_class_initialize_generic): Made this static, take
29974         a `MonoGenericInst *' instead of a `MonoClass *'.
29975         (mono_class_from_generic): Call mono_class_initialize_generic()
29976         unless we're already initialized or being called from
29977         do_mono_metadata_parse_generic_inst().
29978
29979         * class.h (MonoGenericInst): Added `initialized' and
29980         `init_pending' flags.
29981
29982         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
29983         `mono_class_init (gklass)' or mono_class_initialize_generic()
29984         here; set `generic_inst->init_pending' while parsing the
29985         `type_argv'.
29986
29987 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
29988
29989         * locales.c: include string.h for memxxx prototypes
29990
29991 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
29992
29993         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
29994         constructor when accessing literal fields.
29995
29996 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
29997
29998         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
29999
30000         * reflection.c (assembly_add_resource_manifest): New function to fill
30001         the MANIFESTRESOURCE table.
30002
30003         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
30004
30005         * reflection.h: Update to changes in class layout.
30006
30007         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
30008         Reenable call to mono_runtime_is_shutting_down ().
30009
30010         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
30011         determine if the runtime is shutting down.
30012
30013 2003-12-16  Jackson Harper <jackson@ximian.com>
30014
30015         * icall.c: comment out call to mono_runtime_is_shutting_down to
30016         fix build.
30017         
30018 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
30019
30020         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
30021         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
30022
30023 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
30024
30025         * reflection.c: move definition of swap_with_size
30026         to before its first call
30027
30028 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
30029
30030         * appdomain.c (mono_runtime_is_shutting_down): New public function.
30031
30032         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
30033         icall.
30034
30035         * object.c: Fix warnings.
30036
30037         * icall.c (ves_icall_Type_Get...): Only consider inherited static
30038         members if FlattenHierarchy is set.
30039
30040         * reflection.c (mono_image_add_decl_security): New function to emit
30041         declarative security.
30042
30043         * reflection.h reflection.c: Add support for declarative security.
30044
30045         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
30046         
30047 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
30048
30049         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
30050         
30051         * appdomain.c verify.c: Moved corlib version checking into its own
30052         function in appdomain.c since it needs to create vtables etc.
30053
30054 2003-12-13  Patrik Torstensson <p@rxc.se>
30055
30056         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
30057         instead of unwrapped server.
30058
30059 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
30060
30061         * verify.c (check_corlib): Fix field index.
30062
30063 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
30064
30065         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
30066         GetGacPath icall.
30067
30068 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
30069
30070         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
30071         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
30072         cope with sizeof(size_t) != sizeof(guint32).
30073
30074 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30075
30076         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
30077         in case of failure.
30078
30079 2003-12-10  Mark Crichton <crichton@gimp.org>
30080
30081         * icall.c: removed the GetNonZeroBytes.  We now handle this case
30082         in managed code.
30083
30084         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
30085
30086 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
30087
30088         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
30089         marked as deleted.
30090
30091 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
30092
30093         * verify.c (check_corlib): Handle the case when the version field is 
30094         initialized by a static constructor.
30095
30096 2003-12-08  Patrik Torstensson  <p@rxc.se>
30097
30098     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
30099
30100 2003-12-08  Martin Baulig  <martin@ximian.com>
30101
30102         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
30103         a MonoReflectionGenericParameter, also take the parameter index
30104         and name as arguments.
30105         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
30106         (ves_icall_MonoGenericParam_initialize): New interncall.
30107         (ves_icall_Type_make_byref_type): New interncall.
30108
30109         * reflection.h (MonoReflectionGenericParam): Derive from
30110         MonoReflectionType, not just from MonoObject.  Added `refobj' and
30111         `index' fields.
30112
30113         * reflection.c (mono_reflection_define_generic_parameter): Create
30114         and return a new MonoReflectionGenericParam; don't initialize the
30115         constraints here.
30116         (mono_reflection_initialize_generic_parameter): New public method;
30117         initializes the constraints and creates the `param->pklass'.
30118
30119 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
30120
30121         * reflection.h reflection.c: Use the new fields 'num_types', 
30122         'num_fields' and 'num_methods' to track the number of types etc.
30123
30124         * verify.c (check_corlib): Check corlib version number.
30125
30126 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
30127
30128         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
30129         function works on all methods.
30130
30131 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
30132
30133         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
30134         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
30135         the custom_type_info flag of the transparent proxy.
30136         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
30137         objects that supports IRemotingTypeInfo.
30138         * object.h: Added custom_type_info field in transparent proxy.
30139
30140 2003-12-06  Martin Baulig  <martin@ximian.com>
30141
30142         * class.c (mono_class_create_from_generic): Removed.
30143         (mono_class_from_generic): Check `ginst->klass' before doing
30144         anything else.  This is important to fully support "recursive"
30145         generic types.
30146
30147         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
30148         empty `generic_inst->klass' before doing anything else.
30149
30150 2003-12-06  Dick Porter  <dick@ximian.com>
30151
30152         * verify.c: 
30153         * object.h:
30154         * icall.c:
30155         * locales.c: Use C structs to access class fields.  Don't do a
30156         conversion between MonoString and UChar because both are
30157         platform-endian UTF-16.  Compare now takes startindex and count
30158         parameters.  Add a char overload for IndexOf.  Speed up the
30159         invariant string IndexOf.
30160
30161 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
30162
30163         * Makefile.am (monosn_LDADD): Fix parallel build.
30164
30165 2003-12-04  Martin Baulig  <martin@ximian.com>
30166
30167         * icall.c
30168         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
30169         (ves_icall_Type_make_array_type): New interncall.       
30170
30171 2003-12-04  Martin Baulig  <martin@ximian.com>
30172
30173         * locales.c: also change it in the !HAVE_ICU case.
30174
30175 2003-12-04  Dick Porter  <dick@ximian.com>
30176
30177         * icall.c:
30178         * locales.c: construct_compareinfo is now in CompareInfo, not
30179         CultureInfo.
30180
30181 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
30182
30183         * image.c (mono_image_load_file_for_image): Cache loaded images in the
30184         image->files array.
30185
30186         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
30187         table as well.
30188
30189         * assembly.c (mono_assembly_load_references): Only load references
30190         once.
30191
30192         * class.c (mono_class_from_name): Avoid linear search of the 
30193         EXPORTEDTYPE table.
30194
30195         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
30196
30197 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
30198
30199         * image.h (MonoImage): Add 'field_cache' field.
30200
30201         * loader.c (mono_field_from_token): Cache field lookups.
30202         
30203         * reflection.c (mono_module_get_object): Fix name property.
30204
30205         * icall.c (ves_icall_get_enum_info): Update after changes to 
30206         mono_metadata_get_constant_index ().
30207
30208         * icall.c: Get rid of get_type_info icall, use a separate icall for
30209         each type property to avoid needless memory allocations. Fixes #51514.
30210
30211         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
30212         to avoid needless binary searches.
30213
30214         * class.c (class_compute_field_layout): Move the initialization of
30215         field->def_value to mono_class_vtable ().
30216
30217         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
30218         non-corlib types.
30219
30220         * object.c (mono_object_allocate): Make it inline.
30221
30222         * object.c (mono_object_allocate_spec): Make it inline.
30223         
30224 2003-12-02  Dick Porter  <dick@ximian.com>
30225
30226         * locales.c (create_NumberFormat): NumberFormatInfo construction.
30227         Patch by Mohammad DAMT (mdamt@cdl2000.com).
30228
30229 2003-12-01  Dick Porter  <dick@ximian.com>
30230
30231         * threads.c: Fix signature and call in CreateMutex and
30232         CreateEvent.
30233
30234 2003-12-01  Dick Porter  <dick@ximian.com>
30235
30236         * icall.c: 
30237         * locales.c: Implement string compares and searching
30238
30239         * object.h: Add extra Thread field
30240
30241 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
30242
30243         * reflection.c (fixup_method): Add support for MonoCMethod.
30244
30245 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
30246
30247         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
30248
30249         * reflection.c (assembly_name_to_aname): Allow extra characters in
30250         assembly names. Fixes #51468.
30251
30252 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
30253
30254         * exception.c (mono_exception_from_name_domain): New helper function.
30255
30256         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
30257         exception object in the correct domain.
30258
30259         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
30260         formatting + make a copy a the input data.
30261
30262         * loader.c (mono_get_method_from_token): Methods which contain
30263         native code do not have entries in the ImplMap.
30264
30265         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
30266         Thanks to Gonzalo for spotting this.
30267         
30268         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
30269         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
30270
30271         * assembly.h (mono_assembly_load_from): Split the second part of 
30272         assembly loading into a new public function.
30273
30274         * exception.h (mono_get_exception_bad_image_format): New function.
30275
30276 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
30277
30278         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
30279         Enumerate all modules inside a dynamic assembly. Fixes #51293.
30280         
30281         * icall.c: Add new icall for creating dynamic methods.
30282
30283         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
30284
30285         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
30286
30287         * reflection.c (mono_reflection_create_dynamic_method): New icall to
30288         create a dynamic method.
30289
30290         * reflection.c (resolve_object): New helper function.
30291
30292         * reflection.c: Generalize ReflectionMethodBuilder and the functions
30293         which manipulate it so they can also work on dynamic methods.
30294
30295         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
30296         creating the MonoReflectionMethodAux structure if it is not needed.
30297         
30298         * reflection.h verify.c: Update after changes to object layout.
30299
30300         * reflection.c (method_builder_encode_signature): Fix compilation on
30301         gcc 2.95.x.
30302
30303 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
30304
30305         * appdomain.h: Added support for context static fields. Added static_data
30306           field to MonoAppContext and renamed thread_static_fields to a more
30307           generic special_static_fields in MonoAppDomain, since it can now contain
30308           context static fields.
30309         * domain.c: Updated hashtable name.
30310         * object.c: Replaced field_is_thread_static() for a more generic
30311           field_is_special_static() which also checks for context static attribute.
30312           In mono_class_vtable(), added support for static context fields.
30313         * threads.c: Changed methods that manage thread static fields to more
30314           generic methods so they can be reused both for thread and context static
30315           data.
30316         * threads.h: Declared some new methods.
30317
30318 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
30319
30320         * reflection.h: Update after changes to the managed types.
30321
30322         * reflection.c (encode_custom_modifiers): New helper function.
30323
30324         * reflection.c (method_encode_signature): Emit custom modifiers.
30325
30326         * reflection.c (field_encode_signature): Emit custom modifiers.
30327
30328 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
30329
30330         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
30331
30332         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
30333         implementation.
30334
30335         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
30336         icall.
30337
30338         * object.c (mono_field_get_value_object): New function.
30339
30340         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
30341         specific.
30342
30343 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
30344
30345         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
30346         return a preallocated out-of-memory exception instance.
30347
30348         * object.c (out_of_memory): Use the new function.
30349
30350         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
30351         flag is before the custom modifiers. Fixes #49802.
30352
30353 2003-11-16  Martin Baulig  <martin@ximian.com>
30354
30355         * class.c (mono_class_is_open_constructed_type): Implemented the
30356         MONO_TYPE_GENERICINST case.
30357
30358 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
30359
30360         * assembly.c (mono_assembly_fill_assembly_name): New function to
30361         fill out the MonoAssemblyName structure.
30362         (mono_assembly_open): Use the new function.
30363
30364         * icall.c (fill_reflection_assembly_name): New helper function.
30365
30366         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
30367         new function.
30368
30369         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
30370
30371 2003-11-15  Martin Baulig  <martin@ximian.com>
30372
30373         * class.c (mono_class_is_open_constructed_type): New public
30374         function; checks whether a type is an open constructed type,
30375         ie. whether it still contains type parameters.
30376         (mono_class_inflate_generic_type): If we're a type parameter and
30377         the inflated type is also a MONO_TYPE_(M)VAR, return the original
30378         type.
30379
30380         * class.h (MonoGenericInst): Added `guint32 is_open'.
30381
30382         * loader.c (method_from_methodspec): Check whether we're an open
30383         or closed constructed type and set `ginst->is_open'.
30384
30385         * reflection.c (mono_reflection_bind_generic_parameters): Check
30386         whether we're an open or closed constructed type and set
30387         `ginst->is_open'.
30388         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
30389         from open constructed types.
30390
30391 2003-11-15  Martin Baulig  <martin@ximian.com>
30392
30393         * reflection.c (mono_reflection_bind_generic_parameters): If we're
30394         a generic instance (instead of a generic type declaration) with
30395         unbound generic parameters, bind them to our actual types.
30396
30397 2003-11-14  Martin Baulig  <martin@ximian.com>
30398
30399         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
30400
30401         * reflection.c (mono_reflection_bind_generic_parameters): If we're
30402         an interface type, populate `res->interfaces' with instantiated
30403         versions of all the interfaces we inherit.
30404
30405 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
30406
30407         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
30408         when MONO_PATH is set but doesn't contain the install dir.
30409
30410 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30411
30412         * icall.c:
30413         (ves_icall_Type_GetInterfaces): don't return an interface twice when
30414         it's also implemented in base classes. Fixes bug #50927.
30415
30416 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
30417
30418         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
30419         if this method is called from a finalizer. Fixes #50913.
30420
30421 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
30422
30423         * threads.c: Implement VolatileRead/VolatileWrite
30424
30425         * icall.c: Add new icalls for VolatileRead/VolatileWrite
30426
30427 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
30428
30429         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
30430         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
30431         2.95.3.
30432
30433         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
30434         from Peter Ross (pro@missioncriticalit.com).
30435         
30436 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
30437
30438         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
30439
30440 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
30441
30442         * assembly.c (mono_assembly_load_references): Disable check because it
30443         triggers on older corlibs which lots of people have.
30444
30445 2003-11-12  Jackson Harper  <jackson@ximian.com>
30446
30447         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
30448         load corlib.dll if mscorlib.dll is not found.
30449         * assembly.h: Remove corlib name define.
30450         * class.c:
30451         * domain.c:
30452         * image.c: Change corlib name to mscorlib.
30453         
30454 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
30455
30456         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
30457
30458 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
30459
30460         * appdomain.h: Added loader_optimization here to sync with the C#
30461         code, and add disallow_binding_redirects field.
30462
30463 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
30464
30465         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
30466
30467         * reflection.c (mono_image_build_metadata): Fix crash on modules
30468         with no types.
30469
30470         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
30471
30472         * icall.c (ves_icall_get_method_info): Return callingConvention as
30473         well.
30474
30475         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
30476         namespaces from the EXPORTEDTYPE table as well.
30477
30478         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
30479         from all modules inside the assembly.
30480         
30481 2003-11-11  Martin Baulig  <martin@ximian.com>
30482
30483         * reflection.c (mono_reflection_bind_generic_parameters): Make
30484         this work for interfaces.
30485
30486 2003-11-11  Martin Baulig  <martin@ximian.com>
30487
30488         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
30489
30490 2003-11-11  Martin Baulig  <martin@ximian.com>
30491
30492         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
30493         "MonoInflatedMethod" and "MonoInflatedCtor".
30494
30495 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
30496
30497         * reflection.c (resolution_scope_from_image): Use the assembly table
30498         from the manifest module, since other modules don't have it.
30499
30500         * debug-helpers.c (mono_type_full_name): New helper function.
30501
30502         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
30503
30504         * image.c (mono_image_load_file_for_image): New public function which
30505         is a replacement for the load_file_for_image in class.c.
30506
30507         * assembly.c (mono_assembly_load_module): A wrapper for the function
30508         above which does assembly association and reference loading too.
30509
30510         * class.c (mono_class_from_name): Call mono_assembly_load_module.
30511
30512 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30513
30514         * appdomain.c: not all of the attributes for the full assembly name
30515         are required and the order doesn't matter. Fixes bug #50787.
30516
30517 2003-11-10  Dick Porter  <dick@ximian.com>
30518
30519         * locales.c: Use platform-endian UTF16
30520
30521 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
30522
30523         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
30524         
30525 2003-11-10  Martin Baulig  <martin@ximian.com>
30526
30527         * metadata.c
30528         (mono_metadata_load_generic_params): Make this actually work.
30529
30530         * reflection.c (mono_reflection_bind_generic_parameters): If our
30531         parent is a generic instance, pass all the `types' to it, no
30532         matter whether it has the same number of type parameters or not.
30533
30534 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
30535
30536         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
30537
30538         * assembly.c (mono_assembly_load_references): Move the image<->assembly
30539         assignment code to this function so it gets called recursively for all
30540         modules.
30541
30542         * image.c (load_modules): Remove the assembly assignment since it is
30543         now done by mono_assembly_load_references.
30544         
30545         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
30546         Add 'module' argument.
30547         (mono_module_get_types): New helper function.
30548         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
30549
30550 2003-11-08  Martin Baulig  <martin@ximian.com>
30551
30552         * class.c (mono_class_inflate_generic_method): Interface method
30553         don't have a header.
30554
30555         * reflection.c (mono_image_get_methodspec_token): Take an
30556         additional `MonoGenericInst *' argument instead of reading it from
30557         the header; this is necessary to support interfaces.
30558         (mono_image_create_token): Pass the `MonoGenericInst *' from the
30559         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
30560         (inflated_method_get_object): Take an additional `MonoGenericInst *'
30561         argument.
30562
30563         * reflection.h (MonoReflectionInflatedMethod): Added
30564         `MonoGenericInst *ginst'.
30565
30566 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
30567
30568         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
30569
30570 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
30571
30572         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
30573
30574 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
30575
30576         * reflection.c 
30577         (reflection_methodbuilder_from_method_builder):
30578         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
30579         initialize a ReflectionMethodBuilder structure.
30580         (mono_image_get_methodbuilder_token):
30581         (mono_image_get_ctorbuilder_token): New functions to emit memberref
30582         tokens which point to types in another module inside the same assembly.
30583
30584         * reflection.c: Use the new helper functions.
30585         
30586         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
30587
30588         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
30589         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
30590
30591         * reflection.c (resolution_scope_from_image): Emit a moduleref if
30592         neccesary.
30593
30594         * reflection.c (mono_image_build_metadata): Emit metadata only for the
30595         current module. Emit the manifest only for the main module.
30596
30597         * reflection.c (mono_image_create_token): Add assertion when a 
30598         memberref needs to be created.
30599
30600         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
30601
30602         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
30603         larger buffer for the custom attribute blob. Fixes #50637.
30604         
30605 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30606
30607         * threadpool.c: notify listener on async processing handles after
30608         invoking the async callback. Thanks to Zoltan.
30609
30610 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
30611
30612         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
30613         avoid code duplication.
30614
30615         * reflection.h (MonoDynamicImage): New type which is currently unused,
30616         but will be used through the ref.emit code in place of 
30617         MonoDynamicAssembly.
30618
30619         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
30620         object layout.
30621
30622         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
30623         a MonoDynamicImage instead of just a MonoImage.
30624         
30625         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
30626         icalls to ModuleBuilder but keep their semantics, so they will work
30627         with moduleb->assemblyb. This will change later.
30628         
30629 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
30630
30631         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
30632         object layout.
30633
30634         * reflection.c (mono_image_build_metadata): Avoid creation of a default
30635         main module, since it is now done by the managed code.
30636
30637 2003-11-03  Martin Baulig  <martin@ximian.com>
30638
30639         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
30640         `ginst->klass' here.
30641         (method_encode_methodspec): Don't use the `ginst->generic_method's
30642         klass if it's a generic instance, use `ginst->klass' in this case.
30643
30644 2003-11-03  Martin Baulig  <martin@ximian.com>
30645
30646         * reflection.c (mono_image_get_generic_method_param_info):
30647         Removed, use mono_image_get_generic_param_info() instead.
30648         (mono_image_get_type_info): Write the GenericParam table before
30649         the Method table.  This is neccessary because in the GenericParam
30650         table, type parameters of the class (ie. '!0' etc.) must come
30651         before the ones from its generic methods (ie. '!!0' etc).
30652
30653 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
30654
30655         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
30656
30657 2003-11-02  Martin Baulig  <martin@ximian.com>
30658
30659         * reflection.c (create_generic_typespec): Take a
30660         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
30661         the generic parameters from it.
30662
30663 2003-11-02  Martin Baulig  <martin@ximian.com>
30664
30665         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
30666         instead of a `MonoClassField *' since we just need the type.
30667         (create_generic_typespec): New static function.  Creates a
30668         TypeSpec token for a generic type declaration.
30669         (mono_image_get_generic_field_token): New static function.
30670         (mono_image_create_token): If we're a FieldBuilder in a generic
30671         type declaration, call mono_image_get_generic_field_token() to get
30672         the token.
30673
30674 2003-11-02  Martin Baulig  <martin@ximian.com>
30675
30676         * reflection.h
30677         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
30678         `MonoReflectionGenericInst *declaring_type' and
30679         `MonoReflectionGenericInst *reflected_type' fields.
30680
30681         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
30682         `MonoReflectionGenericInst *declaring_type' and a
30683         `MonoReflectionGenericInst *reflected_type' argument instead of a
30684         single `MonoReflectionGenericInst *type' one.  Set
30685         `res->declaring_type' and `res->reflected_type' from them.
30686         (mono_reflection_inflate_field): Likewise.      
30687
30688 2003-11-02  Martin Baulig  <martin@ximian.com>
30689
30690         * class.c (mono_class_setup_vtable): Don't store generic methods
30691         in the vtable.  
30692
30693 2003-11-02  Martin Baulig  <martin@ximian.com>
30694
30695         * reflection.h (MonoReflectionGenericInst): Added
30696         `MonoReflectionType *declaring_type'.
30697
30698         * reflection.c (mono_reflection_bind_generic_parameters): Use
30699         `if (tb->parent)' instead of `klass->parent'.
30700
30701 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
30702
30703         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
30704         with an empty ASSEMBLY table.
30705
30706         * reflection.c (mono_image_build_metadata): Avoid using the same loop
30707         variable in the inner and outer loops.
30708
30709 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
30710
30711         * metadata.h (mono_metadata_make_token): Put parentheses around macro
30712         argument.
30713
30714         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
30715         
30716         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
30717         icalls. Instead, do everything in managed code. This is needed since
30718         it is hard to restore the original domain etc. in unmanaged code in the
30719         presence of undeniable exceptions.
30720
30721         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
30722         New icalls to push and pop appdomain refs.
30723
30724 2003-10-31  Martin Baulig  <martin@ximian.com>
30725
30726         * class.c (inflate_generic_type): Renamed to
30727         mono_class_inflate_generic_type() and made it public.
30728
30729         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
30730         New interncall.
30731
30732         * loader.c (mono_field_from_memberref): Also set the retklass for
30733         typespecs.
30734
30735         * fielder.c (mono_image_get_inflated_field_token): New static
30736         method; creates a metadata token for an inflated field.
30737         (mono_image_create_token, fixup_method): Added support for
30738         "MonoInflatedField".
30739         (fieldbuilder_to_mono_class_field): New static function.
30740         (mono_reflection_inflate_field): New public function.
30741
30742         * reflection.h
30743         (MonoReflectionGenericInst): Added `MonoArray *fields'.
30744         (MonoReflectionInflatedField): New typedef.     
30745
30746 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
30747
30748         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
30749         for Solaris and other platforms without s6_addr16
30750
30751 2003-10-30  Martin Baulig  <martin@ximian.com>
30752
30753         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
30754         argument instead of two.
30755         (mono_class_inflate_generic_signature): Likewise.
30756         (inflate_generic_header): Likewise.
30757         (mono_class_inflate_generic_method): Likewise.  In addition, if
30758         `ginst->klass' is set, it becomes the new `method->klass'.
30759
30760         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
30761         field.
30762
30763         * reflection.c (encode_generic_method_sig): Write a 0xa as the
30764         first byte. [FIXME]
30765         (method_encode_methodspec): If we have generic parameters, create
30766         a MethodSpec instead of a MethodRef.
30767         (fixup_method): Added support for "MonoInflatedMethod" and
30768         "MonoInflatedCtor".
30769         (mono_image_create_token): Added support for "MonoInflatedMethod"
30770         and "MonoInflatedCtor".
30771         (inflated_method_get_object): New static function; returns a
30772         managed "System.Reflection.MonoInflatedMethod" object.
30773         (mono_reflection_bind_generic_method_parameters): Return a
30774         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
30775         (mono_reflection_inflate_method_or_ctor): Likewise.
30776         (mono_image_get_generic_method_param_info): Initialize unused
30777         fields to zero.
30778         (mono_image_get_generic_param_info): Likewise.
30779
30780         * reflection.h (MonoReflectionInflatedMethod): New public
30781         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
30782         "S.R.MonoInflatedCtor" classes.
30783
30784         * loader.c (method_from_memberref): If we're a TypeSpec and it
30785         resolves to a generic instance, inflate the method.
30786
30787 2003-10-28  Dick Porter  <dick@ximian.com>
30788
30789         * object.c (mono_runtime_run_main): Convert command-line arguments
30790         into utf8, falling back to the user's locale encoding to do so.
30791
30792 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
30793
30794         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
30795         at this time.
30796
30797         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
30798
30799         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
30800         up icalls at method definition time. Partially fixes #33569.
30801
30802 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
30803
30804         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
30805         marshalling of arrays. Fixes #50116.
30806
30807         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
30808
30809         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
30810         points to a vtable in the dying appdomain.
30811
30812         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
30813         listeners into unmanaged code inside the lock.
30814
30815         * object.c (mono_class_vtable): Turn off typed allocation in non-root
30816         domains and add some comments.
30817
30818 2003-10-25  Martin Baulig  <martin@ximian.com>
30819
30820         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
30821
30822         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
30823
30824         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
30825         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
30826         currently parsing.  Create the generic class and store it in
30827         `generic_inst->klass' before parsing the type arguments.  This is
30828         required to support "recursive" definitions; see mcs/tests/gen-23.cs
30829         for an example.
30830         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
30831         to support recursive typespec entries.
30832
30833         * class.c (mono_class_setup_parent): If our parent is a generic
30834         instance, we may get called before it has its name set.
30835         (mono_class_from_generic): Splitted into
30836         mono_class_create_from_generic() and mono_class_initialize_generic().
30837
30838 2003-10-25  Martin Baulig  <martin@ximian.com>
30839
30840         * icall.c (ves_icall_Type_BindGenericParameters): Return a
30841         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
30842         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
30843         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
30844
30845         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
30846         (create_typespec): Likewise.
30847         (mono_reflection_bind_generic_parameters): Return a
30848         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
30849         (mono_reflection_inflate_method_or_ctor): New public function.
30850
30851         * reflection.h (MonoReflectionGenericInst): New typedef.        
30852
30853 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
30854
30855         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
30856         inside the domain lock. Fixes #49993.
30857         
30858         * object.c (mono_class_vtable): When typed allocation is used, 
30859         allocate vtables in the GC heap instead of in the mempool, since the
30860         vtables contain GC descriptors which are used by the collector even
30861         after the domain owning the mempool is unloaded.
30862
30863         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
30864
30865         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
30866         reflect what it does. Also invalidate mempools instead of freeing
30867         them if a define is set.
30868
30869         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
30870         of the appdomain.
30871         
30872         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
30873         hold the finalizable objects in this domain.
30874
30875         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
30876         appdomain.
30877
30878         * appdomain.c (mono_domain_set): New function to set the current
30879         appdomain, but only if it is not being unloaded.
30880
30881         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
30882         appdomain which is being unloaded.
30883         
30884         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
30885         unloading of the root appdomain.
30886
30887         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
30888         icall to execute a method in another appdomain. Intended as a 
30889         replacement for InternalSetDomain, which can confuse the code 
30890         generation in the JIT.
30891
30892         * appdomain.c (mono_domain_is_unloading): New function to determine
30893         whenever an appdomain is unloading.
30894
30895         * appdomain.c (mono_domain_unload): New function to correctly unload
30896         an appdomain.
30897
30898         * assembly.c (mono_assembly_load_references): Check that an assembly
30899         does not references itself.
30900
30901         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
30902         domain manually, it asks the finalizer thread to do it, then waits for
30903         the result. Also added a timeout.
30904
30905         * icall.c: Register the new icalls.
30906
30907         * threads.h threads.c: Export the mono_gc_stop_world and 
30908         mono_gc_start_world functions.
30909         
30910         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
30911         function to fill out the mempool with 0x2a.
30912
30913 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
30914
30915         * reflection.h (MonoReflectionMethodAux): New structure to store
30916         information which is rarely used, thus is not in the MonoMethod
30917         structure.
30918
30919         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
30920         store the aux info.
30921
30922         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
30923         and marshalling info into the aux structure.
30924
30925         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
30926         from the aux structure.
30927
30928         * loader.c (mono_method_get_param_names): Retrieve the param names from
30929         the aux structure.
30930         
30931 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
30932
30933         * exception.h exception.c: Add AppDomainUnloadedException && fix 
30934         warning.
30935
30936 2003-10-21  Dick Porter  <dick@ximian.com>
30937
30938         * socket-io.c
30939         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
30940         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
30941
30942 2003-10-21  Martin Baulig  <martin@ximian.com>
30943
30944         * reflection.c (mono_reflection_bind_generic_parameters):
30945         `klass->parent' is NULL for interfaces.
30946
30947 2003-10-21  Martin Baulig  <martin@ximian.com>
30948
30949         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
30950
30951 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
30952
30953         * exception.c (mono_exception_from_name_msg): New helper function for
30954         creating exceptions and initializing their message field.
30955
30956         * exception.c: Simplify functions using the new helper.
30957
30958         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
30959         New function.
30960
30961         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
30962         mono_raise_exception, since otherwise gcc doesn't generate the function
30963         epilog for raise_exception, confusing the stack unwinding in the JIT.
30964         Fixes #45043.
30965
30966         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
30967         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
30968         Fixes #49499.
30969
30970 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
30971
30972         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
30973         utf8.
30974
30975 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
30976
30977         * icall.c: Removed GetUninitializedObject method because
30978           AllocateUninitializedClassInstance does the same.
30979
30980 2003-10-18  Martin Baulig  <martin@ximian.com>
30981
30982         * class.c (inflate_generic_signature): Renamed to
30983         mono_class_inflate_generic_signature() and made it public.
30984         (my_mono_class_from_generic_parameter): New static function; if we
30985         don't already have the generic parameter's MonoClass, create a
30986         very simple one which is just used internally in the runtime and
30987         not passed back to managed code.
30988
30989         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
30990
30991         * metadata.h (MonoMethodSignature): Moved the
30992         `MonoGenericParam *gen_params' to the MonoMethodHeader.
30993         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
30994
30995         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
30996         ves_icall_MonoMethod_GetGenericArguments(); this is now an
30997         interncall on the MonoMethod class, not on MethodInfo.
30998         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
30999         calling mono_reflection_bind_generic_method_parameters() directly.
31000
31001         * loader.c (mono_method_get_signature): If this is a MethodSpec;
31002         return the already computed `method->signature'.
31003         (method_from_methodspec): New static function to load a method
31004         from a MethodSpec entry.
31005         (mono_get_method_from_token): Call the new method_from_methodspec()
31006         for MethodSpec tokens.  
31007         (mono_get_method_from_token): If we're a generic method, load the
31008         type parameters.
31009
31010         * reflection.c (mono_image_get_memberref_token): Allow
31011         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
31012         table.
31013         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
31014         (mono_image_create_token): First check whether it's a generic
31015         method (so we'd need to create a MethodSpec), then do the other
31016         two alternatives.
31017         (mono_reflection_bind_generic_method_parameters): Return a
31018         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
31019         called directly from the interncall.
31020
31021 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
31022
31023         * reflection.c (load_public_key): Move loading of the public key
31024         into managed code.
31025
31026         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
31027
31028         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
31029         fields.
31030
31031         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
31032         culture, hash_alg and public_key. Fixes #49555.
31033
31034 2003-10-17  Martin Baulig  <martin@ximian.com>
31035
31036         * class.h (MonoGenericInst): Moved this declaration here and added
31037         `MonoMethod *generic_method'.
31038
31039         * icall.c
31040         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
31041         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
31042
31043         * metadata.c (mono_metadata_type_equal): Two types of
31044         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
31045         index; ie. don't compare the address of the `MonoGenericParam'
31046         structure.
31047         (mono_metadata_load_generic_params): Removed the `MonoMethod
31048         *method' argument.
31049
31050         * metadata.h (MonoGenericInst): Moved declaration to class.h.
31051         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
31052
31053         * reflection.c (method_encode_signature): Encode the number of
31054         generic parameters.
31055         (encode_generic_method_sig): New static function.
31056         (method_encode_methodspec): New static function; creates an entry
31057         in the MethodSpec table for a generic method.
31058         (mono_image_get_methodspec_token): New static function.
31059         (mono_image_create_token): Call mono_image_get_methodspec_token()
31060         for generic methods.
31061         (mono_reflection_bind_generic_method_parameters): New public
31062         function.  Instantiates a generic method.
31063
31064 2003-10-16  Martin Baulig  <martin@ximian.com>
31065
31066         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
31067         *gen_params' here from MonoMethodHeader.
31068
31069         * metadata.c (mono_metadata_parse_method_signature): If we have
31070         generic parameters, initialize `method->gen_params' and then set
31071         the correct `type->data.generic_param' in all the parameters.
31072
31073 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
31074
31075         * threads.c (mono_threads_get_default_stacksize): New function to 
31076         return the default stacksize.
31077
31078         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
31079         termination of the finalizer thread, since the previous method had
31080         race conditions. Fixes #49628.
31081
31082         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
31083         as for the other managed threads.
31084
31085 2003-10-16  Martin Baulig  <martin@ximian.com>
31086
31087         * class.c (inflate_generic_signature): Copy `generic_param_count'
31088         and `gen_params'.
31089
31090         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
31091         New interncall.
31092
31093         * metadata.c (mono_metadata_parse_method_signature): Actually set
31094         the `method->generic_param_count' here.
31095         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
31096
31097 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
31098
31099         * object.h: Add a new field to TypedRef to simplify the implementation
31100         of the REFANY opcodes in the JIT.
31101
31102         * icall.c: Make use of the new field.
31103
31104         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
31105         dynamically.
31106
31107 2003-10-15  Martin Baulig  <martin@ximian.com>
31108
31109         * class.c (mono_class_from_gen_param): Renamed to
31110         mono_class_from_generic_parameter() and moved most of the
31111         functionality from mono_reflection_define_generic_parameter()
31112         here; ie. we create a "real" class here.
31113         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
31114         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
31115         previously been called.
31116
31117         * class.h (MonoGenericParam): Moved the declaration of this struct
31118         here from metadata.h and added `MonoMethod *method'.
31119
31120         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
31121         interncall.
31122
31123         * loader.c (mono_get_method_from_token): If we have any generic
31124         parameters, call mono_metadata_load_generic_params() to read them
31125         from the MONO_TABLE_GENERICPAR.
31126
31127         * metadata.c (mono_metadata_load_generic_params): Added
31128         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
31129
31130         * metadata.h (MonoMethodSignature): Replaced
31131         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
31132         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
31133
31134         * reflection.c (mono_reflection_define_generic_parameter): Moved
31135         most of the functionality into the new
31136         mono_class_from_generic_parameter(); set the `method' field if
31137         we're a method parameter.       
31138
31139 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
31140
31141         * marshal.c (emit_struct_conv): if native size is 0
31142         emit no code.
31143
31144 2003-10-14  Martin Baulig  <martin@ximian.com>
31145
31146         * icall.c: The generics API has changed in the spec since it was
31147         added to System.Type; these modifications make it match the spec
31148         again.
31149         (ves_icall_Type_GetGenericParameters): Renamed to
31150         `ves_icall_Type_GetGenericArguments'.
31151         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
31152         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
31153         `ves_icall_MonoType_get_HasGenericArguments'.
31154         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
31155         `ves_icall_MonoType_get_IsGenericParameter'.
31156         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
31157         this is no interncall anymore.
31158         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
31159         `ves_icall_TypeBuilder_get_IsGenericParameter'.
31160
31161 2003-10-14  Martin Baulig  <martin@ximian.com>
31162
31163         * reflection.c (mono_reflection_bind_generic_parameters): Also
31164         inflate generic methods if we're reading the class from IL.
31165
31166 2003-10-13  Martin Baulig  <martin@ximian.com>
31167
31168         * reflection.c (mono_reflection_define_generic_parameter): This
31169         method isn't called directly from the icall anymore; take a
31170         `MonoReflectionAssemblyBuilder *' so we can use this for type and
31171         method generic parameters.
31172         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
31173         (method_builder_encode_signature): Encode generic parameters.
31174         (mono_image_get_method_info): Write generic params to the
31175         MONO_TABLE_GENERICPARAM table.
31176
31177         * reflection.h (MonoReflectionMethodBuilder): Added
31178         `MonoArray *generic_params'.
31179
31180         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
31181
31182         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
31183         wrapper for mono_reflection_define_generic_parameter().
31184         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
31185
31186 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
31187
31188         * marshal.h: Add missing function to fix build.
31189
31190         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
31191         the SetLastError pinvoke attribute.
31192
31193         * marshal.c (mono_marshal_set_last_error): New helper function called
31194         by the generated code.
31195         
31196         * marshal.c (mono_mb_emit_branch): New helper function.
31197
31198         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
31199
31200         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
31201         classes as parameters and return values of delegates. Fixes #29256. 
31202
31203 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
31204
31205         * locales.c: use gint32 in non HAVE_ICU case
31206
31207 2003-10-11  Martin Baulig  <martin@ximian.com>
31208
31209         * mono-debug.c (mono_debug_add_method): Added a workaround for
31210         bug #48591.
31211
31212 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
31213
31214         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
31215         delegates passed to native code must use the STDCALL calling 
31216         convention. Fixes #35987.
31217
31218 2003-10-10  Martin Baulig  <martin@ximian.com>
31219
31220         * class.c (inflate_generic_type): If we're inflating for a generic
31221         type instance (and not for a generic method), return
31222         MONO_TYPE_MVAR unchanged.
31223
31224 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31225
31226         * string-icalls.c: Join ignores null strings in the source array.
31227         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
31228         * threads.c: GetAvailableTheads is slightly more accurate.
31229
31230 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
31231
31232         * threads.h threads.c : add mono_threads_set_default_stacksize
31233         and pass default to CreateThread calls.
31234
31235 2003-10-09  Dick Porter  <dick@ximian.com>
31236
31237         * icall.c:
31238         * locales.h:
31239         * locales.c: Internal calls for constructing CultureInfo and
31240         related objects from libicu (if its available.)
31241
31242 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
31243
31244         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
31245
31246 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31247
31248         * threadpool.c: added an argument to async_invoke_thread that is the
31249         item to process, pass the MonoAsyncResult to the thread start function
31250         when creating a new thread. This way we don't need to acquire any lock
31251         when we're creating a new thread. Readded a semaphore for faster
31252         response times (instead of that Sleep i added).
31253
31254 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
31255
31256         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
31257         get daylight change dates better on Windows, fix handling
31258         of platforms without tm_gmtoff.
31259
31260 2003-10-06  Martin Baulig  <martin@ximian.com>
31261
31262         * class.c (inflate_generic_method): Renamed to
31263         mono_class_inflate_generic_method() and made public.
31264         (mono_class_init): Don't inflate the generic methods here.
31265         (mono_class_from_generic): Added `gboolean inflate_methods'
31266         argument.  Inflate the methods here.
31267
31268         * loader.c (mono_method_get_param_names): Ignore instances of
31269         generic types for the moment.
31270
31271         * reflection.c (fixup_method): Added support for inflated methods.
31272         (mono_image_create_token): Use mono_image_get_methodref_token()
31273         for inflated methods.
31274         (mono_custom_attrs_from_param): Ignore instances of generic types
31275         for the moment.
31276         (mono_reflection_bind_generic_parameters): New public function.
31277         Moved all the functionality from
31278         ves_icall_Type_BindGenericParameters() here and added support for
31279         dynamic types.
31280         (mono_reflection_define_generic_parameter): Initialize
31281         `klass->methods' here.
31282
31283         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
31284         functionality into mono_reflection_define_generic_parameter().
31285         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
31286         TypeBuilder, return that TypeBuilder.
31287
31288 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31289
31290         * appdomain.c: removed mono_delegate_semaphore.
31291
31292         * threadpool.c:
31293         (mono_thread_pool_add): moved hash table creation inside and the thread 
31294         creation outside of the critical region.
31295         (mono_thread_pool_finish): removed obsolete code.
31296         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
31297         continue or exit the thread depending on the queue.
31298
31299 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
31300
31301         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
31302         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
31303         handle more bool marshalling options
31304
31305 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
31306
31307         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
31308         arrays of structs. Also add a more descriptive error message when
31309         a structure member is marshalled as LPArray.
31310
31311 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
31312
31313         * marshal.c (mono_marshal_get_native_wrapper): Add support for
31314         marshalling arrays of complex types. Fixes #29098. Also remove an
31315         usused and incomplete function.
31316
31317 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
31318
31319         * gc.c: report heap_size - free_bytes as total memory allocated
31320         (bug#49362).
31321
31322 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
31323
31324         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
31325         fix timezone handling problems on Windows.
31326         
31327         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
31328         asserts when the year is outside the range handled by ms the functions.
31329
31330         * class.c (setup_interface_offsets): If the class is an interface,
31331         fill out its interface_offsets slot.
31332
31333 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31334
31335         * threadpool.c: mark threadpool threads as background.
31336
31337 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
31338
31339         * decimal.c - define DECINLINE to nothing if not using GCC
31340
31341 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
31342
31343         * assembly.c: More refcount fixes.
31344
31345 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31346
31347         * string-icalls.c: if we're not trimming, return the same string.
31348         When not splitting, don't create a new string.
31349
31350 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31351
31352         * image.c:
31353         (mono_image_open): increment the ref_count inside the critical section.
31354
31355 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
31356
31357         * image.c (mono_image_open): Fix reference counting bug.
31358
31359 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
31360
31361         * marshal.c (mono_marshal_type_size) struct alignment changed for 
31362         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
31363         64bits. Avoid leak in mono_marshal_get_native_wrapper when
31364         mono_lookup_pinvoke_call throws.        
31365
31366 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
31367
31368         * reflection.c (mono_reflection_parse_type): Fix #49114.
31369
31370         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
31371         temporary workaround for cygwin header problem.
31372
31373         * object.c (mono_object_isinst): Synchronize this with the code
31374         generated by the JIT for casts.
31375
31376 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
31377
31378         * reflection.c (encode_type): Fix #38332.
31379
31380 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
31381
31382         * marshal.c (mono_marshal_method_from_wrapper): New function to return
31383         the original method from the wrapper method.
31384
31385 2003-09-25  Martin Baulig  <martin@ximian.com>
31386
31387         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
31388         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
31389         (ves_icall_Type_get_IsGenericInstance): New interncall.
31390
31391 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
31392
31393         * object.c: fix cast warning in big endian code.
31394
31395 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
31396
31397         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
31398         
31399 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31400
31401         * assembly.c: don't call check_env from mono_assembly_load. It's
31402         already done once in mono_assemblies_init and may cause headaches when
31403         multiple threads are loading assemblies.
31404
31405 2003-09-19  Martin Baulig  <martin@ximian.com>
31406
31407         * reflection.c (mono_reflection_define_generic_parameter): Don't
31408         allocate `klass->methods', set `klass->flags' to
31409         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
31410
31411 2003-09-18  Martin Baulig  <martin@ximian.com>
31412
31413         * class.c (mono_class_init): Don't create `class->methods' if it's
31414         already initialized.
31415
31416         * metadata.c (mono_metadata_load_generic_params): Make this
31417         actually work.
31418
31419         * reflection.c (mono_reflection_define_generic_parameter): Set
31420         parent class and interfaces from the constraints.
31421
31422         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
31423         to keep this struct in sync with the declaration in TypeBuilder.cs.
31424
31425 2003-09-17  Martin Baulig  <martin@ximian.com>
31426
31427         * metadata.h (MonoType): Replaced the data's `int type_param'
31428         field with `MonoGenericParam *generic_param'.
31429         (MonoGenericParam): Added `MonoClass *klass'.
31430
31431         * class.c (mono_class_from_gen_param): Removed the
31432         `MonoImage *image' and `int type_num' arguments.
31433
31434         * metadata.c (mono_metadata_parse_generic_param): New static
31435         method; creates a MonoGenericParam which just contains the index.
31436         (do_mono_metadata_parse_type): Call
31437         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
31438         MONO_TYPE_MVAR.
31439
31440         * reflection.c (mono_image_typedef_or_ref): Generic type
31441         parameters may be in the same assembly, but never use a typedef
31442         for them.
31443         (mono_reflection_define_generic_parameter): We're now creating a
31444         "real" class for the type parameter; it's now safe to call
31445         mono_class_from_mono_type() on the class'es type, it'll do the
31446         right thing.
31447
31448 2003-09-16  Martin Baulig  <martin@ximian.com>
31449
31450         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
31451         `symfile->range_entry_size' and `symfile->class_entry_size' here;
31452         the `symfile' data structure must be fully initialized before it
31453         gets added to the table.
31454
31455 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
31456
31457         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
31458
31459         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
31460         class init trampolines.
31461
31462 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
31463
31464         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
31465         to the built-in profiler to turn off time and allocation profiling
31466         respectively.
31467
31468 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
31469
31470         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
31471         g_direct_equal.
31472
31473         * debug-helpers.c (mono_method_full_name): Print the wrapper type
31474         in human readable form.
31475
31476 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
31477
31478         * reflection.c icall.c: Fixed warnings.
31479
31480         * image.c (load_class_names): Use a temporary hash table to hold the
31481         namespaces in order to avoid doing many string comparisons.
31482
31483         * image.h: Fix typo.
31484
31485         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
31486         Pass NULL instead of g_direct_equal to the GHashTable constructor 
31487         since the NULL case is short-circuited inside g_hash_table_lookup, 
31488         leading to better performance.  
31489
31490         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
31491         obtain the first custom attribute for a given index. Depends on the
31492         CustomAttribute table being sorted by the parent field.
31493
31494         * reflection.c (mono_custom_attrs_from_index): Use the new function 
31495         for better performance.
31496
31497 2003-09-07  Martin Baulig  <martin@ximian.com>
31498
31499         * class.c (mono_class_init): If we're a generic instance, inflate
31500         all our methods instead of loading them from the image.
31501         (mono_class_from_generic): Set `class->methods = gklass->methods'.
31502
31503 2003-09-07  Martin Baulig  <martin@ximian.com>
31504
31505         * mono-debug-debugger.c: Added support for constructors.
31506
31507 2003-09-06  Martin Baulig  <martin@ximian.com>
31508
31509         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
31510         New interncall.
31511
31512         * reflection.c (mono_reflection_setup_generic_class): Call
31513         ensure_runtime_vtable() to create the vtable.
31514
31515 2003-09-05  Martin Baulig  <martin@ximian.com>
31516
31517         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
31518         MONO_TYPE_MVAR.
31519
31520 2003-09-04  Martin Baulig  <martin@ximian.com>
31521
31522         * reflection.c (mono_reflection_define_generic_parameter): Generic
31523         parameters start with zero.
31524
31525 2003-09-04  Martin Baulig  <martin@ximian.com>
31526
31527         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
31528
31529         * reflection.h (MonoReflectionGenericParam): New typedef.
31530         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
31531         the generic parameters from the managed TypeBuilder.
31532
31533         * reflection.c (mono_reflection_define_generic_parameter): New function.
31534         (mono_reflection_create_runtime_class): Encode generic parameters.
31535         (mono_reflection_setup_generic_class): New function; this is
31536         called after adding adding all generic params to the TypeBuilder.
31537         (encode_type): Added MONO_TYPE_VAR.
31538
31539 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
31540
31541         * class.h class.c (mono_class_needs_cctor_run): Moved this method
31542         here from the JIT.
31543
31544         * assembly.h assembly.c: Moved the AOT loading code into an assembly
31545         load hook.
31546
31547 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
31548
31549         * reflection.h reflection.c class.h class.c: Delete duplicate 
31550         definition of mono_type_get_name () from reflection.c and export the
31551         one in class.c.
31552
31553         * class.c: Class loading fixes from Bernie Solomon 
31554         (bernard@ugsolutions.com).
31555
31556         * reflection.c: Endianness fixes from Bernie Solomon 
31557         (bernard@ugsolutions.com).
31558         
31559 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
31560
31561         * assembly.h assembly.c: Define a file format version for AOT
31562         libraries.
31563         
31564         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
31565
31566         * appdomain.h (MonoJitInfo): New field to determine whenever the
31567         code is domain neutral.
31568         
31569 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
31570
31571         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
31572
31573 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
31574
31575         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
31576         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
31577         Avoid caching the result since strings must be domain specific. Fixes
31578         #48050.
31579
31580 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
31581
31582         * marshal.c (mono_marshal_init): Make this callable multiple times
31583         since it is hard to find a correct place to call it.
31584
31585         * object.c (mono_runtime_class_init): Execute static constructors in
31586         the correct appdomain.
31587
31588         * image.c (build_guid_table): Handle the case when multiple images have
31589         the same GUID.
31590
31591 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31592
31593         * icall.c: added a couple of icalls for System.Web.
31594
31595 2003-08-28  Martin Baulig  <martin@ximian.com>
31596
31597         * icall.c (ves_icall_Type_BindGenericParameters): Use
31598         `klass->generic_inst' instead of `&klass->byval_arg' in the
31599         mono_type_get_object() call.  The returned type must be
31600         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
31601
31602 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
31603
31604         * NOTES: New file.
31605
31606         * object.c (mono_class_proxy_vtable): Make it thread safe.
31607
31608         * pedump.c: Fix warning.
31609
31610         * object.c appdomain.h: Get rid of metadata_section. 
31611         It is no longer needed and it was causing deadlocks with domain->lock.
31612
31613         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
31614
31615 2003-08-26  Martin Baulig  <martin@ximian.com>
31616
31617         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
31618
31619 2003-08-26  Martin Baulig  <martin@ximian.com>
31620
31621         * pedump.c (main): Call mono_metadata_init(),
31622         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
31623         and mono_loader_init().
31624
31625 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
31626
31627         * loader.h: Add missing include to fix build.
31628
31629         * image.h: mono_image_load_references is no more.
31630
31631         * assembly.c: Reworked assembly loading to make it really thread safe.
31632         After these changes, the assembly returned by mono_assembly_open is
31633         fully initialized, i.e. all its references assemblies are loaded.
31634
31635         * assembly.c (mono_image_load_references): Renamed to 
31636         mono_assembly_load_references, and made private, since clients no
31637         longer need to call it.
31638
31639         * class.c: Removed calls to mono_assembly_load_references, since it was
31640         a source of deadlocks.
31641
31642         * loader.h loader.c class.h class.c: Protect data structures using a 
31643         new lock, the loader lock.
31644
31645         * class.c (mono_class_setup_vtable): Create temporary hash tables and
31646         GPtrArrays only when needed.
31647
31648         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
31649         into empty structures by mcs. Fixes pinvoke7.cs.
31650         
31651         * domain.c (mono_init): Call a new initialization function.
31652
31653         * appdomain.c (mono_runtime_init): Call the new initializer function
31654         of the marshal module.
31655
31656         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
31657         inserted into empty structures by mcs. Fixes pinvoke7.cs.
31658
31659         * marshal.h marshal.c: Added locks around the wrapper caches to make
31660         this module thread safe.
31661
31662         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
31663         this argument. Fixes pinvoke1.exe.
31664
31665 2003-08-25  Lluis Sanchez <lluis@ximian.com>
31666
31667         * object.h: Added call_type field to MonoMethodMessage and the corresponding
31668         enumeration of values. Removed fields to store remote call output values in
31669         MonoAsyncResult. Not needed any more.
31670         * object.c: Initialize call_type and async_result fields in mono_message_init.
31671         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
31672         dispatching the message.
31673         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
31674         async call to finish. To do it use a message with EndInvoke call type.
31675
31676 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
31677
31678         * loader.h loader.c (mono_method_hash_marhal_info): New function which
31679         determines whenever a method has marshalling info.
31680
31681 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31682
31683         * assembly.c: fix the build on windows.
31684
31685 2003-08-22 Lluis Sanchez <lluis@ximian.com>
31686
31687         * object.cs: Fixed bug #47785.
31688
31689 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
31690
31691         * string-icalls.c (StringReplace): If their are no occurances of
31692         the old string found return a reference to the supplied
31693         string. This saves some memory and matches MS behavoir.
31694         
31695 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31696
31697         * socket-io.c: fixed compilation for systems that define AF_INET6
31698         and don't define SOL_IP/SOL_IPV6.
31699
31700 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
31701
31702         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
31703         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
31704
31705         * rawbuffer.c rawbuffer.h: Make this module thread safe.
31706
31707         * domain.c: Make this module thread safe.
31708
31709         * domain.c (mono_init): Call new initialization function.
31710
31711         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
31712         reference types too. Fixes #38812.
31713
31714         * image.c (mono_image_init): Fixed warnings.
31715
31716         * class.c (mono_class_from_typeref): Handle assembly load failure
31717         correctly.
31718
31719         * appdomain.c (add_assemblies_to_domain): Handle the case when
31720         the references of an assembly are not yet loaded.
31721
31722         * metadata.c image.c assembly.c: Moved initialization of global
31723         variables to a separate function called at startup since lazy 
31724         initialization of these variables is not thread safe.
31725         
31726         * image.c assembly.c: Made this module thread safe by adding locks in 
31727         the appropriate places.
31728
31729         * domain.c (mono_init): Call the new initialization functions of the
31730         three modules.
31731
31732 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
31733
31734         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
31735           make a direct call. It is proxy's work to make the call asynchronous.
31736           mono_delegate_end_invoke(): If the targe is a proxy, just collect
31737           the return values.
31738         * object.cs: mono_method_call_message_new(): read AsyncResult and
31739           state object from parameters list, if this info is requested.
31740         * object.h: Added fields to store remote call output values in
31741           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
31742
31743 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
31744
31745         * object.h: add needed fields to MonoThread.
31746         * threads.c, threads.h: allow registering a function to cleanup data
31747         allocated per thread by the JIT.
31748
31749 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
31750
31751         * loader.h: portability fix by Bernie Solomon
31752         * <bernard@ugsolutions.com>.
31753
31754 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
31755
31756         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
31757         return a MonoArray. This simplifies the code and also ensures that
31758         the cache allways contains an object reference as a value.
31759
31760         * icall.c (ves_icall_get_parameter_info): Simplified using the new
31761         function.
31762
31763 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31764
31765         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
31766         fixes a problem with byte ordering when getting the address family for
31767         a socket.
31768
31769 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
31770
31771         * .cvsignore: Added monosn.
31772
31773         * reflection.h reflection.c loader.c: Added support for parameter
31774         marshalling to dynamically created types. Fixes #47295.
31775
31776 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
31777
31778         * rand.c: remove useless warnings.
31779
31780 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
31781
31782         * class.c: implemented ldtoken for methods and fieldrefs.
31783
31784 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31785
31786         * threadpool.c: when mono_async_invoke was called, no one took care of
31787         monitoring the queue. So if the method invoked took some time and we
31788         got new async invoke requests after 500 ms (the thread created waited
31789         that long in WaitForSingleObject), the new async invoke was not called
31790         until the previous one finished.
31791
31792         This is fixed now. Thanks to Totte for helping with it.
31793
31794 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31795
31796         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
31797
31798 2003-08-11  Martin Baulig  <martin@ximian.com>
31799
31800         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
31801
31802 2003-08-06  Martin Baulig  <martin@ximian.com>
31803
31804         * mono-debug-debugger.c: Added support for static fields,
31805         properties and methods.
31806
31807 2003-08-06  Martin Baulig  <martin@ximian.com>
31808
31809         * mono-debug-debugger.c: Don't store the MonoString's vtable to
31810         make this work for applications with multiple application domains.
31811
31812 2003-08-04  Martin Baulig  <martin@ximian.com>
31813
31814         * mono-debug-debugger.c: Completely reworked the type support; the
31815         most important thing is that we're now just using one single
31816         `MonoType' instance per type.
31817
31818 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
31819
31820         * mono-endian.h, mono-endian.c, icall.c: Added icall
31821         ves_icall_System_Double_AssertEndianity to assert double word endianity
31822         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
31823
31824 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
31825
31826         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
31827         support, icalls and fixes.
31828
31829 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
31830
31831         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
31832         classes that are a punctuation character in .NET is not the same a
31833         g_unichar_ispunct.
31834
31835 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
31836
31837         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
31838
31839 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
31840
31841         * icall.c: Add new MemCopy internalcall.
31842         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
31843         Simplified code; It is not necessary to handle all the cases here,
31844         as the C# code takes care of it.  Only handle the case of the name
31845         resource embedded into the assembly.
31846
31847         Changed signature to return the data pointer and the size of the
31848         data. 
31849
31850 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
31851
31852         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
31853         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
31854
31855 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
31856
31857         * socket-io.c: ignore EINTR error in select.
31858
31859 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
31860
31861         * class.h, class.c: removed unused subclasses field in MonoClass.
31862
31863 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
31864
31865         * icall.c: improve fix of get_base_definition(). If the parent class
31866           doesn't have the mehod, look at the parent of the parent.
31867         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
31868           to check if a parameter is an in or out parameter
31869           (PARAM_ATTRIBUTE_IN is not set by default).
31870           mono_method_return_message_restore(): Use mono_class_value_size to
31871           get the size of a value type. mono_type_stack_size (parameterType)
31872           does not return the correct value if parameterType is byRef.
31873           mono_load_remote_field(), mono_load_remote_field_new(),
31874           mono_store_remote_field(), mono_store_remote_field_new():
31875           raise exception if the remote call returns an exception.
31876
31877 2003-07-28  Martin Baulig  <martin@ximian.com>
31878
31879         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
31880         method.  This is a wrapper around mono_runtime_invoke() which
31881         boxes the instance object if neccessary.
31882
31883 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
31884
31885         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
31886         metadata.h, row-indexes.h, verify.c: first cut of generics support.
31887
31888 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
31889
31890         * icall.c: disable mcs bug workaround.
31891
31892 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
31893
31894         * object.c (mono_runtime_class_init): Take the metadata_section
31895         mutex before obtaining the domain mutex.
31896
31897         * appdomain.h: Added definition of metadata_section mutex here. 
31898
31899         * object.c: define metadata_mutex here.
31900
31901 2003-07-24  Ravi Pratap  <ravi@ximian.com>
31902
31903         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
31904         fixed.
31905
31906 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
31907
31908         * reflection.c: Fix bug #46669
31909
31910 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
31911
31912         * exception.c:
31913         * exception.h:
31914         * icall.c:
31915         * object.h: fill in the type name for TypeLoadException.
31916
31917 2003-07-23  Ravi Pratap  <ravi@ximian.com>
31918
31919         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
31920         relationship between TypeBuilders while compiling corlib) and bug
31921         45993 (Array types returned from the runtime while compiling
31922         corlib were from the loaded corlib).
31923
31924 2003-07-22  Martin Baulig  <martin@ximian.com>
31925
31926         * mono-debug-debugger.c: Reworked the type support a bit more;
31927         distinguish between types and classes.
31928
31929 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
31930
31931         * icall.c: add IsArrayImpl icall.
31932
31933 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
31934
31935         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
31936         initializing real_size only once. Also fix bug #46602.
31937
31938 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
31939
31940         * object.c: Renamed mono_metadata_section to metadata_section.
31941
31942 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
31943
31944         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
31945           empty array if the type is an array. Fixed.
31946           ves_icall_MonoMethod_get_base_definition: if the base method
31947           is abstract, get the MethodInfo from the list of methods of
31948           the class.
31949         * reflection.c: ParameterInfo.PositionImpl should be zero-based
31950           and it was 1-based. Fixed in mono_param_get_objects.
31951
31952 2003-07-20  Martin Baulig  <martin@ximian.com>
31953
31954         * mono-debug.h: Set version number to 31.
31955         (mono_debug_init): Added `MonoDomain *' argument.
31956
31957         * mono-debug-debugger.c: Reworked the type support; explicitly
31958         tell the debugger about builtin types; pass the `klass' address to
31959         the debugger.
31960
31961 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
31962
31963         * image.c: Allow new metadata tables to be loaded without a
31964         warning. Also update the warning message to give the new constant value.
31965                 
31966 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
31967
31968         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
31969         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
31970         array type representation changes.
31971
31972 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
31973
31974         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
31975         on Environment.Exit () call.
31976
31977 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
31978
31979         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
31980         requires a matching corlib.
31981
31982 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
31983
31984         * Changelog: My editor decided to add a CR to each line. Sorry about that.
31985           Committed again without the CRs.
31986         
31987 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
31988
31989         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
31990           getting it from the "this" socket instance. Did not work
31991           if the socket is a subclass of Socket.
31992           Also fixed bug #35371.
31993
31994 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
31995
31996         * metadata.c: fixed size for TypedByRef.
31997         * loader.c: when searching for a method, consider the vararg amrker.
31998         * unicode.c, decimal.c: constify some arrays.
31999
32000 2003-07-15  Dick Porter  <dick@ximian.com>
32001
32002         * socket-io.c: Fixed compilation for gcc < 3.2.
32003
32004         Fixed compilation for machines that don't have AF_INET6 (thanks to
32005         Bernie Solomon <bernard@ugsolutions.com> for that part.)
32006
32007         Fixed compile warnings.
32008         
32009         Fixed formatting and line endings.
32010
32011 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
32012
32013         * socket-io.h:
32014         * socket-io.c: Added IPv6 support.
32015
32016 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
32017
32018         * class.c (mono_class_is_assignable_from): New function to implement
32019         the is_assignable_from logic. Used by mono_object_isinst, 
32020         Type::IsAssignableFrom () and the interpreter.
32021
32022         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
32023         Object, even interfaces.
32024         
32025         * object.c (mono_object_isinst): Implement in terms of 
32026         is_assignable_from.
32027
32028         * icall.c (ves_icall_type_is_assignable_from): New icall.
32029
32030 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
32031
32032         * domain.c (foreach_domain): fix compiler warning.
32033
32034 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
32035
32036         * image.c (load_metadata_ptrs): use g_strndup because strndup is
32037         not available on all plattforms
32038
32039 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
32040
32041         * image.h image.c: Store the metadata version string in MonoImage.
32042         * icall.c: New icall to retrieve the image version.
32043         * reflection.c (create_dynamic_image): Fill in the image version field
32044         * reflection.c (build_compressed_metadata): Use the image version
32045         from the image structure.
32046
32047 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32048
32049         * appdomain.c: modified comment.
32050         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
32051         That will be its last iteration when mono_gc_cleanup is called from
32052         mono_runtime_cleanup and before the domain is unloaded.
32053
32054         Fixes bug #45962.
32055
32056 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
32057
32058         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
32059         attributes.
32060
32061 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
32062
32063         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
32064         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
32065         Bernie Solomon <bernard@ugsolutions.com>.
32066
32067 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
32068
32069         * object.c, object.h: provide mono_object_new_fast() for faster
32070         allocation in some special cases.
32071
32072 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
32073
32074         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
32075         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
32076
32077 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
32078
32079         * threadpool.c: fix leaks.
32080
32081 2003-07-01  Dick Porter  <dick@ximian.com>
32082
32083         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
32084         using MonoGHashTables.  Fixes threadpool bug posted to list.
32085
32086 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
32087
32088         * image.h, image.c: added support to load an assembly from a byte array.
32089         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
32090         assembly bundle support.
32091
32092 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
32093
32094         * threadpool.c (mono_thread_pool_add): keep a reference to the
32095         AsyncResult to prevent GC
32096
32097 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
32098
32099         * class.c: leak fix.
32100
32101 2003-06-25  Dick Porter  <dick@ximian.com>
32102
32103         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
32104         for the async object, the WaitHandle object will close the handle.
32105         Fixes bug 45321.
32106
32107 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
32108
32109         * class.c: in mono_array_class_get (), lookup from the hash with the
32110         same type we insert: this works around a bug in
32111         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
32112         lluis. The real fix will have to wait for after the release.
32113
32114 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
32115
32116         * icall.c: fix memory leak when getting type members.
32117
32118 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
32119
32120         * reflection.c: added more pubtoken special cases.
32121
32122 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
32123
32124         * class.c: handle field offset correctly when class size
32125         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
32126
32127 2003-06-20  Martin Baulig  <martin@ximian.com>
32128
32129         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
32130         *image' field.
32131
32132 2003-06-20  Martin Baulig  <martin@ximian.com>
32133
32134         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
32135
32136 2003-06-20  Martin Baulig  <martin@ximian.com>
32137
32138         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
32139         just distinguish between variables in registers and variables at
32140         an offset relative to a register.
32141
32142 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32143
32144         * icall.c: #ifdef out latest changes until mcs is fixed.
32145
32146 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
32147
32148         * icall.c: return members in metadata order.
32149
32150 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
32151
32152         * icall.c: avoid infinite loop in GetTimeZoneData.
32153
32154 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
32155
32156         * icall.c: added Marshal.Prelink/All icalls.
32157
32158 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
32159
32160         * object.c, object.h: fix warnings and do some overflow checking
32161         when creating arrays.
32162
32163 2003-06-17  Dick Porter  <dick@ximian.com>
32164
32165         * file-io.h:
32166         * file-io.c: File attributes need to be tweaked slightly when
32167         passed from the managed to the w32 world.
32168
32169 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
32170         * profiler.h profiler-private.h profiler.c: Rework last patch
32171         based on suggestion by Paolo.
32172         
32173 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
32174
32175         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
32176         instruction level coverage data collection.
32177         * profiler.h profiler.c (: Added new callback function which can be
32178         used by the profiler to limit which functions should have coverage
32179         instrumentation.
32180         * profiler.c (mono_profiler_load): Call g_module_build_path to
32181         generate the file name of the profiler library.
32182
32183 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
32184
32185         * profiler.c, profiler.h, profiler-private.h: added basic block 
32186         coverage profiling API.
32187
32188 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
32189
32190         * reflection.c (mono_reflection_create_runtime_class): Add support
32191         for events in dynamically generated code.
32192
32193         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
32194         not allocated.
32195
32196 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
32197
32198         * icall.c: when getting timezone info, return reasonable values if we
32199         can't get the actual data.
32200
32201 2003-06-14  Dick Porter  <dick@ximian.com>
32202
32203         * threads.c (start_wrapper): Remove the reference to the thread
32204         object in the TLS data, so the thread object can be finalized.
32205         This won't be reached if the thread threw an uncaught exception,
32206         so those thread handles will stay referenced :-( (This is due to
32207         missing support for scanning thread-specific data in the Boehm GC
32208         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
32209
32210 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
32211
32212         * reflection.c: ensure streams and tables are first allocated with
32213         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
32214
32215 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
32216
32217         * icall.c: fixed GetElementType for byrefs (bug# 44792).
32218
32219 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
32220
32221         * reflection.c (mono_reflection_create_runtime_class): Add support for
32222         properties to dynamically created classes.
32223         * reflection.c: Fix a few places where non-MonoObjects were inserted
32224         into the tokens hashtable.
32225
32226 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
32227
32228         * object.c: some support to handle out of memory exceptions.
32229
32230 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
32231
32232         * marshal.c (mono_marshal_get_native_wrapper): support reference
32233         return types
32234
32235 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
32236
32237         * object.h, object.c: more portability stuff from Bernie Solomon.
32238         Unexport mono_object_allocate(). Added mono_object_unbox ().
32239         Set exitcode when an unhandled exception is thrown.
32240
32241 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
32242
32243         * marshal.c (mono_marshal_get_native_wrapper): use custom
32244         marshaler for return types.
32245
32246 2003-06-10  Dick Porter  <dick@ximian.com>
32247
32248         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
32249         ip_mreq is available
32250
32251 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
32252
32253         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
32254         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
32255         by Bernie Solomon <bernard@ugsolutions.com>.
32256
32257 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
32258
32259         * gc.c (mono_gc_init): Avoid error message on shutdown when
32260         GC_DONT_GC=1 is used.
32261
32262         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
32263         New icall to return the GUID of a module.
32264
32265 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
32266
32267         * class.c: ensure instance size always includes the parent's size
32268         even whem class size is set explicitly (fixes bug#44294).
32269
32270 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
32271
32272         * profiler.h, profiler.c: made the simple profiler thread-safe,
32273         get more accurate timing info. Allow the loading of an
32274         externally-developed profiler module.
32275
32276 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
32277
32278         * marshal.c (mono_marshal_get_native_wrapper): improved
32279         class/byref arguments.
32280         (mono_marshal_get_native_wrapper): better string marshaling support.
32281
32282 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
32283
32284         * class.c: ensure .pack and .size are handled correctly and
32285         simplified layout of static fields.
32286
32287 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
32288
32289         * appdomain.c
32290         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
32291
32292         * loader.c (mono_lookup_pinvoke_call): look for modules in the
32293         current directory (fix bug 44008)
32294
32295 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
32296
32297         * marshal.c (mono_marshal_get_native_wrapper): started support for
32298         custom marshalers.
32299         (mono_delegate_to_ftnptr): consider marshalling specifications
32300
32301 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
32302
32303         * reflection.c, reflection.h: emit custom marshal info.
32304
32305 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32306
32307         * object.c: free the GError.
32308         * icall.c: added CloseEvent_internal.
32309         * threads.[ch]:
32310         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
32311         call.
32312
32313 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
32314
32315         * loader.c (mono_method_get_signature): Add support for dynamic
32316         assemblies.
32317
32318 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
32319
32320         * reflection.c: fixed bug #43905.
32321
32322 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
32323
32324         * class.c, domain.c, icall.c, metadata.h, object.h: support for
32325         handling TypedReference and ArgIterator.
32326         * loader.c, loader.h: added function to get signature at call site.
32327
32328 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
32329
32330         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
32331         data readonly. Buglets and warning fixes. Some MethodSpec support.
32332
32333 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
32334
32335         * class.h, class.c, object.c: remove relative numbering support.
32336
32337 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
32338
32339         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
32340         free the string, until we get a chance to fix Gtk#
32341
32342 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32343
32344         * marshal.c: revert last patch.
32345
32346 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
32347
32348         * icall.c: updates for new mono_class_vtable() not calling
32349         the type constructor anymore.
32350
32351 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
32352
32353         * object.h, object.c: separate vtable creation from type
32354         initialization. Make running the .cctor thread safe.
32355
32356 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
32357
32358         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
32359
32360 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
32361
32362         * loader.c (mono_get_method): consider calling convention
32363
32364 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
32365
32366         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
32367         to return the invisible global type for a module.
32368
32369         * reflection.c (mono_image_build_metadata): Emit global fields too.
32370
32371 2003-05-20  Peter Williams  <peterw@ximian.com>
32372
32373         * loader.c (mono_lookup_internal_call): Add a few newlines.
32374
32375 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
32376
32377         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
32378         literal strings.
32379
32380         * appdomain.c (set_domain_search_path): Recalculate search path when
32381         AppDomainSetup.PrivateBinPath changes.
32382
32383         * object.c (mono_class_compute_gc_descriptor): It turns out some
32384         parts of the class libs (like System.Thread) holds pointers to
32385         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
32386         to treat native int a pointer type here.
32387         
32388 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
32389
32390         * appdomain.h, domain.c: add hashtable for jump target resolution.
32391
32392 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
32393
32394         * reflection.h reflection.c icall.c: Added new icalls 
32395         GetManifestResourceInfoInternal, GetModulesInternal and support
32396         infrastructure.
32397
32398 2003-05-16  Dick Porter  <dick@ximian.com>
32399
32400         * icall.c:
32401         * file-io.h:
32402         * file-io.c: Implement System.IO.MonoIO::GetTempPath
32403
32404 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
32405
32406         * object.c: mono_store_remote_field: little fix to previous patch.
32407
32408 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
32409
32410         * class.c: add constructors to array classes.
32411         * icall.c: special case array construction for InternalInvoke (),
32412
32413 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
32414
32415         * class.h class.c reflection.c object.c: Added support for field
32416         defaults in dynamically generated classes.
32417
32418 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
32419
32420         * reflection.c: properly encode charset for ddlimport.
32421
32422 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
32423
32424         * threads.c: allow compiling without GC.
32425
32426 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
32427
32428         * appdomain.h, object.c, object.h, threads.c, threads.h: added
32429         handling of thread static data.
32430
32431 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
32432
32433         * reflection.h, reflection.c: added mono_custom_attrs_free ().
32434
32435 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
32436
32437         * class.c (mono_array_class_get): always set the serializable flags
32438         (mono_array_class_get): always set the SEALED attribute for array types
32439
32440 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
32441
32442         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
32443         attributes (fix for bug 42021).
32444
32445 2003-05-12  Dick Porter  <dick@ximian.com>
32446
32447         * gc.c: Don't run finalizers when the finalizer thread is
32448         finishing up, because the default domain has already been
32449         destroyed.
32450
32451 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
32452
32453         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
32454         value is null, we should throw an exception.   This is slightly
32455         different than the other conventions used for the constructor.
32456
32457 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32458
32459         * socket-io.c: fixed windows build.
32460
32461 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32462
32463         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
32464
32465 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
32466
32467         * object.c (mono_string_new_wrapper): Compatibility fix for MS
32468         compilers.
32469
32470 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
32471
32472         * class.c (mono_class_layout_fields): Add experimental GC aware
32473         auto layout facility. Requires class library changes to work correctly.
32474
32475         (mono_class_setup_vtable): Avoid overriding explicit interface
32476         method implementations. Fixes iface3.exe test.
32477
32478         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
32479         object reference.
32480         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
32481         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
32482
32483         * metadata.h: Add new type classification macro which determines
32484         whenever the type holds an object reference.
32485
32486 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
32487
32488         * marshal.c (mono_marshal_get_native_wrapper): cleanups
32489
32490 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
32491
32492         * gc.c (finalizer_thread): Work around a GC bug.
32493
32494 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
32495
32496         * marshal.c (emit_struct_conv): allow unions
32497
32498         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
32499
32500 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
32501
32502         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
32503
32504 2003-05-06  Martin Baulig  <martin@ximian.com>
32505
32506         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
32507
32508 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32509
32510         * socket-io.c:
32511         (Select_internal): allow NULLs, don't create arrays if not needed.
32512         Coupled with Socket.cs changes.
32513
32514         * threadpool.c:
32515         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
32516         register a finalizer for it that will close the semaphore handle. This
32517         fixes the leak and make Lupus' test run with > 4080 loops.
32518
32519 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
32520
32521         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
32522         Jerome Laban (bug #42287)
32523
32524 2003-05-02  Martin Baulig  <martin@ximian.com>
32525
32526         * debug-mono-symfile.h
32527         (MonoSymbolFile): Moved declaration into mono-debug.h.
32528         (MonoDebugMethodJitInfo): Likewise.
32529         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
32530         argument.
32531         (_mono_debug_address_from_il_offset): Take a
32532         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
32533
32534         * mono-debug.h
32535         (MonoDebugDomainData): New struct.
32536         (mono_debug_get_domain_data): New function.
32537         (mono_debug_add_method): Take an additional `MonoDomain *'
32538         argument.
32539         (mono_debug_source_location_from_address): Likewise.
32540         (mono_debug_il_offset_from_address): Likewise.
32541         (mono_debug_address_from_il_offset): Likewise.
32542
32543 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
32544
32545         * reflection.c: one more check for null type in custom attrs.
32546
32547 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32548
32549         * reflection.c: avoid warning (comparison is always false due to limited
32550         range of data type).
32551
32552 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32553
32554         * icall.c: throw an exception in Type.GetField if the argument 'name'
32555         is NULL.
32556
32557 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
32558
32559         * reflection.c: fixed handling of enums in named arguments to custom
32560         attributes (bug #42123).
32561
32562 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
32563
32564         * reflection.c: use the right array element type and handle
32565         a null for a Type argument, too.
32566
32567 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
32568
32569         * reflection.c: handle arrays as arguments to custom attributes.
32570
32571 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
32572
32573         * reflection.c: handle a string value in a custom attr
32574         ctor that takes an object.
32575
32576 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
32577
32578         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
32579         (fix bug #42063)
32580
32581 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
32582
32583         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
32584
32585 2003-04-27  Martin Baulig  <martin@ximian.com>
32586
32587         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
32588         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
32589         MONO_DEBUGGER_EVENT_BREAKPOINT.
32590         (mono_breakpoint_trampoline_code): Removed.
32591         (mono_debugger_event_handler): The last argument is now a
32592         `guint32'.
32593         (mono_debugger_insert_breakpoint_full): Removed the
32594         `use_trampoline' argument.
32595         (mono_debugger_method_has_breakpoint): Likewise.
32596         (mono_debugger_trampoline_breakpoint_callback): Renamed to
32597         mono_debugger_breakpoint_callback(); take the method and
32598         breakpoint number as arguments.
32599
32600 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
32601
32602         * metadata.c: fix off by one when loading parameters attributes.
32603
32604 2003-04-24  Martin Baulig  <martin@ximian.com>
32605
32606         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
32607
32608 2003-04-24  Martin Baulig  <martin@ximian.com>
32609
32610         * mono-debug-debugger.c: Moved all code which interacts with the
32611         Mono Debugger here.
32612
32613         * debug-mono-symfile.c: This code now just deals with the symbol
32614         file itself, the debugger code is now in mono-debug-debugger.c.
32615
32616 2003-04-23  Martin Baulig  <martin@ximian.com>
32617
32618         * mono-debug.c (mono_debug_source_location_from_il_offset):
32619         New method; like mono_debug_source_location_from_address(), but
32620         takes an IL offset instead of a machine address.
32621
32622 2003-04-23  Martin Baulig  <martin@ximian.com>
32623
32624         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
32625         `line' field; this is now computed by the debugger.
32626
32627 2003-04-23  Martin Baulig  <martin@ximian.com>
32628
32629         * mono-debug.[ch]: New files.  This is the new debugging interface.
32630
32631         * mono-debug-debugger.[ch]: New files.  Moved all code which
32632         interacts with the Mono Debugger here.
32633
32634 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
32635
32636         * domain.c (mono_init): initialize mono_defaults.monitor_class
32637
32638 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
32639
32640         * reflection.c (method_encode_code): Add a spicy exception to help
32641         future compiler authors.
32642
32643 2003-04-21  Martin Baulig  <martin@ximian.com>
32644
32645         * icall.c
32646         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
32647         Make this work with relative pathnames; g_filename_to_uri() needs
32648         an absolute filename.
32649
32650 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
32651
32652         * icall.c: Track name changes in Object and ValueType.
32653
32654 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
32655
32656         * metadata.c (mono_type_stack_size): size should be a multiple of
32657         sizeof (gpointer)
32658
32659 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32660
32661         * gc.c:
32662         (internal_domain_finalize): moved into mono_domain_finalize. No need
32663         to create another thread because the finalizers will be run in the
32664         finalizer thread.
32665         
32666         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
32667         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
32668         to be run (MS does this too).
32669
32670 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
32671
32672         * object.c (mono_class_compute_gc_descriptor): Update comment.
32673
32674         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
32675
32676         * image.h: Add synchronized wrapper cache.
32677
32678         * image.c (do_mono_image_open): Initialize cache.
32679
32680         * reflection.c (create_dynamic_mono_image): Initialize cache.
32681
32682 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32683
32684         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
32685         ves_icall_System_Buffer_ByteLengthInternal.
32686
32687 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
32688
32689         * reflection.c: setup klass->nested_in earlier. Allow
32690         a dash in the assembly name.
32691
32692 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
32693
32694         * metadata.c (mono_type_to_unmanaged): dont access
32695         type->data.klass for MONO_TYPE_OBJECT
32696         (mono_type_to_unmanaged): consider System.Delegate class
32697
32698 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
32699
32700         * class.c: just setup supertypes in the proper place instead of
32701         initializing the full element class for arrays.
32702
32703 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
32704
32705         * class.c: ensure the element class of arrays is initialized.
32706         Setup the supertype info for array classes, too.
32707
32708 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
32709
32710         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
32711
32712 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32713
32714         * Makefile.am: re-added -m option when running cygpath. This way,
32715         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
32716         separator.
32717         * mono-config.c: same codepath for locating mono config file for WIN32
32718         and the rest.
32719         * assembly.c: if mono_assembly_setrootdir is called, don't override
32720         the value set.
32721
32722 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32723
32724         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
32725         MONO_ASSEMBLIES variable.
32726
32727 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
32728
32729         * icall.c: added Assembly::GetNamespaces() icall.
32730
32731 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32732
32733         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
32734
32735 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
32736
32737         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
32738         * object.c: fixed bug in the construction of vtable for proxies
32739
32740 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
32741
32742         * object.c (mono_array_new): Mark mono_array_new as an icall.
32743
32744 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32745
32746         * class.c: fixed test for public method when overriding interfaces.
32747         Closes bug #40970.
32748
32749 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
32750
32751         * appdomain.h, domain.c: added mono_domain_foreach() to
32752         be able to access the currently loaded appdomains.
32753         * object.c: make string interning work across sppdomains.
32754         Mark some functions for use as icalls.
32755
32756 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
32757
32758         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
32759
32760         * reflection.h reflection.c: Allocate long living data using 
32761         GC_MALLOC_ATOMIC so the collector does not need to scan it.
32762
32763         * reflection.c: Double the allocation size in streams instead of
32764         increasing it, to prevent unneccesary copying on large assemblies.
32765         
32766         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
32767         creation if the assembly does not have the Run flag set.
32768
32769 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
32770
32771         * class.h: avoid the C++ keywords in header files (Jerome Laban
32772         spotted and fixed this).
32773
32774 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32775
32776         * object.c:
32777         (mono_unhandled_exception): fill in the arguments for the
32778         UnhandledException event. Only trigger that event for the default
32779         domain (as MS does).
32780
32781 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
32782
32783         * object.c: Improve typed allocation stuff based on suggestions from
32784         Paolo. Also turn it on if the GC library supports it.
32785
32786 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
32787
32788         * object.c object.h class.h: Added experimental typed allocation
32789         facility using the interfaces in gc_gcj.h.
32790
32791         * os/gc_wrapper.h: Added new include files.
32792         
32793 2003-04-03  Martin Baulig  <martin@ximian.com>
32794
32795         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
32796         which is not yet enabled by default.
32797
32798         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
32799         functions.
32800         (mono_gc_lock, mono_gc_unlock): New static functions.
32801
32802         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
32803         functions; stop/start the world for the garbage collector.  This
32804         is using the windows API; we need to complete the SuspendThread()/
32805         ResumeThread() implementation in the io-layer to make this work on Unix.
32806         (mono_gc_push_all_stacks): New public function; tells the garbage
32807         collector about the stack pointers from all managed threads.
32808
32809 2003-04-03  Martin Baulig  <martin@ximian.com>
32810
32811         * object.h (MonoThread): Added `gpointer stack_ptr'.
32812
32813         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
32814
32815 2003-04-03  Martin Baulig  <martin@ximian.com>
32816
32817         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
32818
32819 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
32820
32821         * reflection.c (typebuilder_setup_fields): Initialize field.first and
32822         field.last.
32823
32824 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
32825
32826         * loader.c (mono_lookup_internal_call): Report the corlib that is
32827         out of sync.
32828
32829 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
32830
32831         * icall.c (ves_icall_type_GetTypeCode): fixed check for
32832         System.DBNull (it's class not valuetype).
32833
32834 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
32835
32836         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
32837         if the array method was already assigned a token (fixes bug#40646).
32838
32839 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
32840
32841         * reflection.c (mono_reflection_get_type): Attempt type resolve even
32842         if no assembly is given.
32843
32844 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
32845
32846         * metadata.h: Added the new tables.
32847
32848         * row-indexes.h: Added definitions for new tables.
32849
32850         * metadata.c: Add schemas for new tables, and add support for
32851         computing the sizes of them.
32852
32853         * class.c: Update for handling the new type cases.
32854
32855 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
32856
32857         * metadata.h (MONO_TYPE_IS_VOID): new macro
32858
32859 2003-03-31  Martin Baulig  <martin@ximian.com>
32860
32861         * threads.h (MonoThreadCallbacks): Added `thread_created'.
32862
32863         * threads.c (mono_thread_new_init): Call `thread_created' in the
32864         mono_thread_callbacks.
32865
32866 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
32867
32868         * loader.h: added marshalbyrefobject_class to mono_defaults
32869         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
32870         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
32871           generation of output parameters.
32872           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
32873         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
32874           contextbound and the target object belongs to the context of the caller.
32875         * object.h: added context and unwrapped_server variables in MonoRealProxy.
32876         * object.c: Implemented support for interfaces and abstract classes
32877           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
32878           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
32879
32880 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
32881
32882         * class.h class.c (mono_class_is_subclass_of): New function.
32883         
32884         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
32885         routines for most common case (calls from ArrayList::ToArray).
32886
32887         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
32888         routine so programs which call Environment::Exit() can be profiled.
32889
32890         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
32891         Added MONO_ARCH_SAVE_REGS.
32892
32893         * icall.c (ves_icall_type_is_subtype_of): Use new function.
32894
32895 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
32896
32897         * blob.h: Add a couple of new MonoType types definitions.
32898
32899         * tabledefs.h: Add a couple of new call convs.
32900
32901 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
32902
32903         * reflection.h (MonoReflectionDynamicAssembly): track changes in
32904         the layout of the class.
32905
32906         * reflection.c (alloc_table): double the size on overflow to avoid
32907         unnecessary copying.
32908
32909         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
32910         avoid filling out metadata tables and blobs. Also set mb->ilgen to
32911         null so it can be garbage collected.
32912         
32913 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
32914
32915         * reflection.c (mono_reflection_get_type): Return the resolved type
32916         only if it is in the assembly we searched.
32917
32918         * reflection.c (ensure_runtime_vtable): Initialize method slots.
32919
32920         * class.c (mono_class_setup_vtable): Set the slot of the overriding
32921         method.
32922
32923 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32924
32925         * appdomain.c:
32926         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
32927         the right one is 'file:///blah', but MS allows it.
32928         * assembly.c:
32929         (mono_assembly_open): allow 'file://blah'
32930
32931         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
32932
32933 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
32934
32935         * socket-io.c: fixes bug #40310.
32936
32937 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
32938
32939         * reflection.c (mono_reflection_parse_type): handle deeply nested
32940         types correctly.
32941
32942         * reflection.c (mono_image_create_token): Use unique token values
32943         since they will be put into a hash table.
32944
32945         * class.c (mono_class_setup_vtable): If a method occurs in more than
32946         one place in the vtable, and it gets overriden, then change the
32947         other occurances too.
32948
32949         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
32950         object as return type.
32951
32952 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
32953
32954         * icall.c: Deleted "ToString" implementation for double and float
32955         because they are full implemented in managed code.
32956
32957 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
32958
32959         * reflection.c, reflection.h: implemented and exported functions
32960         to retrieve info about custom attributes.
32961
32962 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
32963
32964         * appdomain.c: moved Uri handling to assembly.c
32965         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
32966         work when using a file Uri in *nix and windows.
32967
32968         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
32969         GetReferencedAssemblies.
32970
32971 2003-03-18  Dick Porter  <dick@ximian.com>
32972
32973         * icall.c: Rename a couple of internal calls
32974
32975         * threads.c: Set the thread state to Stopped when a thread exits.
32976         Fixes bug 39377.
32977
32978 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
32979
32980         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
32981         New icall.
32982
32983         * object.c (mono_class_vtable): fix warning.
32984
32985 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
32986
32987         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
32988
32989         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
32990         memory.
32991         (method_encode_clauses): Create exception info structures in the right
32992         order.
32993         (mono_reflection_setup_internal_class): Initialize supertypes field.
32994
32995         * class.c object.c: Handle interfaces which implement other interfaces 
32996         correctly.
32997
32998         * class.h class.c: Move the supertypes array initialization code into 
32999         a separate function so it can be used for dynamic types too. Also call
33000         it earlier, in mono_class_init(), since it can be used before the
33001         type is initialized.
33002
33003 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33004
33005         * Makefile.am:
33006         * assembly.c:
33007         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
33008
33009         * appdomain.c:
33010         * appdomain.h:
33011         * marshal.c:
33012         * object.c: remove warnings.
33013
33014 2003-03-13  Martin Baulig  <martin@ximian.com>
33015
33016         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
33017         (MonoDebugLexicalBlockEntry): New types.
33018
33019         * debug-mono-symfile.c
33020         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
33021
33022 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33023
33024         * process.c: ret can be any non-zero value accroding to MS doc.
33025
33026 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
33027
33028         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
33029         fixing a warning for a miss-used prototype, would have cause
33030         random memory corruption.
33031
33032 2003-03-07  Martin Baulig  <martin@ximian.com>
33033
33034         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
33035         getting really annoying ....
33036
33037 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
33038
33039         * reflection.c (fixup_method): added support for array methods.
33040
33041 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
33042
33043         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
33044         (pointed out by Michael Adams).
33045
33046 2003-03-04  Dick Porter  <dick@ximian.com>
33047
33048         * icall.c: Temporarily reverted the Double and Single ToString()
33049         change, because it broke nunit.
33050
33051 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
33052
33053         * object.h, threads.h: make include files compatible with C++
33054         (patch by Jerome Laban <jlaban@wanadoo.fr>).
33055
33056 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
33057
33058         * icall.c: Erased ToString helper functions for Double and Single.
33059         Now, that implementations ar all in managed code (Double and Single
33060         Formatters).
33061
33062 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
33063
33064         * appdomain.c: Added method for initializing the default context of
33065         a domain. Added internal call for getting the default context.
33066         * appdomain.h: Added context variable in MonoDomain struct.
33067         * domain.c: mono_domain_set also sets the default context of the domain
33068         * icall.c: Mapped internal method InternalGetDefaultContext.
33069         * object.c: mono_object_get_virtual_method returns always a remoting
33070         wrapper if the object is a transparent proxy.
33071         mono_runtime_invoke_array: when creating an object by calling the
33072         constructor, if the created object is a proxy, then the constructor should
33073         be called using the a remoting wrapper.
33074
33075 2003-03-03  Dick Porter  <dick@ximian.com>
33076
33077         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
33078         variable so it compiles on solaris.  Problem spotted by
33079         Christopher Taylor <ct@cs.clemson.edu>
33080
33081 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33082
33083         * appdomain.c:
33084         (get_info_from_assembly_name): don't leak value.
33085
33086         * icall.c:
33087         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
33088         result.
33089
33090 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
33091
33092         * assembly.c: export mono_image_load_references ().
33093         * class.c: handle function pointers. mono_class_from_name() now
33094         supports nested type names directly.
33095
33096 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
33097
33098         * reflection.h reflection.c: Encode already created dynamic methods 
33099         and fields correctly as a DEF instead of a REF.
33100
33101         * reflection.c: Get rid of the force_ref argument to 
33102         mono_image_typedef_or_ref since it was wrong in the first place.
33103
33104         * string-icalls.c: add error checking to string constructors according
33105         to the MSDN docs.
33106
33107         * reflection.c: Emit types in the order their TypeBuilders were 
33108         created. Previously, a new table index was assigned to each type before
33109         the tables were emitted. This was wrong because the signature blob
33110         might already refer to a type by its original table index.
33111
33112 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
33113
33114         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
33115         change.
33116         
33117 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33118
33119         * Makefile.am: make assemblies dir have \ instead of / on windows.
33120
33121 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
33122
33123         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
33124         iterate over the NESTEDCLASS table using a linear search since the
33125         table is not guaranteed to be sorted by the secondary key.
33126
33127         * class.c (mono_class_create_from_typedef): fixed up call to
33128         mono_metadata_nesting_typedef.
33129         
33130 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
33131
33132         * marshal.c (mono_string_to_byvalstr): clear the memory as
33133         suggested by Jerome Laban <jlaban@wanadoo.fr>
33134
33135 2003-02-26  Dick Porter  <dick@ximian.com>
33136
33137         * process.c: Cope with padding in .rsrc blocks
33138
33139 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
33140
33141         * metadata.h: reverted the filter_len change, it breaks reflection
33142         
33143 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
33144
33145         * metadata.h: added a new field to store the filter_len
33146         
33147
33148 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
33149
33150         * reflection.c: handle custom attributes for types and members
33151         created with Reflection.Emit (bug#38422).
33152
33153 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
33154
33155         * reflection.c: define RTSpecialName automatically for constructors for
33156         compatibility with MS.NET.
33157
33158         * reflection.c (mono_reflection_create_runtime_class): initialize
33159         nested_in field of dynamically created classes.
33160
33161 2003-02-22  Martin Baulig  <martin@ximian.com>
33162
33163         * debug-mono-symfile.h: Incremented version number.
33164
33165 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
33166
33167         * object.h icall.c process.c: fix warnings.
33168
33169 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
33170
33171         * appdomain.h appdomain.c:
33172         (mono_domain_try_type_resolve): split the 
33173         name_or_tb argument into a name and a tb argument.
33174         (mono_domain_has_type_resolve): new function to check whenever the
33175         application has registered a TypeResolve event handler.
33176         
33177         * icall.c reflection.h reflection.c: move the type resolve logic into
33178         mono_reflection_get_type () so it will be invoked when 
33179         Assembly::GetType () is called.
33180
33181         * reflection.c:
33182         (mono_reflection_get_type): renamed to get_type_internal.
33183         (mono_reflection_get_type): fixed type name generation so it works 
33184         for nested types too.
33185         (mono_reflection_get_type): call has_type_resolve () to avoid the 
33186         costly type name generation if there is no resolve event handler.
33187
33188 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
33189
33190         * class.c, image.c: load exported types from file references.
33191
33192 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
33193
33194         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
33195           used to cache the managed methods used to create proxies and make 
33196           remote invocation of methods.
33197         * class.h: Added in MonoVTable a flag to indicate that a class needs 
33198           to be remotely created.
33199         * object.c: Modified the method mono_class_vtable(). It now initializes 
33200           the remote flag of the vtable. Modified mono_object_new_specific(), 
33201           so now it checks the remote flag.
33202         * icall.c: Added a couple of internal methods, one for enabling instance 
33203           creation interception for a type, and one for creating objects bypassing
33204           the remote check.
33205
33206 2003-02-18  Martin Baulig  <martin@ximian.com>
33207
33208         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
33209         New interncall to get a method's metadata token.
33210
33211         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
33212         New interncall for the debugger.
33213
33214 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
33215
33216         * class.c (mono_class_setup_vtable): allocate supertype array
33217
33218 2003-02-18  Martin Baulig  <martin@ximian.com>
33219
33220         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
33221
33222 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33223
33224         * reflection.c:
33225         (assembly_name_to_aname): jump over unknown properties (i've found
33226         something like: 'type, assembly, version=xxx, custom=null, public...',
33227         so now will ignore custom=null and still get the rest of the values).
33228
33229 2003-02-17  Dick Porter  <dick@ximian.com>
33230
33231         * threads.c: Have Thread.Start() wait for a semaphore to signal
33232         that the thread has set up all its local data.  This fixes bug
33233         34323, where Abort() raced the new thread's TLS data.
33234
33235         Also removes the handle_store() call from start_wrapper, because
33236         threads are now always created suspended and there is no longer a
33237         race between the parent and child threads to store the info.
33238
33239 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
33240
33241         * image.c: explain the #- heap issue in a message, hopefully
33242         avoiding FAQs on mono-list.
33243
33244 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33245
33246         * icall.c:
33247         (GetEntryAssembly): if the domain has not invoked
33248         AppDomain.ExecuteAssembly yet, return the assembly of the default
33249         AppDomain.
33250
33251 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
33252
33253         * class.c (mono_ldtoken): make it work in dynamic assemblies.
33254
33255 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
33256
33257         * metadata.c, reflection.c: simple speedup to type hash
33258         and equals code.
33259
33260 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
33261
33262         * image.c, image.h, class.c, assembly.c: move module loading
33263         to MonoImage. When loading metadata, consider alignemnet from
33264         the start of metadata, not from the metadata address in memory.
33265
33266 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
33267
33268         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
33269         AssemblyBuilder objects. Factored out custom attribute creation into
33270         a separate function.
33271         (create_custom_attr): new function to create custom attributes.
33272
33273 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
33274
33275         * Makefile.am: Got tired of typing the full pathname to pedump.
33276         Until there is another option, am installing this.
33277
33278 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
33279
33280         * class.c (class_compute_field_layout): always set field->parent 
33281         (mono_ldtoken): use mono_defaults.fieldhandle_class;
33282
33283 2003-02-11  Dick Porter  <dick@ximian.com>
33284
33285         * threads-types.h:
33286         * monitor.c: Rewrote Monitor, making lock much faster and
33287         Pulse/Wait work as specified.  Also uses much fewer handles, and only
33288         creates them as needed.
33289
33290         * exception.c: Added SynchronizationLockException
33291
33292         * threads.c: Deleted old Monitor implementation.  The new one is
33293         in a new file.
33294
33295 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
33296
33297         * class.c: handled TypedReference type code. Set the correct size for
33298         class data. Setup interface_offsets for interface classes, too.
33299
33300 2003-02-09  Martin Baulig  <martin@ximian.com>
33301
33302         * debug-mono-symfile.h: Reflect latest symbol writer changes.
33303
33304 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
33305
33306         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
33307         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
33308         * object.c: fixed mono_object_get_virtual_method () for interfaces.
33309         * verify.c: check for code that runs after the end of the method.
33310
33311 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
33312
33313         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
33314         "System.Math::Round2".
33315         * sysmath.h: Added Floor, Round and Round2 definitions.
33316         * sysmath.c: Modified certain functions that were not 100% compliant
33317         with MS.NET (math precision) and added the implementation of Floor,
33318         Round and Round2.
33319
33320 2003-02-07  Martin Baulig  <martin@ximian.com>
33321
33322         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
33323
33324 2003-02-07  Martin Baulig  <martin@ximian.com>
33325
33326         * debug-mono-symfile.c: Reflected latest symwriter changes.
33327         (mono_debug_create_mono_symbol_file): Removed.
33328         (mono_debug_open_mono_symbol_file): Take an argument which
33329         specifies whether to create a dynamic symbol file.
33330
33331 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
33332
33333         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
33334
33335 2003-02-05  Martin Baulig  <martin@ximian.com>
33336
33337         * reflection.c (mono_image_build_metadata): Make this public,
33338         protect it against being called multiple times, don't create
33339         resources and don't build the compressed metadata here.
33340         (mono_image_create_pefile): Do this here.
33341
33342         * icall.c
33343         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
33344
33345 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33346
33347         * socket-io.c: fixed bug #36322.
33348
33349 2003-02-06  Piers Haken <piersh@friskit.com>
33350
33351         * appdomain.[ch]:
33352         * class.h:
33353         * debug-mono-symfile.c:
33354         * icall.c:
33355         * loader.c:
33356         * mono-config.c:
33357         * monosn.c:
33358         * reflection.c:
33359         * socket-io.c: warning cleanups
33360
33361 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
33362
33363         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
33364         function. works like remoting invoke, but does a check for the Proxy first.
33365
33366 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
33367
33368         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
33369
33370 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
33371
33372         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
33373         array of pointers.
33374         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
33375         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
33376
33377         * object.c (mono_store_remote_field_new): used by the new jit
33378         instead of mono_store_remote_field
33379         (mono_load_remote_field_new): used by the new jit
33380         instead of mono_load_remote_field
33381
33382 2003-02-05  Patrik Torstensson
33383
33384         * appdomain.c: changed unload to take the domain id instead
33385         of domain
33386         
33387         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
33388
33389
33390 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33391
33392         * appdomain.c: don't look for assemblies in ApplicationBase if
33393         PrivateBinPathProbe is set.
33394
33395 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33396
33397         * object.c: make the first argument in main_args contain the absolute
33398         path to the assembly. Fixes bug #37511.
33399
33400 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33401
33402         * icall.c: get correct UTC offset for countries not using daylight
33403         time saving. Fixes bug #30030.
33404
33405 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33406
33407         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
33408         and 1 are the family).
33409
33410 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
33411
33412         * icall.c (ves_icall_InternalExecute): removed wrong assertion
33413
33414         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
33415
33416 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
33417
33418         * reflection.c: added support for SignatureHelper tokens, which is
33419         needed by the Calli opcode.
33420
33421         * reflection.h: track changes to SignatureHelper class.
33422
33423         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
33424
33425 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33426
33427         * appdomain.c: fixed loading assemblies from PrivateBinPath.
33428
33429 2003-02-03  Patrik Torstensson
33430         * appdomain.[c|h], domain.c : 
33431          - Added support for getting a domain via domain id
33432          - Support for setting and getting domain from System.AppDomain 
33433            (used in cross appdomain channel)
33434          - Added support for get/set for a MonoAppContext on a thread 
33435            (Context class in System.Runtime.Remoting.Contexts),
33436          - Removed hack in Get/SetData and ExecuteAssembly.
33437         
33438         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
33439         the managed world to get control when a proxy is created.
33440
33441         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
33442         
33443 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
33444
33445         * icall.c
33446         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
33447         Populate the codebase field as well.
33448
33449 2003-02-02  Martin Baulig  <martin@ximian.com>
33450
33451         * debug-mono-symfile.c
33452         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
33453         (mono_debug_symfile_add_method): Allow interncalls.
33454
33455 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33456
33457         * icall.c: throw parse exception if strtod fails or the string is empty.
33458
33459 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
33460
33461         * marshal.c: handle object type separately from defined
33462         class types.
33463
33464 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
33465
33466         * marshal.c: handle NATIVE_LPSTR for strings when it's
33467         explicitly specified.
33468
33469 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
33470
33471         * reflection.c, reflection.h, icall.c: setup the reflection
33472         handle cache for ModuleBuilders and AssemblyBuilders.
33473
33474 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
33475
33476         * reflection.c (reflection_methodbuilder_to_mono_method): set
33477         pinvoke flag
33478
33479 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33480
33481         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
33482
33483 2003-01-29  Dick Porter  <dick@ximian.com>
33484
33485         * threads.c: No need for the fake_thread kludge now that Thread
33486         doesn't run a class constructor
33487         
33488 2003-01-29  Dick Porter  <dick@ximian.com>
33489
33490         * threads.c: Use g_direct_hash instead of the rather bogus
33491         g_int_hash
33492
33493 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
33494
33495         * marshal.c (mono_marshal_get_native_wrapper): add check for null
33496         (fix pinvoke12.exe)
33497         (mono_marshal_get_struct_to_ptr): generate valid IL code
33498         (mono_marshal_get_ptr_to_struct): generate valid IL code
33499         (*): correctly set sig->pinvoke, we need to memdup the signature
33500         to do that
33501
33502 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
33503
33504         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
33505         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
33506
33507 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
33508
33509         * profiler.c: provide more callers information.
33510
33511 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
33512
33513         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
33514
33515         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
33516
33517         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
33518
33519 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
33520
33521         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
33522         exception instead of going into an infinite loop on dates which it 
33523         can't yet handle.
33524
33525         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
33526         out-of-range exception if needed.
33527
33528         * class.c (mono_class_setup_vtable): allow a virtual method to provide
33529         an implementation for an interface method and to override an inherited
33530         method at the same time. 
33531         Imagine a scenario when a virtual method is used to override a
33532         virtual abstract method in a parent class, and this same method 
33533         provides an implementation for an method inherited from an interface. 
33534         In this case, the interface resolution code will set im->slot, which 
33535         means that the virtual method override pass will skip this method 
33536         which means a pointer to the abstract method inherited from the parent
33537         will remain in the vtable of this non-abstract class.
33538
33539         * class.c: (mono_class_setup_vtable): continue search for a real 
33540         method if only an abstract method is found.     
33541
33542 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
33543
33544         * reflection.c: add size to encoding for ByValStr and ByValArray
33545         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
33546
33547 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
33548
33549         * class.c (mono_class_setup_vtable): pass the override info as an
33550         argument.
33551
33552         * class.c (mono_class_setup_vtable): set the slot of overriding methods
33553         correctly.
33554         
33555         * reflection.c (ensure_runtime_vtable); add support for method 
33556         overrides.
33557         
33558 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
33559
33560         * reflection.c (resolution_scope_from_image): Hack to work to work with
33561         dynamic assemblies.
33562
33563         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
33564         added a 'force_ref' argument to force this function to allways return 
33565         a TypeRef. This is needed by mono_image_get_memberref_token ().
33566         
33567 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
33568
33569         * reflection.c (mono_image_get_type_info): interfaces really don't have
33570         a parent.
33571
33572         * reflection.c (mono_image_basic_init): fill out missing fields of
33573         image structure.
33574
33575         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
33576         dynamic assemblies. This is required so dynamic assemblies show up in
33577         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
33578         Type::GetType() etc. This is consistent with MS behaviour.
33579
33580         * image.c image.h reflection.c: add newly created classes to the name 
33581         cache so mono_class_get () will find them.      
33582
33583 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
33584
33585         First part of changes to get IKVM.NET running under mono.
33586         
33587         * appdomain.h, appdomain.c: added new function 
33588         mono_domain_try_type_resolve() which will emit TypeResolve events. 
33589         This function will call AppDomain::DoTypeResolve to do the actual work.
33590
33591         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
33592         moved existing code dealing with dynamic tokens to a new function 
33593         called mono_reflection_lookup_dynamic_token (). This function will 
33594         raise TypeResolve events when appropriate. Since reflection.c is not 
33595         part of libmetadata, a new hook function called 
33596         mono_lookup_dynamic_token() is added to class.c which will call this.
33597
33598         * assembly.h assembly.c: make the invoke_load_hook function public,
33599         so it can be called for dynamic assemblies.
33600
33601         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
33602
33603         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
33604         type isn't found.
33605
33606         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
33607         MonoGHashTable, since it contains pointers to objects which the GC 
33608         needs to track.
33609
33610         * assembly.c (search_loaded): remove unused variable.
33611         
33612 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
33613
33614         * object.c: fixed issue exposed by gcc-generated IL programs
33615         that use RVA data for pointers.
33616
33617 2003-01-25  Martin Baulig  <martin@ximian.com>
33618
33619         * threads.c (start_wrapper): Moved the initialization of
33620         `start_func' above the mono_new_thread_init() call to which we
33621         pass it as argument.
33622
33623 2003-01-24  Martin Baulig  <martin@ximian.com>
33624
33625         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
33626         the MonoThread pointer.
33627
33628 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
33629
33630         * icall.c: Rename `PowImpl' to Pow.
33631
33632 2003-01-23  Dick Porter  <dick@ximian.com>
33633
33634         * threads.c (start_wrapper): Create a Thread object if needed, so
33635         the Main() thread can do the class initialisation in a subthread
33636         that has been set up to allow managed code execution.
33637
33638         Pass the thread ID instead of the MonoThread pointer to the thread
33639         start and attach callbacks.  This change is required, because the
33640         jit thread start callback must be called _before_ the Thread
33641         object can be created.
33642         
33643         (mono_thread_init): Removed much object creation code that is no
33644         longer needed.  No managed code is called from here now.
33645
33646         * object.c (mono_runtime_exec_managed_code): Create a subthread
33647         for Main, and call back to the runtime to use it.
33648         Set the exit code when Main exits.
33649
33650         * gc.c: Make sure domain finalisation happens in a subthread.
33651         Re-enable threaded GC, fixing bug 31333 (again).
33652
33653         * environment.c: System.Environment internall calls (so far just
33654         ExitCode is here, the others are still in icall.c)
33655
33656         * appdomain.c (mono_runtime_cleanup): All threads running managed
33657         code should have finished before mono_runtime_cleanup() is
33658         reached, so no need to clean up threads.
33659
33660 2003-01-22  Martin Baulig  <martin@ximian.com>
33661
33662         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
33663         `gpointer func' arguments.      
33664         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
33665         but added `MonoThread *thread' argument.
33666         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
33667
33668         * threads.c (mono_new_thread_init): Added `gpointer func' argument
33669         and pass it to the mono_thread_start_cb callback.
33670         (mono_install_thread_callbacks): New public function to install a
33671         set of callbacks which are set by the debugger.
33672         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
33673
33674 2003-01-22  Martin Baulig  <martin@ximian.com>
33675
33676         * Makefile.am: Install debug-mono-symfile.h.
33677
33678 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
33679
33680         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
33681
33682 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
33683
33684         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
33685         * class.c (mono_ptr_class_get): correctly set access levels of pointers
33686         (mono_array_class_get): correctly set access levels of arrays
33687
33688 2003-01-20      Patrik Torstensson
33689         * image.h (MonoAssemblyName): changed major, minor, build, revision
33690         from signed to unsigned.
33691
33692 2003-01-20  sean kasun <skasun@azstarnet.com>
33693
33694         * reflection.c (load_cattr_value): Now this handles
33695         MONO_TYPE_SZARRAY.  Fixes bug #35629
33696
33697 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
33698
33699         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
33700         integer value
33701
33702 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33703
33704         * decimal.c: fixed bug #26056.
33705
33706 2003-01-17  Martin Baulig  <martin@ximian.com>
33707
33708         * gc.c: Raise an ExecutionEngineException instead of using g_error().
33709
33710 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33711
33712         * exception.[ch]:
33713         (mono_get_exception_type_initialization): new function.
33714
33715         * object.c: throw a TypeInitializationException when an exception is
33716         thrown invoking the class constructor.
33717
33718 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33719
33720         * reflection.c: fixed attribute reading.
33721
33722 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33723
33724         * icall.c:
33725         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
33726         provided, look for the type in the calling assembly and then in
33727         mscorlib; if the assembly name is provided, only try that one.
33728
33729 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
33730
33731         * object.c: register the vtable before there is a chance it's
33732         queried again recursively.
33733
33734 2003-01-13  Duncan Mak  <duncan@ximian.com>
33735
33736         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
33737         gc-internal.h. 
33738         
33739 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
33740
33741         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
33742
33743 2003-01-11  Martin Baulig  <martin@ximian.com>
33744
33745         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
33746         this to 20 for the release.
33747
33748 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
33749
33750         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
33751
33752         * loader.c (mono_method_get_marshal_info): bug fix
33753
33754         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
33755         structures with explicit layout
33756
33757 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
33758
33759         * profiler.c: made the output more readable (and sorted). 
33760         Added caller information for the allocation profiler.
33761
33762 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
33763
33764         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
33765
33766 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33767
33768         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
33769         to get value types.
33770         
33771 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
33772
33773         * object.c, profiler.h, profiler.c, profiler-private.h:
33774         Added object allocation profiler.
33775
33776 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
33777
33778         * reflection.h, reflection.c: handle global methods.
33779         Compress blob entries.
33780
33781 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
33782
33783         * marshal.c: fix compilation.
33784
33785 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
33786
33787         * loader.c (mono_method_get_marshal_info): impl.
33788
33789         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
33790
33791 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33792
33793         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
33794         for reference types.
33795
33796 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
33797
33798         * loader.c: fixed off by one error in loaded parameter names.
33799
33800 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
33801
33802         * marshal.c (mono_marshal_get_icall_wrapper): like
33803         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
33804         instead of a MonoMethod.
33805
33806 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33807
33808         * decimal.c: fixed bug #36537.
33809
33810 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
33811
33812         * marshal.c: throw a missing method exception if a
33813         P/Invoke method is not found.
33814
33815 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
33816
33817         * icall.c: allow a null this for constructors.
33818
33819 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
33820
33821         * icall.c: raise the proper exceptions if the arguments to the
33822         internal Invoke are incorrect.
33823
33824 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
33825
33826         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
33827
33828 2003-01-03  Martin Baulig  <martin@ximian.com>
33829
33830         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
33831
33832 2002-12-31  Martin Baulig  <martin@ximian.com>
33833
33834         * debug-mono-symfile.c: Completely rewrote the type section.
33835         Instead of using individual malloc()ed fields, we use one big
33836         continuous memory area and offsets into this area.
33837         See the comments in the source code for details.
33838
33839 2002-12-30  Martin Baulig  <martin@ximian.com>
33840
33841         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
33842
33843 2002-12-30  Martin Baulig  <martin@ximian.com>
33844
33845         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
33846         line number table in this data blob instead of using an external
33847         pointer.
33848
33849 2002-12-28  Martin Baulig  <martin@ximian.com>
33850
33851         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
33852
33853 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
33854
33855         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
33856         as a boxed return type.
33857
33858 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
33859
33860         * appdomain.c
33861         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
33862         g_build_filename to properly get separators on the filename created.
33863
33864         * object.h: Small change, introduce MonoMarshalByRefObject to
33865         track the layout of that structure in the C# universe as we make
33866         changes there.
33867
33868 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
33869
33870         * object.c: removed assert to allow static fields on interfaces.
33871         * loader.c: a TypeSpec may be used for any type, not just arrays.
33872
33873 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
33874
33875         * class.c, class.h: added mono_class_array_element_size ().
33876         Ignore static methods in interfaces.
33877
33878 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33879
33880         * threads.c: fixed the build under cygwin.
33881
33882 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
33883
33884         * reflection.c: handle nullref constants. Allocate keys for
33885         reflection handles with the GC.
33886
33887 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
33888
33889         * threads.c, threads.h: added mono_thread_get_abort_signal()
33890         to get a suitable signal for thread abort.
33891
33892 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
33893
33894         * metadata.c: fix handling of ExportedType table.
33895
33896 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33897
33898         * icall.c: added WriteWindowsDebugString internal call.
33899
33900 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33901
33902         * reflection.h: added fields to match C# implementation.
33903
33904 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33905
33906         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
33907
33908 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
33909
33910         * gc.h, gc-internal.h: Rename header for GC internal calls to
33911         gc-internal.h from gc.h as to not clash with Boehm GC having its
33912         header installed as <gc.h> in outside include paths.
33913         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
33914         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
33915
33916 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33917
33918         * icall.c: assign minor, build and revision in FillName.
33919
33920 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
33921
33922         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
33923         Added support for running code generated by Reflection.Emit.
33924
33925 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33926
33927         * appdomain.c: check for NULL argument in LoadFrom.
33928
33929 2002-12-10  Dick Porter  <dick@ximian.com>
33930
33931         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
33932
33933 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33934
33935         * appdomain.c: fix buglet when building exe file name.  Handle full
33936         assembly name (needed after latest changes to AssemblyName).
33937         * image.c:
33938         (mono_image_close): free some hashtables.
33939
33940 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
33941
33942         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
33943         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
33944         on some systems (redhat 7.3) 
33945
33946 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
33947
33948         * threads.c: delete the critical section of a sync block,
33949         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
33950
33951 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
33952
33953         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
33954
33955 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
33956
33957         * appdomain.[ch]: handle the assembly preload event to try loading the
33958         assemblies using the paths we have in the current domain.
33959
33960         * assembly.[ch]: created an assembly preload hook that is called to try
33961         loading the assembly by other means that the ones provided here.
33962
33963         * domain.c: initialize the domain search path.
33964
33965         From now on, assemblies (TODO: except corlib and System) are loaded
33966         according to these rules when using mono_assembly_load ():
33967
33968                 1. It tries to load the assembly from the ApplicationBase
33969                 of the current domain appending .dll and .exe (TODO: have to
33970                 try loading from name/name.dll and name/name.exe).
33971
33972                 2. It tries the search path specified in PrivateBinPath for the
33973                 current domain (if any).
33974
33975                 3. Previous behavior.
33976
33977 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
33978
33979         * icall.c: implemented GetInterfaceMap() related icall.
33980         * domain.c, loader.h: load MethodInfo in mono_defaults.
33981
33982 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
33983
33984         * gc.c: disable the finalizer thread for now, untill all the issues
33985         with it are resolved.
33986
33987 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
33988
33989         * string-icalls.c: handle embedded nulls in string ctor when the
33990         length is specified.
33991
33992 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
33993
33994         * class.c: look for explicit interface implementation in parent
33995         classes, too.
33996
33997 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
33998
33999         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
34000
34001 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
34002
34003         * gc.c: protect handles with a critical section.
34004
34005 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34006
34007         * icall.c:
34008         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
34009         parameters. If no assembly specified, try getting the type from all
34010         the assemblies in the current domain, else, load the assembly and get
34011         the type from it.
34012
34013 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34014
34015         * marshal.c: applied patch from Aleksey Demakov that fixes
34016         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
34017
34018 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34019
34020         * icall.c: fixed get_location.
34021
34022 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
34023
34024         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
34025         declarations to make it work with older gcc. 
34026
34027         * loader.c (mono_get_method): set signature->pinvoke for native calls
34028
34029 2002-11-20  Dick Porter  <dick@ximian.com>
34030
34031         * threads.c (mono_thread_init): Set the main thread's handle
34032
34033 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
34034
34035         * gc.c: allow compilation without GC support. Changed to match the
34036         mono coding style.
34037
34038 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
34039
34040         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
34041
34042 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
34043
34044         * reflection.c: set a public key token on the core assemblies.
34045
34046 2002-11-18  Dick Porter  <dick@ximian.com>
34047
34048         * threads.c: Split out some thread initialisation so that other
34049         files can set the start callback function.
34050
34051         * gc.c: Run finalisers in a separate thread, to avoid stack
34052         overflow.  Fixes bug 31333.
34053
34054         * appdomain.c: Set up GC finalisation thread.
34055
34056         * reflection.c: 
34057         * object.c: 
34058         * domain.c: Use gc.h macros for GC_malloc
34059         
34060 2002-11-15  Dick Porter  <dick@ximian.com>
34061
34062         * threadpool.c: 
34063         * threads.c:
34064         * appdomain.c: Removed mono_runtime_init_with_attach(),
34065         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
34066         merging the extra parameter with the existing function.  Removed
34067         unneeded code in mono_thread_attach().
34068
34069 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
34070
34071         * image.c (mono_image_loaded_by_guid): a method to get loaded
34072         images by guid. 
34073         (load_metadata_ptrs): we store the guid as string.
34074
34075 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
34076
34077         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
34078
34079         * metadata.c (mono_guid_to_string): imported method form Zoltan
34080         Varga (slightly modified)
34081
34082         * assembly.c (mono_assembly_open): load precompiled code
34083
34084         * loader.h (MonoMethod): we store the method token for use in the
34085         aot compiler. 
34086
34087 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34088
34089         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
34090         the hook function called when an assembly is loaded.
34091         
34092         * domain.c: Modified file.
34093         (mono_domain_assembly_load): removed hash table insertion of assemblies.
34094
34095         Fixes bug #33196.
34096
34097 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
34098
34099         * reflection.c: Map PEFileKind to the value expected by the WinNT
34100         image loader. 
34101
34102 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34103
34104         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
34105         Read until the buffer is filled completely.
34106
34107 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34108
34109         * icall.c: implemented MonoType.InternalGetEvent ().
34110
34111 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34112
34113         * appdomain.c: implemented InitAppDomainSetup. Delayed
34114         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
34115         the entry_assembly.
34116
34117         * assembly.c: base_dir is now an absolute path ending with
34118         G_DIR_SEPARATOR.
34119
34120         * icall.c: modified get_location according to the above changes.
34121
34122         * object.c: init AppDomain.SetupInformation for the default domain after
34123         we have the entry assembly.
34124
34125         * domain.c: when unloading a domain, setup = NULL.
34126
34127 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
34128
34129         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
34130
34131 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
34132
34133         * object.h, object.c: introduced mono_object_get_virtual_method ()
34134         to lookup the method invoked on an object when a callvirt is done on
34135         a method.
34136         * icall.c: make MethodInfo::Invoke() always do a virtual call.
34137
34138 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34139
34140         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
34141         current domain when loaded an assembly and failed to load it.
34142
34143         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
34144
34145 2002-10-31  Dick Porter  <dick@ximian.com>
34146
34147         * icall.c: 
34148         * file-io.h: 
34149         * file-io.c: Return the error status in a parameter, as the
34150         GetLastError() value has long since been blown away if we try and
34151         look it up in a subsequent internal call invocation.  Delete the
34152         GetLastError() internal call, because it's useless.
34153
34154 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
34155
34156         * class.[ch]: added cast_class to fix bug 29517
34157
34158 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
34159
34160         * marshal.c: create valid IL code in the filter clause:
34161         the new JIT is less forgiving:-)
34162
34163 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34164
34165         * icall.c: removed get_property internal call.
34166
34167 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
34168
34169         * appdomain.h domain.c: Added an ID to appdomains.
34170         
34171         * threads.c threads.h icall.c: Implement icall
34172         Thread:GetDomainID(), and remove unused icall 
34173         CurrentThreadDomain_internal.
34174
34175 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34176
34177         * icall.c: Don't recurse through the base types in GetConstructor.
34178         Fixes bug #32063. 
34179
34180 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
34181
34182         * mempool.h, mempool.c: added mono_mempool_empty() and
34183         mono_mempool_stats().
34184
34185 2002-10-23  Dick Porter  <dick@ximian.com>
34186
34187         * file-io.c: 
34188         * file-io.h: 
34189         * icall.c: Added MonoIO.GetFileType internal call
34190
34191 2002-10-17  Dick Porter  <dick@ximian.com>
34192
34193         * appdomain.c (mono_runtime_cleanup): Don't signal the async
34194         delegate semaphore before waiting for all threads to finish,
34195         because new threads can also call async delegates.  Fixes bug
34196         32004.
34197
34198         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
34199         of 3 seconds, in case another async job is queued.  (This part is
34200         needed because the bug fix reintroduced the 3s exit lag.)  This
34201         makes the mono_runtime_shutdown flag superfluous.
34202
34203 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
34204
34205         * reflection.c: include ehader size in method section headers.
34206         Really check for suplicated modules entries.
34207
34208 2002-10-17  Martin Baulig  <martin@gnome.org>
34209
34210         * debug-mono-symfile.c: Added back support for locals.
34211
34212 2002-10-14  Martin Baulig  <martin@gnome.org>
34213
34214         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
34215         MONO_TYPE_VOID.
34216
34217 2002-10-14  Martin Baulig  <martin@gnome.org>
34218
34219         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
34220         mono_class_get() instead of looking in the class cache. 
34221
34222 2002-10-13  Martin Baulig  <martin@gnome.org>
34223
34224         * debug-mono-symfile.c: Set version number to 28, include the
34225         signature in method names.
34226
34227 2002-10-13  Martin Baulig  <martin@gnome.org>
34228
34229         * debug-mono-symfile.h: Set version number to 27.
34230
34231 2002-10-11  Martin Baulig  <martin@gnome.org>
34232
34233         * gc.c: Don't register/unregister NULL pointers as disappearing links.
34234
34235 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
34236
34237         * metadata.c, metadata.h: added helper function to allocate signatures.
34238
34239 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34240
34241         * icall.c: added internal call to get the location of machine.config.
34242
34243 2002-10-08  Martin Baulig  <martin@gnome.org>
34244
34245         * debug-mono-symfile.c: Ignore classes with a pending init for the
34246         moment.
34247
34248 2002-10-03  Dick Porter  <dick@ximian.com>
34249
34250         * threads.c: Freebsd pthread_t is a pointer
34251
34252 2002-10-03  Dick Porter  <dick@ximian.com>
34253
34254         * socket-io.c: Implemented GetHostName_internal
34255
34256 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34257
34258         * mono-config.c:
34259         (mono_config_parse_file): don't leak the text.
34260
34261 2002-10-02  Martin Baulig  <martin@gnome.org>
34262
34263         * debug-mono-symfile.c: Added support for methods.
34264
34265 2002-10-01  Martin Baulig  <martin@gnome.org>
34266
34267         * debug-mono-symfile.c: Don't emit methods and line numbers for
34268         the dynamic symbol file, just write the type table.  We can easily
34269         have an external helper program which creates a symbol file for an
34270         IL file.        
34271
34272 2002-10-01  Dick Porter  <dick@ximian.com>
34273
34274         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
34275         Only add the handle to the cleanup array when we're about to
34276         launch the thread.  Bug 31425 deadlocked when the test was run on
34277         mono under w32.
34278
34279 2002-10-01  Martin Baulig  <martin@gnome.org>
34280
34281         * debug-mono-symfile.c: Added support for properties.
34282
34283 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
34284
34285         * reflection.c: unaligned store fix from Mark Crichton
34286         <crichton@gimp.org>.
34287
34288 2002-09-27  Martin Baulig  <martin@gnome.org>
34289
34290         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
34291         New interncall.
34292
34293 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
34294
34295         * assembly.h, assembly.c: use a sane API to hook into the assembly
34296         loading process instead of a useless special-purpouse hack
34297         (ngen needs a hook, too, for example).
34298
34299 2002-09-27  Dick Porter  <dick@ximian.com>
34300
34301         * threads.c (mono_thread_init): Call GetCurrentProcess() so
34302         io-layer can set up some process handle info.  Not needed on w32,
34303         but doesn't hurt either.
34304
34305         * process.c: Pass the program name in the second parameter to
34306         CreateProcess, so the path is searched.  Include the working
34307         directory. Implemented process name, process enumeration, and some
34308         process detail internal calls.
34309         
34310         * icall.c: Added internal calls for process lookup, and some
34311         process details
34312
34313 2002-09-26  Martin Baulig  <martin@gnome.org>
34314
34315         * assembly.c (mono_install_open_assembly_hook): New global
34316         function to install a function to be invoked each time a new
34317         assembly is loaded.
34318         (mono_assembly_open): Run this callback function if set.
34319
34320         * debug-mono-symfile.c: Put back line numbers for the dynamic
34321         symbol file and also record the .il file as source file.  This
34322         allows us to install the temporary symbol file as `file.dbg' just
34323         like a compiler-generated one.
34324
34325 2002-09-26  Nick Zigarovich <nick@chemlab.org>
34326
34327         * Corrected typo in gc.c (BOHEM vs BOEHM).
34328
34329 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34330
34331         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
34332         GetProperties. Also avoid calling g_slist_length in GetProperties and
34333         GetMethods.
34334
34335 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
34336
34337         * reflection.c: avoid unaligned stores (bug spotted by
34338         Mark Crichton  <crichton@gimp.org>).
34339
34340 2002-09-25  Martin Baulig  <martin@gnome.org>
34341
34342         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
34343         instead of guint64 for addresses and added prologue/epilogue info.
34344
34345 2002-09-25  Martin Baulig  <martin@gnome.org>
34346
34347         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
34348         store line number info.  For the dynamic symbol file, we only need
34349         to provide the JIT generated dynamic line number info for the dynamic
34350         symbol file.
34351
34352 2002-09-25  Martin Baulig  <martin@gnome.org>
34353
34354         * debug-mono-symfile.h: Incremented version number.
34355
34356 2002-09-24  Martin Baulig  <martin@gnome.org>
34357
34358         * class.c (mono_debugger_class_init_func): New global function
34359         pointer variable.
34360         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
34361         call it.
34362
34363         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
34364         function.  This is called via the mono_debugger_class_init_func
34365         hook to add all types to the dynamic type table.
34366         (ves_icall_MonoDebugger_GetType): New interncall to get a class
34367         from its metadata token.
34368
34369         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
34370         New interncall for the debugger.
34371
34372 2002-09-24  Nick Drochak <ndrochak@gol.com>
34373
34374         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
34375         before using it in case it is null.
34376         
34377 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
34378
34379         * metadata.c: allow custom modifiers in local var signatures
34380         (bug spotted by Zoltan Varga).
34381
34382 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
34383
34384         * class.c: deal with the <Module> class that may have a NULL vtable.
34385         Eliminate warnings.
34386
34387 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
34388
34389         * image.c, image.h: more strong name helpers.
34390         * monosn.c: more work: convert pem keys to cryptoapi format.
34391
34392 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
34393
34394         * string-icalls.c: speedup IndexOf.
34395
34396 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
34397
34398         * icall.c: updates from Zoltan.2.Varga@nokia.com.
34399
34400 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
34401
34402         * icall.c: cleanup: use mono_object_domain ().
34403
34404 2002-09-23  Martin Baulig  <martin@gnome.org>
34405
34406         * debug-mono-symfile.c: Improved type support.
34407
34408 2002-09-22  Martin Baulig  <martin@gnome.org>
34409
34410         * debug-mono-symfile.c: Added support for reference types and strings.
34411
34412 2002-09-22  Martin Baulig  <martin@gnome.org>
34413
34414         * debug-mono-symfile.c: Started to work on the type table.
34415
34416 2002-09-21  Martin Baulig  <martin@gnome.org>
34417
34418         * debug-mono-symfile.c: Largely reworked the symbol table format.
34419         The symbol table is now incrementally updated each time a new
34420         method is added.  We're now also using our own magic and version
34421         so that you don't need to recompile all your classes if the
34422         dynamic table changes.
34423         (mono_debug_update_mono_symbol_file): Removed.
34424         (mono_debug_symfile_add_method): New function to add a method.
34425
34426 2002-09-21  Martin Baulig  <martin@gnome.org>
34427
34428         * icall.c
34429         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
34430         New interncall.
34431
34432         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
34433         New interncall to get a method from its metadata token.
34434
34435 2002-09-21  Martin Baulig  <martin@gnome.org>
34436
34437         * debug-mono-symfile.c: Create type table.
34438
34439 2002-09-20  Martin Baulig  <martin@gnome.org>
34440
34441         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
34442
34443 2002-09-20  Martin Baulig  <martin@gnome.org>
34444
34445         * debug-mono-symfile.c: Provide information about params and locals.
34446
34447 2002-09-20  Martin Baulig  <martin@gnome.org>
34448
34449         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
34450         New interncall.
34451
34452         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
34453         interncall to get a method from its metadata token.
34454
34455 2002-09-20  Martin Baulig  <martin@gnome.org>
34456
34457         * debug-mono-symfile.c: Added a few checks for method->header
34458         being non-NULL.  This should never happen, but for the moment
34459         let's use a g_warning() rather than a g_assert().
34460
34461 2002-09-19  Mark Crichton  <crichton@gimp.org>
34462
34463         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
34464         even if support for it isn't present.  Added an #ifdef to fix this.
34465
34466         * socket-io.c: Added checks back for Solaris support.
34467
34468 2002-09-19  Martin Baulig  <martin@gnome.org>
34469
34470         * debug-mono-symfile.c (read_string, write_string): Reflect latest
34471         changes in the symbol file format.
34472
34473 2002-09-18  Martin Baulig  <martin@gnome.org>
34474
34475         * debug-mono-symfile.c: Set version number to 21.
34476
34477 2002-09-18  Dick Porter  <dick@ximian.com>
34478
34479         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
34480         on netbsd.  Fixes bug 30051.
34481
34482 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34483
34484         * reflection.c:
34485         (set_version_from_string): little fix.
34486
34487 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
34488
34489         * monosn.c, Makefile.am: added strong name utility.
34490         * reflection.h, reflection.c: implemented delayed signing,
34491         locale, version and hash id assembly attributes.
34492
34493 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
34494
34495         * loader.c, metadata.c: load param attributes in signatures.
34496
34497 2002-09-16  Martin Baulig  <martin@gnome.org>
34498
34499         * debug-mono-symfile.c: Added string table with all method names.
34500
34501 2002-09-14  Martin Baulig  <martin@gnome.org>
34502
34503         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
34504         fast method lookup.
34505
34506 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
34507
34508         * reflection.c: record the public key token of referenced assemblies.
34509
34510 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
34511
34512         * image.c, image.h: added functions to get the strong name and the
34513         public key of an assembly.
34514         * pedump.c: use them.
34515
34516 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
34517
34518         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
34519
34520 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
34521
34522         * marshal.c (mono_marshal_get_managed_wrapper): Added
34523         MONO_TYPE_BOOLEAN 
34524
34525 2002-09-11  Martin Baulig  <martin@gnome.org>
34526
34527         * gc.c: Call GC_unregister_disappearing_link() on all links when
34528         finalizing them, this is necessary to aviod a crash in boehm's
34529         finalize handler.
34530
34531 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
34532
34533         * gc.c: handle GetTarget for finalized objects spotted and fixed by
34534         nick@chemlab.org.
34535
34536 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
34537
34538         * icall.c: implemented MonoType::Module.
34539         * reflection.c, reflection.h: mono_module_get_object () from
34540         Tomi Pakarinen <tomi.pakarinen@welho.com>.
34541
34542 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
34543
34544         * icall.c: ignore overridden methods in GetMethods ().
34545         Fix for FieldInfo::SetValue().
34546         * object.c: handle float/double in runtime invoke.
34547
34548 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
34549
34550         * object.c: allow a constructor to be called again on an object.
34551
34552 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
34553
34554         * class.h, class.c: move field layout code to it's own function and
34555         export it. Get an interface id earlier. Move fields in MonoClass
34556         so they are more cache friendly and align the bitfields.
34557         * loader.c: temporary handle get_param_names() for a runtime method.
34558         * reflection.c, reflection.h: more code to handle runtime creation of
34559         types.
34560
34561 2002-09-09  Martin Baulig  <martin@gnome.org>
34562
34563         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
34564         signature with the pinvoke field being set for the actual call.
34565
34566 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
34567
34568         * icall.c: removed some unused icalls. Start of map of glib charsets
34569         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
34570
34571 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
34572
34573         * debug-helpers.c: break infinite loop (found and fixed by
34574         Holger Arnold <harnold@gmx.de>).
34575
34576 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
34577
34578         * icall.c: target may be null in create_delegate.
34579
34580 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
34581
34582         * marshal.c: handle a boolean return type.
34583
34584 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
34585
34586         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
34587
34588 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
34589
34590         * gc.c: fix weakreferences.
34591
34592 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
34593
34594         * icall.c: added icall to get default codepage.
34595
34596 2002-09-03  Dick Porter  <dick@ximian.com>
34597
34598         * threads.h: 
34599         * threads.c: Use MonoThread instead of MonoObject where
34600         apropriate.
34601
34602         Store running thread objects in a hash table, so that we have all
34603         the info to hand when waiting for them to finish
34604         (means we don't need OpenThread() any more, so mingw builds should
34605         be fully functional again.)
34606
34607         * verify.c:
34608         * object.h: Added thread ID to MonoThread
34609
34610 2002-09-03  Martin Baulig  <martin@gnome.org>
34611
34612         * icall.c (System.Reflection.Assembly::get_location): New interncall.
34613
34614 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34615
34616         * icall.c: fixed leak in get_temp_path. Thanks lupus.
34617
34618 2002-09-03  Martin Baulig  <martin@gnome.org>
34619
34620         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
34621         argument to store the end address of the disassembled instruction.
34622
34623         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
34624         here from debug-symfile.h.
34625         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
34626         JIT into this struct.
34627         (MonoSymbolFile): Added `char *image_file' field.
34628         (MonoDebugGetMethodFunc): Removed.
34629         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
34630         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
34631         (mono_debug_find_method): New method.
34632
34633         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
34634         create a full symbol file.
34635         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
34636         and static symbol files.
34637         (mono_debug_find_method): The symbol file keeps an internal method hash,
34638         call this to get a MonoDebugMethodInfo from a MonoMethod.
34639
34640         * debug-symfile.[ch]: Removed.
34641
34642 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
34643
34644         * image.c (do_mono_image_open): Remove linker version check.
34645
34646 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
34647
34648         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
34649         wrappers for instance methods.
34650         
34651 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34652
34653         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
34654
34655 2002-08-28  Dick Porter  <dick@ximian.com>
34656
34657         * Makefile.am: Export HOST_CC for w32 builds
34658
34659 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
34660
34661         * file-io.c process.c: MonoString are null terminated, no
34662         need for mono_string_to_utf16() anymore.
34663
34664 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
34665
34666         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
34667
34668 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
34669
34670         * icall.c, reflection.h: speedup System.MonoType.
34671
34672 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
34673
34674         * reflection.c: allow null as the value of a string argument in
34675         custom attributes constructors.
34676
34677 2002-08-27  Martin Baulig  <martin@gnome.org>
34678
34679         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
34680         `trampoline_address' field.
34681
34682 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
34683
34684         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
34685         check (fixes bug #29486) 
34686
34687 2002-08-27  Martin Baulig  <martin@gnome.org>
34688
34689         * debug-mono-symfile.c: Changed the file format in a way that allows us
34690         open it read-only and to use a specially malloced area for all the
34691         dynamic data.  We can now also generate a symbol file on-the-fly if we're
34692         debugging IL code and there is no MCS generated symbol file for it.
34693
34694 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
34695
34696         * object.c: added a define for a good string and array
34697         creation speedup (not enabled by default because we need to deal with
34698         the synch stuff).
34699
34700 2002-08-26  Martin Baulig  <martin@gnome.org>
34701
34702         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
34703         function to create a dynamic symbol file.  This is used by the
34704         debugger to create a symbol file for IL code on-the-fly.
34705
34706 2002-08-26  Martin Baulig  <martin@gnome.org>
34707
34708         * loader.c (mono_lookup_pinvoke_call): Include the error message
34709         from g_module_error() in the error message.
34710
34711 2002-08-24  Martin Baulig  <martin@gnome.org>
34712
34713         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
34714         function to update the symbol file.  The symbol file is mmap()ed
34715         writable, but private.  This allows us to install the symbol file
34716         together with the assembly.
34717
34718 2002-08-24  Martin Baulig  <martin@gnome.org>
34719
34720         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
34721         but they can read the new symbol file format which mcs is now creating.
34722
34723         * debug-symfile.c (mono_debug_find_source_location): Moved to
34724         debug-mono-symfile.c; this is now operating on the new symbol file.
34725
34726 2002-08-23  Martin Baulig  <martin@gnome.org>
34727
34728         * debug-helpers.c (mono_method_desc_from_method): New function to get
34729         a MonoMethodDesc from a MonoMethod.
34730
34731 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
34732
34733         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
34734         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
34735
34736 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
34737
34738         * string-icalls.[ch]: make helper methods static.
34739
34740 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34741
34742         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
34743         types to it and to SetValueInternal.
34744
34745         * object.c: Moved handle_enum label to its proper place. This was the
34746         f... bug! ;-)
34747
34748         This time i compiled mcs and gtk-sharp and they both work.
34749
34750 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34751
34752         * icall.c: reverted partially my previous patch until 
34753         object.c:set_value handles enums correcly.
34754
34755 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34756
34757         * icall.c:
34758         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
34759         (ves_icall_System_Environment_get_MachineName): removed warning when
34760         compiling under cygwin.
34761
34762 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
34763
34764         * object.c: fixed field_get_value() for reference types.
34765
34766 2002-08-22  Dick Porter  <dick@ximian.com>
34767
34768         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
34769         Don't free a buffer while it's still needed.  Patch from Jonathan
34770         Liger <Jonathan.liger@wanadoo.fr>
34771
34772 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
34773
34774         * icall.c (ves_icall_System_Environment_get_Platform): Add new
34775         internal call.
34776
34777 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
34778
34779         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
34780         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
34781
34782         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
34783         we call unmanaged code which throws exceptions.
34784
34785 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
34786
34787         * appdomain.h: added per-domain entry_assembly.
34788         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
34789         arguments.
34790         * icall.c: Assembly::GetEntryAssembly icall.
34791         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
34792         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
34793
34794 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
34795
34796         * appdomain.h, gc.c: added mono_domain_finalize ().
34797
34798 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34799
34800         * object.c:
34801         (mono_print_unhandled_exception): changed g_warning by g_printerr
34802         because g_log has a 1024 characters limit (yeah, i got a big stack
34803         trace). Don't print exception name, that should be in ToString 
34804         returned string.
34805
34806 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34807
34808         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
34809         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
34810
34811 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34812
34813         * object.c:
34814         (mono_print_unhandled_exception): after previous commit, i realized
34815         that MS calls ToString on the exception. I changed this function to
34816         do that. This way we get stack_trace for free.
34817
34818 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34819
34820         * object.c:
34821         (mono_print_unhandled_exception): invoke Message property instead of
34822         getting 'message' field from Exception. Don't allocate memory for
34823         'trace' and 'message' if not needed.
34824
34825 2002-08-18  Dick Porter  <dick@ximian.com>
34826
34827         * unicode.c: Fix asserts to match Encoder.cs checks
34828
34829 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
34830
34831         * marshal.c: fix unaligned store issue and a few wrong
34832         opcode argument types.
34833
34834 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
34835
34836         * icall.c: added GetUninitializedObjectInternal internal call.
34837
34838 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
34839
34840         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
34841         to the right domain.
34842
34843 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
34844
34845         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
34846
34847         * class.c (class_compute_field_layout): set blittable to false for Strings
34848
34849         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
34850
34851 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
34852
34853         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
34854         first chunk of code to create types at runtime. Code to
34855         handle ReflectedType/DeclaringType. Make reflection handles
34856         domain specific.
34857
34858 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
34859
34860         * class.c: set correct name in arrays.
34861
34862 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
34863
34864         * appdomain.c (mono_domain_transfer_object): make it work with
34865         valuetypes. bug fixes.
34866
34867 2002-08-12  Dick Porter  <dick@ximian.com>
34868
34869         * object.h: Rename some parameters to avoid c++ keywords (Patch
34870         from Joseph Wenninger <kde@jowenn.at>)
34871
34872 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
34873
34874         * icall.c: added icall to implement Assembly.GetFile*.
34875
34876 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
34877
34878         * reflection.h, reflection.c: code to embed managed resources.
34879
34880 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
34881
34882         * class.c: move all the type size stuff into
34883         class_compute_field_layout().
34884
34885 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
34886
34887         * class.c: ensure enums have always the correct instance size.
34888         * unicode.c: remove wrong assert.
34889
34890 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
34891
34892         * assembly.c: fix mem corruption issue.
34893         * image.h, image.c: added mono_image_get_resource () to access
34894         managed resources.
34895         * icall.c: implemented Assembly.EntryPoint property and some
34896         Managed Resources related internalcalls.
34897
34898
34899 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
34900
34901         * image.c, image.h: impemented mono_image_get_entry_point ().
34902         * appdomain.c: use mono_image_get_entry_point.
34903
34904 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
34905
34906         * reflection.c: support the object type argument when loading
34907         custom attributes.
34908
34909 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
34910
34911         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
34912         String as return type.
34913
34914 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
34915
34916         * reflection.c: fix encoding of named args for custom attrs to match
34917         the ms implementation. Read them back when instantiating custom
34918         attributes.
34919
34920 2002-08-02  Radek Doulik  <rodo@ximian.com>
34921
34922         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
34923         by Dietmar as quick fix
34924         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
34925         16 as stack size, used on more places as quick fix before Dietmar
34926         will fix it properly
34927
34928 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
34929
34930         * object.h, object.c: added accessors for fields and properties.
34931
34932 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
34933
34934         * class.c, class.h: made mono_class_get_field_from_name ()
34935         loop on parent types.
34936         Added mono_class_get_property_from_name ().
34937
34938 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
34939
34940         * class.c, class.h: move the code to setup the type vtable in its own
34941         function so that it can be reused also for types created at runtime.
34942         Eliminate the "class" identifier from the header file.
34943         * reflection.c: setup the vtable for enums so that we can create
34944         objects for use in SetConstant ().
34945
34946 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
34947
34948         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
34949         instead of the delegate itself as this pointer (bug #28383)
34950
34951 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
34952
34953         * marshal.c (mono_marshal_get_managed_wrapper): added return type
34954         conversions.
34955
34956 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
34957
34958         * loader.c: don't set the pinvoke bit on icalls.
34959
34960 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
34961
34962         * debug-helpers.c (mono_method_full_name): only print a number to
34963         indicate wrapper type (so that the output is more readable in traces).
34964
34965 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
34966
34967         * class.c (mono_class_init): include method override patch from Paolo
34968
34969 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
34970
34971         * icall.c: fixed GetTypeCode().
34972
34973 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
34974
34975         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
34976         use real delegate invoke function to make it work with multicast
34977         delegates (fix bug# 28291).
34978
34979 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
34980
34981         * object.c: load constant strings.
34982
34983 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
34984
34985         * reflection.c: no magic numbers.
34986         * tabledefs.h: security action enum.
34987
34988 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
34989
34990         * assembly.c: fix possible memory corruption.
34991
34992 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
34993
34994         * reflection.h, reflection.c: added support for linking resources.
34995         * verify.c: check we have an updated corlib.
34996
34997 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
34998
34999         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
35000         string arrays.
35001         (mono_marshal_string_array): null terminate unmanaged string arrays.
35002         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
35003
35004 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
35005
35006         * icall.c: Type.GetType () can now return also types from the
35007         calling assembly.
35008
35009 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
35010
35011         * loader.h, loader.c: stack walking support.
35012         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
35013         GetCallingAssembly.
35014
35015 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
35016
35017         * marshal.c: added optimisations for blittable types 
35018
35019         * class.c (mono_array_class_get): do not set blittable attribute on arrays
35020         (mono_class_setup_mono_type): set blittable attribute for single
35021         and double.
35022
35023         * marshal.c (mono_string_utf8_to_builder): impl.
35024         (mono_string_builder_to_utf8): impl.
35025         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
35026
35027 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
35028
35029         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
35030         (mono_marshal_get_managed_wrapper): impl. byref types
35031
35032 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35033
35034         * icall.c:
35035         (search_method): don't display debug message. 
35036
35037 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
35038
35039         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
35040
35041 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
35042
35043         * appdomain.c: set the missing filename when throwing exception.
35044
35045 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
35046
35047         * metadata.c (mono_type_size): code cleanup
35048         (mono_type_stack_size): removed some test code
35049
35050 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
35051
35052         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
35053         mono_get_exception_file_not_found now.
35054
35055         * exception.c (mono_exception_from_name_two_strings): New version
35056         that will call a constructor with two string arguments. 
35057         (mono_get_exception_file_not_found): New helper routine, used to
35058         report file-not-found errors.
35059
35060 2002-07-20  Dick Porter  <dick@ximian.com>
35061
35062         * process.h:
35063         * process.c: Pass file handles to CreateProcess
35064         
35065         * icall.c:
35066         * file-io.h:
35067         * file-io.c: Implemented CreatePipe
35068
35069 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
35070
35071         * metadata.c (mono_get_param_info): set alignment for value types
35072
35073 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
35074
35075         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
35076         Constify mono_domain_assembly_open().
35077         * loader.c: handle null namespace in icalls.
35078
35079 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
35080
35081         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
35082         (emit_str_to_ptr_conv): marshal object as structs
35083
35084         * metadata.c (mono_type_to_unmanaged): marshal object as structs
35085
35086         * marshal.c (mono_marshal_get_runtime_invoke): support value types
35087
35088 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
35089
35090         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
35091         (mono_marshal_get_native_wrapper): we an now return value types
35092
35093 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
35094
35095         * verify.c: more checks implemented.
35096
35097 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
35098
35099         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
35100         (fix bug #27695)
35101         (mono_marshal_get_native_wrapper): allow byref arguments
35102         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
35103         impl. PtrToStringXXX methods
35104         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
35105         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
35106         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
35107         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
35108         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
35109
35110 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
35111
35112         * reflection.c: fix buglet in parsing an assembly name.
35113
35114 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
35115
35116         * marshal.c (emit_ptr_to_str_conv): first impl.
35117
35118 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
35119
35120         * object.c, class.h: cache the vtable in the class as suggested by
35121         vargaz@freemail.hu (Zoltan Varga).
35122
35123 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
35124
35125         * class.h, loader.c: added mono_field_from_token().
35126         * verify.c: first cut of type checking code.
35127
35128 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
35129
35130         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
35131
35132 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
35133
35134         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
35135         (fix bug #27782)
35136         (mono_marshal_get_remoting_invoke): impl.
35137         (mono_delegate_begin_invoke): impl.
35138         (mono_mb_emit_save_args): impl.
35139         (mono_delegate_end_invoke): impl.
35140         (mono_marshal_get_delegate_begin_invoke):
35141         (mono_marshal_get_delegate_end_invoke):
35142         (mono_marshal_get_delegate_invoke): generate a special name for
35143         those methods (including the signature) and associate them whith
35144         the delegate class. 
35145
35146 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
35147
35148         * reflection.[ch]: 
35149         (mono_reflection_type_from_name): now it has a MonoImage parameter
35150         which is used as the default image to search the type in. If the image
35151         is NULL or getting the type from it fails, it defaults to corlib.
35152
35153         * icall.c: changed 1 call to mono_reflection_type_from_name to match
35154         new parameter.
35155
35156 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
35157
35158         * reflection.c: update the parameter table index.
35159
35160 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
35161
35162         * domain.c: don't include the mark byte in the string hash.
35163
35164 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
35165
35166         * icall.cs: icall for Type.GetTypeCode ().
35167         * verify: a couple of fixes and disabled local initialization checks.
35168
35169 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
35170
35171         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
35172
35173         * debug-helpers.c (mono_method_full_name): print the type of the
35174         runtime wrapper
35175
35176         * metadata.c (mono_signature_hash): a hash function for signatures
35177         (mono_signature_hash): better hash algorithm
35178
35179         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
35180
35181         * debug-helpers.c (mono_method_full_name): this can now generate
35182         method names with signatures
35183
35184         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
35185         method dont have this pointers.
35186
35187 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
35188
35189         * reflection.c: fixup typebuilder tokens.
35190         * image.c: fix buglet.
35191         * marshal.h: remove whitespace.
35192         * metadata.h, metadata.c: reinstate code that was removed.
35193         * verify.c: handle catch directives and fix another couple of bugs.
35194
35195 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
35196
35197         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
35198         (mono_marshal_get_native_wrapper): make it comp. with the old code
35199         (mono_marshal_get_native_wrapper): support boolean
35200         (mono_marshal_get_managed_wrapper): support more types
35201
35202 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
35203
35204         * class.c (class_compute_field_layout): compute class->blittable attribute.
35205
35206 2002-07-09  Dick Porter  <dick@ximian.com>
35207
35208         * threads.c: Make the thread cleaning up cope with threads that
35209         call ExitThread()
35210
35211 2002-07-08  Radek Doulik  <rodo@ximian.com>
35212
35213         * reflection.c (method_encode_code): use non-translated values to
35214         compute finally_start, this fixes exception handling on ppc, yay!
35215
35216         * decimal.h (struct signscale): fix endianess
35217
35218 2002-07-07  Radek Doulik  <rodo@ximian.com>
35219
35220         * reflection.c: swap box_val and not val
35221
35222 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
35223
35224         * reflection.c, reflection.h: handle full assembly info in type name.
35225         Handle Type arguments when loading custom attributes.
35226         * icall.c: updated to use new mono_reflection_type_from_name () method.
35227
35228 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35229
35230         * loader.c:
35231         (method_from_memberref): also print assembly name when method not found.
35232
35233 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35234
35235         * icall.c:
35236         (ves_icall_TypeGetProperties): fixed bug #27473. 
35237
35238 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35239
35240         * reflection.c: display image name and token when cannot find the
35241         .ctor for an attribute.
35242
35243 2002-07-05  Martin Baulig  <martin@gnome.org>
35244
35245         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
35246
35247 2002-07-04  Dick Porter  <dick@ximian.com>
35248
35249         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
35250         compile on mingw.  This will cause mingw builds to not wait for
35251         subthreads to terminate after the main thread does.  I've lodged a
35252         bug with the mingw developers for them to wrap OpenThread().
35253
35254 2002-07-03  Dick Porter  <dick@ximian.com>
35255
35256         * threads.c: Store thread IDs instead of handles, because
35257         GetCurrentThread() returns a pseudohandle and therefore stores
35258         useless values.  mono_thread_cleanup() continues checking the
35259         array of threads until it is empty, to cope with subthreads
35260         spawning new threads after the main thread has finished.
35261
35262         * profiler.h:
35263         * profiler.c:
35264         * profiler-private.h: Pass the thread ID to thread profiler
35265         functions, instead of a handle
35266
35267 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
35268
35269         * verify.c: fixes to make it more usable.
35270         * pedump.c: added --verify code to verify IL code in an assembly.
35271
35272 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
35273
35274         * reflection.c: turn errors into warnings to allow compiling corlib.
35275
35276 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
35277
35278         * reflection.c: add special cases to compile corlib.
35279
35280 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
35281
35282         * reflection.c: handle properties with only a set method.
35283
35284 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
35285
35286         * opcodes.h: add enum with opcodes in opval order.
35287
35288 2002-07-01  Dick Porter  <dick@ximian.com>
35289         
35290         * object.h:
35291         * object.c (mono_runtime_run_main): Removed unneeded argument
35292
35293 2002-06-28  Martin Baulig  <martin@gnome.org>
35294
35295         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
35296
35297 2002-06-27  Dick Porter  <dick@ximian.com>
35298
35299         * threads.c: Store the handle in both the parent thread and in the
35300         subthread, to minimise the time between starting a new thread and
35301         storing its ID.
35302
35303 2002-06-26  Dick Porter  <dick@ximian.com>
35304
35305         * appdomain.c (mono_runtime_cleanup): Close the socket library
35306         after all the threads have finished, not before
35307
35308 2002-06-26  Martin Baulig  <martin@gnome.org>
35309
35310         * debug-symfile.c (mono_debug_find_source_location): Added
35311         `guint32 *line_number' argument.  If it's not NULL, store the line number
35312         there and return the file name without the line number.
35313
35314 2002-06-25  Dick Porter  <dick@ximian.com>
35315
35316         * icall.c:
35317         * process.h:
35318         * process.c: Process forking and other support functions
35319
35320 2002-06-25  Dick Porter  <dick@ximian.com>
35321
35322         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
35323         things dont happen when the image is closed.
35324         (mono_image_lookup_resource): Walk the resource section looking
35325         for a particular entry
35326
35327         * cil-coff.h: PE resource section decoding
35328
35329 2002-06-25  Dick Porter  <dick@ximian.com>
35330         
35331         * assembly.h:
35332         * assembly.c: 
35333         (mono_assembly_foreach): Accessor functions to walk the list of
35334         loaded assemblies
35335         (mono_assembly_set_main):
35336         (mono_assembly_get_main): Process methods need to know which
35337         assembly is the "main" one
35338
35339         * object.c (mono_runtime_run_main): Record the main assembly
35340
35341         * debug-helpers.c: Fix typo
35342
35343 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
35344
35345         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
35346         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
35347
35348 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
35349
35350         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
35351
35352 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
35353
35354         * image.c (do_mono_image_open): Initialize reference count,
35355         otherwise we leak the MonoImage.
35356
35357 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
35358
35359         * reflection.c: small tweak to handle self-hosting.
35360
35361 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
35362
35363         * reflection.c: fix type name parse code.
35364
35365 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
35366
35367         * reflection.c: break out of the loop.
35368         * image.c: special case corlib.
35369
35370 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
35371
35372         * reflection.c: add all the custom attrs at the end to ensure the
35373         ctors have been properly initialized when the attributes are defined
35374         in the current assembly.
35375
35376 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
35377
35378         * reflection.c: handle correctly multiple-nested types.
35379
35380 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
35381
35382         * row-indexes.h: fix typos.
35383         * reflection.c: adjust for typos and fix method_def_or_ref
35384         encoding in MethodImpl table.
35385
35386 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
35387
35388         * reflection.c: fix entry point patching (thanks Serge!).
35389
35390 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
35391
35392         * verify.c: add check for System.Exception
35393
35394 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
35395
35396         * image.c, class.c: minifix for code just c&p'ed.
35397         * reflection.c: warning fix.
35398         * object.h, loader.h, domain.c: load also StringBuilder.
35399
35400 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
35401
35402         * marshal.h, marshal.c: some support code to handle complex marshaling.
35403
35404 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
35405
35406         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
35407         Better signatures with vtable error dump.
35408
35409 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
35410
35411         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
35412
35413 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
35414
35415         * icall.c (ves_icall_Type_GetField): impl.
35416
35417 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
35418
35419         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
35420         to retrieve a marshal description blob for a field or param.
35421
35422 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
35423
35424         * reflection.h, reflection.c: change order of nested type emission
35425         to avoid table corruption. The NestedTypes table is sorted.
35426         * icall.c: change order of GetConstructor results to workaround mcs bug.
35427
35428 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
35429
35430         * reflection.h, reflection.c: handle field and param marshal
35431         information.
35432
35433 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
35434
35435         * icall.c, marshal.c marshal.h: more Marshal class implementation.
35436
35437 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
35438
35439         * reflection.c: fix call convention.
35440
35441 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
35442
35443         * reflection.h, reflection.c: mono_image_get_memberref_token()
35444         takes a type instead of a class, now. Added
35445         mono_image_get_array_token() to create tokens for the special
35446         multi-dim array methods.
35447
35448 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
35449
35450         * assembly.c: handle modules (no assembly table). Split
35451         loading references in its own function.
35452         * class.c: handle moduleref resolution scope.
35453         * image.c, image.h: cache module name in image.
35454
35455 2002-06-07  Martin Baulig  <martin@gnome.org>
35456
35457         * reflection.c (mono_image_get_type_info): Only add a class layout entry
35458         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
35459
35460 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
35461
35462         * icall.c: more signature fixes that used uint instead of int.
35463
35464 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
35465
35466         * reflection.c: fixed signature of field refs.
35467
35468 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
35469
35470         * class.c, reflection.c: handle typerefs of nested types
35471         (both on read and when writing files).
35472
35473 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
35474
35475         * icall.c: fix method signatures that tried to workaround the previous
35476         typo, d'oh!
35477
35478 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
35479
35480         * debug-helpers.c: fix typo.
35481
35482 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
35483
35484         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
35485         rewrote the PE/COFF writing code (our programs are understood by the
35486         ms runtime, now).
35487
35488 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
35489
35490         * gc.c, gc.h, icall.c: weakreference support.
35491
35492 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
35493
35494         * Makefile.am, mono-config.c: use $(sysconfdir).
35495
35496 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
35497
35498         * icall.c: changed default precision of Double.ToString() to 15.
35499         Fixed memory leak. Unified with Single.ToString.
35500
35501 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
35502
35503         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
35504
35505 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
35506
35507         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
35508         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
35509         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
35510         and myself.
35511
35512 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
35513
35514         * debug-symfile.c, sysmath.c: yet more compilation fixes.
35515
35516 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
35517
35518         * reflection.c, socket-io.c: more compilation fixes.
35519
35520 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
35521
35522         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
35523         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
35524         unicode.c: warning and compiler compatibility fixes.
35525
35526 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
35527
35528         * class.h, metadata.c: fixed warnings/compilation errors.
35529
35530 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
35531
35532         * Makefile.am, mono-config.c, mono-config.h: configuration file
35533         support routines.
35534         * loader.c, loader.h: make Dll mapping configurable at runtime in the
35535         config file. Export methods to insert and lookup mappings.
35536
35537 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
35538
35539         * reflection.c: handle types and boxed objects in custom attr
35540         constructors.
35541
35542 2002-05-30  Martin Baulig  <martin@gnome.org>
35543
35544         * debug-symfile.c
35545         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
35546
35547 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
35548
35549         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
35550         to lookup the implmap row for a P/Invoke method.
35551         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
35552         P/Invoke method from the runtime on an as needed basis.
35553
35554 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
35555
35556         * metadata.c (mono_metadata_parse_signature): impl.
35557
35558 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
35559
35560         * class.c: handle .pack directive.
35561
35562 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
35563
35564         * object.c: initialize static fields with RVA data.
35565
35566 2002-05-25  Martin Baulig  <martin@gnome.org>
35567
35568         * debug-symfile.c
35569         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
35570
35571 2002-05-24  Martin Baulig  <martin@gnome.org>
35572
35573         * debug-symfile.c
35574         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
35575         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
35576         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
35577
35578 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
35579
35580         * object.c: special case string ctros in invoke.
35581         * gc.c: silly whitespace changes.
35582
35583 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
35584
35585         * threadpool.[ch]: impl. a threadpool that can
35586         be used by mint and mono.
35587
35588 2002-05-22  Martin Baulig  <martin@gnome.org>
35589
35590         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
35591         The first argument is now a `MonoReflectionModuleBuilder *', the return
35592         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
35593         `methods' field to get the method builder.  The `token' argument is the
35594         unfixed token.
35595
35596         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
35597         invalid characters instead of g_assert_not_reached()ing.  This seems
35598         to be the behaviour of mscorlib.
35599
35600 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
35601
35602         * object.c (mono_runtime_invoke_array): applied patch from Rachel
35603         Hestilow to fix bug #25104
35604
35605 2002-05-21  Martin Baulig  <martin@gnome.org>
35606
35607         * debug-symfile.c (mono_debug_find_source_location): New function.
35608         Looks up an IL offset in the line number table and returns the source
35609         location as a string.
35610
35611 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35612
35613         * icall.c:
35614         (mono_double_ToStringImpl): changed %f by %g until we have something
35615         better.
35616
35617 2002-05-21  Nick Drochak  <ndrochak@gol.com>
35618
35619         * icall.c : Use different name for Math.Pow's icall.  Needed to check
35620         parameters first in C#.
35621
35622 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
35623
35624         * icall.c, reflection.h: added icall to get info about an event.
35625
35626 2002-05-20  Radek Doulik  <rodo@ximian.com>
35627
35628         * object.c (mono_value_box): don't use memcpy for boxing on BIG
35629         endian
35630         (mono_value_box): don't use memcpy for small sizes on
35631         architectures with unaligned access
35632
35633 2002-05-20  Martin Baulig  <martin@gnome.org>
35634
35635         * reflection.c (mono_reflection_setup_internal_class): Don't crash
35636         if `tb->parent == NULL'.
35637         (mono_reflection_create_internal_class): New function.  This is
35638         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
35639         for enum types.
35640
35641         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
35642         New interncall.
35643
35644 2002-05-19  Martin Baulig  <martin@gnome.org>
35645
35646         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
35647         argument to get the length, don't default to the array length.
35648
35649 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
35650
35651         * assembly.c (mono_assembly_setrootdir): New function used to
35652         override the MONO_ASSEMBLIES directory.
35653
35654 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
35655
35656         * icall.c: ValueType_GetHashCode() initialize local var.
35657
35658 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
35659
35660         * reflection.c: sort custom attributes table.
35661
35662 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
35663
35664         * reflection.c: support named args in custom attributes (write support).
35665
35666 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
35667
35668         * reflection.c: fix finally position calculation.
35669
35670 2002-05-15  Radek Doulik  <rodo@ximian.com>
35671
35672         * reflection.c: fixed endianess at many places
35673
35674         * icall.c (ves_icall_InitializeArray): comment out debug msg
35675
35676 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
35677
35678         * object.c (mono_unhandled_exception): new function to handle
35679         unhandled exceptions.
35680         (mono_unhandled_exception): call the UnhandledException event.
35681         (mono_runtime_delegate_invoke): impl.
35682
35683 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
35684
35685         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
35686         returns the RVA, not the direct pointer to the data. Handle the case
35687         when the class size is fixed.
35688
35689 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
35690
35691         * reflection.c: fix some endianess issues.
35692
35693 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
35694
35695         * object.c (mono_runtime_invoke): is now able to catch exceptions.
35696
35697         * threads.c (mono_thread_init): added a callback which is invoked
35698         at thread start.
35699
35700 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
35701         
35702         * icall.c: make GetHashCode return non-negative values.
35703
35704 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
35705
35706         * object.c, icall.c, gc.c: revert to address-based hashcode.
35707
35708 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
35709
35710         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
35711
35712 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
35713
35714         * icall.c, class.c: special case <Module>.
35715
35716 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
35717
35718         * icall.c: fix bug in GetNow().
35719
35720 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
35721
35722         * object.c (mono_runtime_class_init): make sure that we call all
35723         static class constructors.
35724
35725 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
35726
35727         * reflection.c: sort methodsemantics table.
35728
35729 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
35730
35731         * reflection.h, reflection.c: honour init locals setting.
35732
35733 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
35734
35735         * icall.c: copied Double ToStringImpl for Single ToStringImpl
35736
35737 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
35738
35739         * reflection.c: support ContructorBuilders in attribute blob creation.
35740
35741 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
35742
35743         * reflection.c: some changes to build a binary that can be run
35744         directly in windows.
35745
35746 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
35747
35748         * loader.c: print a big message when an icall can't be found.
35749
35750 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35751
35752         * string-icalls.c: fix bug 24248.
35753
35754 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
35755
35756         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
35757         icall.c, reflection.h: separate assembly loading by pathname and by
35758         assembly name. Use the MONO_PATH env var to search for assemblies.
35759
35760 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
35761
35762         * assembly.c, image.h: add some support for assemblies
35763         with multiple modules.
35764         * class.c, class.h: export mono_class_from_typeref().
35765         * loader.c: remove duplicated code and use mono_class_from_typeref(),
35766         instead.
35767
35768 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
35769
35770         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
35771         documentation says (the ECMA one is correct).
35772
35773 2002-05-02  Dick Porter  <dick@ximian.com>
35774
35775         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
35776         Don't name the synchronisation mutex.
35777
35778 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
35779
35780         * rand.c
35781         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
35782         Make the prototypes match.
35783         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
35784         Same.
35785
35786         * icall.c
35787         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
35788         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
35789         all systems have tm.tm_zone, so use strftime() with %Z to print
35790         the timezone abreviation into a temp string.
35791
35792         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
35793         rather than mono_array_addr() on a MonoString on Big Endian
35794         machines.
35795
35796 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
35797
35798         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
35799         fix bug 24041
35800
35801 2002-04-30  Dick Porter  <dick@ximian.com>
35802
35803         * socket-io.c: Cope with SOCKET being an integer rather than a
35804         pointer now.
35805
35806         * threads.c: Added Thread_free_internal, to deal with thread
35807         handle cleanup.  Moved calls to handle_store() and handle_remove()
35808         to start_wrapper(), so each can only be called once.  Allocate
35809         synchronisation blocks with GC_malloc(), and use GC finalisation
35810         to close the handles.
35811
35812         * icall.c: added System.Threading.Thread::Thread_free_internal
35813
35814 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
35815
35816         * icall.c: support Environment.Exit, CommandLineArgs().
35817
35818 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
35819
35820         * object.c, object.h: added mono_runtime_run_main () and
35821         mono_runtime_get_main_args () for use in System.Environment.
35822
35823 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
35824
35825         * gc.c: fix thinko, enable actual finalization since the jit is now
35826         fixed.
35827
35828 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
35829
35830         * gc.c, object.c: take into account that an object may be offset wrt the address
35831         returned by GC_malloc().
35832
35833 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
35834
35835         * image.c: handle files without entries in the assembly table (modules).
35836
35837 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
35838
35839         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
35840         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
35841         allowed to be null when it's System.Object class setup.
35842
35843 2002-04-27  Martin Baulig  <martin@gnome.org>
35844
35845         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
35846         if `tb->parent == NULL' rather than crashing.
35847
35848 2002-04-28  Nick Drochak  <ndrochak@gol.com>
35849
35850         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
35851         calling acos() where asin() should have been called.
35852
35853 2002-04-26  Martin Baulig  <martin@gnome.org>
35854
35855         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
35856         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
35857         there's a subdirectory called `System', but we don't want to read that
35858         subdirectory as an assembly.
35859
35860 2002-04-25  Martin Baulig  <martin@gnome.org>
35861
35862         * debug-symfile.c: Reflect latest MonoString changes.
35863
35864 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
35865
35866         * rand.c, rand.h: instance method icalls need to have an explicit
35867         this pointer as first argument in the C implementation.
35868
35869 2002-04-25  Nick Drochak <ndrochak@gol.com>
35870
35871         * icall.c: Fix typo in map for GetNonZeroBytes
35872
35873 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
35874
35875         * string-icalls.c : String does now passes unit tests without any 
35876         errors, the following changes has been made:
35877         
35878         Implemented replace methods.
35879         Renaming of methods to (try) follow the standard.
35880         Fixed compare ordinal
35881         Made all memory allocated directly to function instead of via icall function.
35882         Small performance fix in is_in_array function
35883                         
35884  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
35885
35886         c (mono_string_Internal_ctor_charp_int_int):
35887         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
35888         sindex < 0, throw ArgumentOutOfRangeException instead of
35889         ArgumentNullException.
35890
35891         Added new check for length == 0, however
35892         I need to make it return String.Empty from the C code.
35893         
35894         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
35895         that calculate the length for us here.
35896         
35897         (mono_string_Internal_ctor_sbytep_int_int): Replaced
35898         mono_string_new_utf16 with mono_string_new, since value is utf8.
35899
35900 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
35901
35902         * object.c: register the object for finalization if needed.
35903         Allocate one more char in the string for the terminating 0 char.
35904
35905 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
35906
35907         * class.c, class.h, image.c: check if a type implemenst a destructor.
35908         Use the proper key for array class lookups.
35909         * icall.c: register the icalls in the System.GC class.
35910         * gc.c, gc.h: GC-related functions and icalls.
35911
35912 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35913
35914         * icall.c:
35915         * socket-io.c:
35916         * unicode.c: free some strings gotten from mono_string_to_utf8 and
35917         changed a couple of free () by g_free ().
35918
35919         * decimal.c: one-liner in the comments for decimal2string ().
35920
35921 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
35922
35923         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
35924
35925 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
35926
35927         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
35928         * object.c (mono_runtime_invoke_array) : handle null in params
35929
35930 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
35931
35932         * string-icalls.c: fixed bug in split (one off bug)
35933
35934 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
35935
35936         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
35937         * icalls.c: added String::Equals as internal method
35938
35939 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
35940
35941         * threads.c: fixed bug in the double interlocked functions
35942
35943 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
35944
35945         * threads.c: implemented all of the new interlocked icalls.
35946         * string-icalls.c: fix a bug in insert.
35947         * icalls.c: added the icalls for interlocked, removed old string functions.
35948         
35949 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
35950
35951         * loader.c: fix off-by-one error when reading argument names.
35952
35953 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
35954
35955         * profiler.c: win32 counter implementation (untested).
35956         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
35957         (the latter needs testing and more complete impl. from win32 folks).
35958
35959 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
35960
35961         * object.c: mono_array_new_full workaround mono_array_class_get
35962         problem.
35963
35964 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
35965
35966         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
35967         * object.h (mono_string_chars): Changed casting type.
35968
35969 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
35970
35971         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
35972                            method signatures to use gunichar2 instead of gint16.
35973
35974 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
35975
35976         * object.h, object.c: domain-specific versions of mono_object_new and
35977         mono_array_new.
35978
35979 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
35980
35981         * object.c: changed String layout
35982
35983         * string-icalls.c (mono_string_Internal_ctor_chara): added
35984         internal string constructors.
35985
35986 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
35987
35988         * threads.c: pass 'this' to the thread start routine.
35989
35990 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
35991
35992         * string-icalls.c: fix IndexOf and LastIndexOf. Now
35993         InternalCompareStr don't call twice mono_string_cmp_char for the last
35994         character. Improved performance in mono_string_cmp_char.
35995
35996 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
35997
35998         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
35999         code into its own library: libmonoruntime.
36000
36001 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
36002
36003         * object.h, object.c: changed array format so that szarrays do not
36004         require a bounds structure.
36005         * icall.c, appdomain.c: support for new szarray format.
36006
36007 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
36008
36009         * metadata.c: compare also the retuns type when comparing signatures:
36010         we didn't do this as an optimization since really overloaded methods
36011         must differ also in the arguments, but this doesn't work with
36012         low-level IL code (or when using explicit conversion operators: see
36013         bug#23498 for an example).
36014
36015 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
36016
36017         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
36018
36019 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
36020
36021         * icall.c: make MonoType::GetElementType its own icall.
36022
36023 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
36024
36025         * icall.c: remove MonoMethod_get_Name().
36026         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
36027         object.
36028
36029 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
36030
36031         * string-icalls.c: optimized a few methods.
36032
36033 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
36034
36035         * icall.c: added all new string internal calls
36036         * string-icalls.c: added, new string internal call implementation.
36037         * object.c: added mono_string_new_size for allocating a string a size
36038
36039 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
36040
36041         * object.c (mono_object_isinst): use the same code as in the
36042         optimized x86 version.
36043
36044 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
36045
36046         * profiler.c: TSC-based timer code (faster and more accurate).
36047         Not hooked up in configure, yet (set USE_X86TSC to 1).
36048
36049 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
36050
36051         * profiler.c, profiler.h: track time spent compiling methods.
36052         * threads.c: track thread creation/destruction.
36053
36054 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
36055
36056         * profiler.c, profiler.h, profiler-private.h: profiling interface
36057         and sample implementation. Moved here so that it can be used also by
36058         the jit.
36059
36060 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
36061
36062         * reflection.c, reflection.h: keep types and other handles separate in
36063         the hash tables for referred tokens. Add guid for modules.
36064
36065 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
36066
36067         * assembly.c: fix bugs found with valgrind.
36068         * metadata.h, metadata.c: added mono_metadata_guid_heap().
36069
36070 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
36071
36072         * threads: added icall support for getting current domain for
36073                    the thread.
36074  
36075 2002-04-13  Martin Baulig  <martin@gnome.org>
36076
36077         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
36078         (MonoDebugVarInfo): Added `index' field for register based addresses.
36079         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
36080         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
36081         `MonoDebugVarInfo *params' and `guint32 this_offset' with
36082         `MonoDebugVarInfo *this_var'.
36083
36084         * debug-symfile.c (relocate_variable): New static function to write
36085         a location description for a local variable or method parameter.
36086
36087 2002-04-12  Martin Baulig  <martin@gnome.org>
36088
36089         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
36090         stack offset and begin/end scope address of a local variable.
36091         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
36092         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
36093         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
36094
36095         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
36096         Added new relocation types for start/end scope of a local variable.
36097
36098 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
36099
36100         * object.h: add mono_object_domain() macro.
36101         * reflection.c: handle typespecs.
36102         * icall.c: MonoMethod::get_Name() implementation.
36103
36104 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
36105
36106         * icall.c: String::GetHashCode() icall implementation.
36107
36108 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
36109
36110         * icall.c: String::IndexOfAny icall.
36111         * object.c, object.h: make array->max_length more useful.
36112         Intrduced mono_object_class() and mono_string_length() macros.
36113
36114 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
36115
36116         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
36117         instead of g_unichar_isdigit.
36118
36119 2002-04-11  Nick Drochak  <ndrochak@gol.com>
36120
36121         * icall.c: Implement a simple Double.ToString().
36122
36123 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
36124
36125         * appdomain.h: only io-layer.h is supposed to be included.
36126         * icall.c: explicitly import environ. Fix warning.
36127
36128 2002-04-10  Nick Drochak  <ndrochak@gol.com>
36129
36130         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
36131                 return true even if it's not Daylight Savings time.
36132                 Only return false for the case where the function isn't
36133                 implemented for a plaform (read Windows).
36134
36135 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
36136
36137         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
36138         data with a mutex.
36139
36140 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
36141
36142         * mempool.c (mono_mempool_alloc): only use g_malloc when
36143         absolutely necessary.
36144
36145 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
36146
36147         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
36148
36149         * class.c (mono_class_vtable): use domain mempool to allocate vtable
36150         (mono_class_proxy_vtable): use domain mempool
36151
36152 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
36153
36154         * appdomain.h, appdomain.c: split initialization that requires the
36155         execution engine support into mono_runtime_init().
36156
36157 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
36158
36159         * class.c (mono_class_init): don't include vtable inside MonoClass
36160         to save some memory, gather some statistics.
36161         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
36162
36163 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
36164
36165         * icall.c: internalcall implementation for ValueType.Equals().
36166
36167 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
36168
36169         * object.c (mono_message_init): moved 
36170         (mono_runtime_exec_main): new arch. independent impl.
36171         (mono_runtime_invoke_array): new method - like
36172         mono_runtime_invoke, but you can pass an array of objects.
36173         (mono_remoting_invoke): new arch. independent impl.
36174         (mono_message_invoke): new arch. independent impl.
36175         (mono_runtime_class_init): new arch. independent impl.
36176         (mono_runtime_object_init): new arch. independent impl.
36177
36178 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
36179
36180         * metadata.c, object.c, reflection.c: documented the exported
36181         functions.
36182
36183 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
36184
36185         * icall.c: simpler code to pass the assembly builder data to corlib.
36186         Implement GetNestedTypes() internalcall.
36187
36188 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
36189
36190         * class.c: warn if a type can't be loaded.
36191
36192 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
36193
36194         * image.h: typedef MonoImageOpenStatus
36195         * types.h: removed unused file
36196         
36197 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
36198
36199         * icall.c: Enum_ToObject accepts enum value arguments.
36200
36201 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
36202
36203         * class.c: move initialization of properties, events and nested
36204         classes, so that they happen for interfaces, too.
36205
36206 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
36207
36208         * icall.c: cleanup some ugly casts in Array_SetValue*.
36209
36210 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
36211
36212         * icall.c: the values array fro enums is of the correct type, now.
36213         Implement (correctly) getFullName instead of assQualifiedName for
36214         MonoType.
36215         * reflection.h, reflection.c: added mono_type_get_name ().
36216
36217 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
36218
36219         * assembly.c, image.h: for each MonoImage, record from wich assembly
36220         it was loaded.
36221         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
36222         Make Type.Assembly work.
36223
36224 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
36225
36226         * debug-symfile.h: use char* instead of gpointer to avoid
36227         unnecessary casts.
36228
36229         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
36230
36231         * icall.c (ves_icall_InternalExecute): impl. FielSetter
36232         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
36233
36234 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
36235
36236         * icall.c (mono_message_init): impl. (code cleanup)
36237         (ves_icall_InternalExecute): impl. FieldGetter
36238
36239         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
36240         defined we call all (non-static)methods through the vtable. 
36241
36242 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
36243
36244         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
36245         finalizer even though the memory is still referenced (and the chunk of
36246         memory is not freed).
36247
36248 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
36249
36250         * assembly.c: fix brokeness.
36251
36252 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
36253
36254         * class.c: kill some warnings. Check explicit interface method
36255         implementation also without considering the namespace.
36256         Load also literal strings in static class data.
36257
36258 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
36259
36260         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
36261         (default_assembly_name_resolver): Make the resolver take the
36262         "base" directory where the assembly was originally defined, so we
36263         can load DLLs that are in the same directory as the assembly that
36264         is being referenced.
36265
36266 2002-03-28  Dick Porter  <dick@ximian.com>
36267
36268         * file-io.h: 
36269         * file-io.c:
36270         * socket-io.c: 
36271         * unicode.h: 
36272         * unicode.c: Warning cleanups
36273
36274 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
36275
36276         * object.h, reflection.h: use the correct type instead of MonoObject.
36277
36278 2002-03-28  Martin Baulig  <martin@gnome.org>
36279
36280         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
36281         (mono_debug_update_symbol_file): Initialize classes if necessary.
36282
36283 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
36284
36285         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
36286         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
36287
36288 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
36289
36290         * assembly.h: fix function prototype.
36291         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
36292         * mono-endian.h: use const cast.
36293
36294 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
36295
36296         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
36297
36298 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
36299
36300         * loader.c: don't assert when a typeref can't be loaded, give
36301         a chance to the runtime to trow an exception instead.
36302         * loader.h: fix warning.
36303
36304 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
36305
36306         * class.c (mono_class_proxy_vtable): added proxy support
36307
36308 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
36309
36310         * icall.c: removed last of PAL calls, added System.Environment
36311         * file-io.h, file-io.c: MonoIO implementation
36312         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
36313
36314 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
36315
36316         * appdomain.c: do not use the byte marker in ldstr table lookup.
36317         * debug-helpers.c: allow two ':' to separate class and method name.
36318         * object.c: allocate arrays bounds with the GC, too.
36319         * verify: add a few more checks.
36320
36321 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
36322
36323         * reflection.c: output also literal strings. Allocate parameter data
36324         with GC_malloc() (thanks, Martin, for catching this!).
36325
36326 2002-03-26  Martin Baulig  <martin@gnome.org>
36327
36328         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
36329         include the `this' offset in the `param_offsets'.
36330
36331 2002-03-25  Martin Baulig  <martin@gnome.org>
36332
36333         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
36334         mono_debug_get_class() function to get the classes. Added new
36335         relocation types for arrays and strings.
36336         (mono_debug_get_class): New static function to search in all
36337         referenced assemblies for a metadata token.
36338
36339         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
36340
36341 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
36342
36343         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
36344         hold gc-allocated objects. Make the string heap a stream like the
36345         others. Removed duplicated code when writing stream info.
36346         Added asserts to catch possible buffer overflows. Set the sorted map
36347         for tables that need sorting. Added some documentation.
36348
36349 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
36350
36351         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
36352         for interned strings and vtables.
36353
36354 2002-03-24  Martin Baulig  <martin@gnome.org>
36355
36356         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
36357         it in the array since it was created with g_slist_prepend().
36358
36359 2002-03-24  Martin Baulig  <martin@gnome.org>
36360
36361         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
36362         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
36363         (mono_debug_method_from_token): Renamed to
36364         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
36365         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
36366
36367         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
36368         relocation types.
36369
36370         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
36371
36372 2002-03-24  Martin Baulig  <martin@gnome.org>
36373
36374         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
36375         (mono_debug_method_from_token): New func.
36376
36377         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
36378         New interncall, calls mono_debug_local_type_from_signature().
36379         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
36380         calls mono_debug_method_from_token().
36381
36382 2002-03-23  Martin Baulig  <martin@gnome.org>
36383
36384         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
36385         specifies the number of bytes to be converted, not the array size.
36386         Return the number of chars, not the number of bytes.
36387         (ves_icall_iconv_get_chars): The `byteCount' argument
36388         specifies the number of bytes to be converted, not the array size.
36389
36390 2002-03-23  Martin Baulig  <martin@gnome.org>
36391
36392         * reflection.h (MonoReflectionSigHelper): New type.
36393
36394         * reflection.c (mono_reflection_sighelper_get_signature_local),
36395         (mono_reflection_sighelper_get_signature_local): New functions.
36396
36397         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
36398         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
36399         interncalls.
36400
36401 2002-03-23  Martin Baulig  <martin@gnome.org>
36402
36403         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
36404         is_writeable is set.
36405         (mono_raw_buffer_update): New function to write the modified map
36406         back to disk.
36407
36408         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
36409
36410         * debug-symfile.c (mono_debug_update_symbol_file): Call
36411         mono_raw_buffer_update() when done writing.
36412
36413 2002-03-23  Martin Baulig  <martin@gnome.org>
36414
36415         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
36416
36417         * debug-symfile.c: Added support for arguments and local variables.
36418
36419 2002-03-23  Dick Porter  <dick@ximian.com>
36420
36421         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
36422         protected by ifdefs, hence breaking the w32 build.
36423
36424 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
36425
36426         * object.c: implement is_interned() the right way.
36427
36428 2002-03-21  Martin Baulig  <martin@gnome.org>
36429
36430         * debug-symfile.[ch]: New files to handle debugging information
36431         files. There's also support to dynamically update these symbol
36432         files to include machine dependent information.
36433
36434 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
36435
36436         * threads.c (mono_thread_create): new function to create thread
36437         from C
36438
36439 2002-03-20  Martin Baulig  <martin@gnome.org>
36440
36441         * icall.c (ves_icall_InternalInvoke): Create a new object if the
36442         method is a constructor.
36443         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
36444         points to ves_icall_InternalInvoke().
36445
36446 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
36447
36448         * file-io.c: Flush shouldn't throw exceptions.
36449
36450 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
36451
36452         * file-io.c: FileStream flush support; FileSetLength now
36453         restores file pointer.
36454
36455 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
36456
36457         * class.c: set image for pointer classes.
36458
36459 2002/03/19  Nick Drochak <ndrochak@gol.com>
36460
36461         * sysmath.c: Forgot one.
36462
36463 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
36464
36465         * sysmath.c: Avoid redefining existing names.
36466
36467 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
36468
36469         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
36470         handled by runtime as icall rather than dllimport from libm.so
36471         * file-io.c, file-io.h: fixed handle argument type.
36472
36473 2002-03-18  Dick Porter  <dick@ximian.com>
36474
36475         * reflection.c (mono_image_get_type_info): rename interface to
36476         iface, because of "#define interface struct" on windows.
36477
36478 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
36479
36480         * class.c, class.h: rename and export mono_ptr_class_get().
36481         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
36482         * reflection.c, reflection.h, icall.c: better/saner type name
36483         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
36484         method signatures.
36485
36486 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
36487
36488         * class.c (mono_class_init): removed hardcoded GHC_SLOT
36489
36490         * icall.c (ves_icall_InternalInvoke): impl.
36491
36492 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
36493
36494         * reflection.c: output the interface map table, too.
36495
36496 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
36497
36498         * class.c (class_compute_field_layout): separate computation of 
36499         static field layout
36500
36501 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
36502
36503         * icall.c: added System.Buffer support.
36504         * file-io.c: moved file icalls from PAL to FileStream.
36505
36506 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
36507
36508         * icall.c (ves_icall_System_Object_GetHashCode): impl.
36509
36510 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
36511
36512         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
36513
36514 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
36515
36516         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
36517
36518 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
36519
36520         * debug-helpers.{c,h}: moved here from monograph some useful functions
36521         to locate a method by name/signature in a class or image. Included
36522         also a small and flexible IL disassembler.
36523
36524 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
36525
36526         * reflection.c: fixup tokens in methods with small header size, too.
36527
36528 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
36529
36530         * object.c (mono_string_to_utf8): remove assert(!error), instead
36531         print a warning. 
36532
36533 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
36534
36535         * icall.c: update to the new mono_Array_class_get interface.
36536
36537 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
36538
36539         * appdomain.c, object.c: Boehm-GC enable.
36540         * icall.c: make get_data_chunk() support split data requests.
36541         Ensure a class is initialized in more cases. Return only the first
36542         property found in GetProperties() or the compiler gets confused. 
36543         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
36544         * reflection.h, reflection.c: add fixup mechanism for field and method
36545         tokens. Initialize assembly->typeref in a single place. Output
36546         properties after events. Support custom attributes for events, too.
36547         Typo fix for paramter custom attrs.
36548
36549 2002-03-07  Martin Baulig  <martin@gnome.org>
36550
36551         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
36552
36553 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
36554
36555         * class.c (mono_array_class_get): fix. for multi. dim. arrays
36556
36557 2002-03-06  Martin Baulig  <martin@gnome.org>
36558
36559         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
36560         non-zero lower bounds. See testcases #F10-#F13.
36561
36562 2002-03-05  Martin Baulig  <martin@gnome.org>
36563
36564         * exception.c (mono_get_exception_argument_out_of_range): New exception.
36565
36566         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
36567         ves_icall_System_Array_GetValue(), only calculate the absolute array position
36568         here.
36569         (ves_icall_System_Array_SetValue): Likewise.
36570         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
36571         as argument and does the actual work. This function is used when copying a
36572         multi-dimensional array.
36573         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
36574         now do all the widening conversions of value types.
36575         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
36576
36577 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
36578
36579         * class.c: remove some magic numbers and use the smbolic names,
36580         instead. Added init_events() to load event info at class init time.
36581         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
36582         and mono_metadata_methods_from_event().
36583         * reflection.h, reflection.c: added support for writing out the evnets
36584         related information.
36585
36586 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
36587
36588         * reflection.h, icall.c: use a different method (GetInterfaces)
36589         to gather interface info and add isbyref, isprimitive and
36590         ispointer to the ves_icall_get_type_info() return value.
36591
36592 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
36593
36594         * class.h: stared adding support for events.
36595         * icall.c: split find_members implementation. Added debug icall to get
36596         the address of an object.
36597         * reflection.c: handle TypeBuilders in mono_type_get_object().
36598
36599 2002-03-01  Martin Baulig  <martin@gnome.org>
36600
36601         * icall.c (ves_icall_System_Array_GetLength): This must throw an
36602         ArgumentOutOfRangeException(), not an ArgumentException().
36603         (ves_icall_System_Array_GetLowerBound): Likewise.
36604         (ves_icall_System_Array_GetValue): Improved argument checking.
36605         (ves_icall_System_Array_SetValue): Improved argument checking.
36606
36607 2002-03-01  Martin Baulig  <martin@gnome.org>
36608
36609         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
36610         called with invalid arguments rather than just dying with g_assert().
36611         (ves_icall_System_Array_SetValue): Likewise.
36612         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
36613         raise a NotImplementedException instead.
36614         (ves_icall_System_Array_GetLength): Added argument checking.
36615         (ves_icall_System_Array_GetLowerBound): Added argument checking.
36616
36617 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
36618
36619         * object.h (mono_assert): new macros mono_assert and
36620         mono_assert_not_reached
36621
36622 2002-02-28  Martin Baulig  <martin@gnome.org>
36623
36624         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
36625         and "System::String::IsInterned" to "System::String::_IsInterned".
36626
36627 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
36628
36629         * icall.c: remove hacks for typebuilder. Added icall to create a
36630         modified type from a tybebuilder.
36631         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
36632         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
36633         to create a backing MonoClass for a TypeBuilder.
36634
36635 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
36636
36637         * class.c, class.h: more refactoring of class init.
36638         Export mono_class_setup_mono_type() and mono_class_setup_parent().
36639
36640 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
36641
36642         * marshal.c, marshal.h: start of marshaling interface.
36643
36644 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
36645
36646         * icall.c: fix order in assembly qualified name icall.
36647
36648 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
36649
36650         * class.c: do not free str, since we store it in the hash table.
36651         * reflection.h: add label field to MonoILExceptionInfo.
36652         * reflection.c: handle references to more than one assembly. Handle
36653         case when there isn't a module created in the assembly.
36654
36655 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
36656
36657         * class.c: Fix typo. Start refactoring of class init code.
36658
36659 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
36660
36661         * appdomain.c: exit with 1 on error.
36662         * class.c: we already have the name in MonoClassField.
36663         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
36664         MonoStreamHeader instead of an offset of image->raw_metadata.
36665
36666 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
36667
36668         * appdomain.c (mono_init): Be even more descriptive about the error.
36669
36670 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
36671
36672         * appdomain.c: give the user an informative message when corlib can't
36673         be loaded.
36674
36675 2002-02-26  Martin Baulig  <martin@gnome.org>
36676
36677         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
36678         New icall to get the time zone data.
36679
36680 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
36681
36682         * reflection.c: set virtual and raw size of section correctly.
36683         * threads.c: transfer domain information to newly created threads.
36684
36685 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
36686
36687         * class.c: when instancing a class in a domain, load the default
36688         vaules for static fields from the constant table. Fix System.Enum to
36689         not be an enum.
36690         * icall.c: implement Object::GetType() internalcall. Implemented
36691         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
36692         Fixed checking of binding flags in find_members().
36693         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
36694         * reflection.c: handle enumerations when writing to the constant
36695         table. Use a different object cache for types.
36696
36697
36698 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
36699
36700         * object.c (mono_object_isinst): fix for arrays
36701
36702         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
36703
36704 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
36705
36706         * object.c: don't use mprotect ()  and fix intern pool hash table
36707         lookup for big endian systems.
36708
36709 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
36710
36711         * icall.c: change type_is_subtype_of () signature.
36712
36713 2002-02-21  Mark Crichton  <crichton@gimp.org>
36714
36715         * rand.c, rand.h: Added random number generator for
36716         System.Security.Cryptography classes.
36717
36718         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
36719
36720         * icall.c: Added System.Security.Cryptography calls.
36721
36722 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
36723
36724         * class.c, icall.c, metadata.c: better support for pointer types.
36725         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
36726         * reflection.c: Add support for getting custom attrs for properties
36727         and simplify some code.
36728
36729 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
36730
36731         * icall.c: change getToken () and add custom attribute GetBlob()helper
36732         method.
36733         * reflection.h: add custom attrs array to the reflection builder structures.
36734         * reflection.c: encode and emit custom attributes for all the relevant
36735         reflection objects. Cache fieldref and methodref tokens. Change
36736         mono_image_create_token() interface to take a MonoDynamicAssembly.
36737         More complete custom attributes decoder. Load custom attributes for
36738         Assembly, Field, Method and Constructor objects, too. Make the
36739         returned array an Attribute[] one, not object[]. Added
36740         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
36741         custom attribute constructor.
36742
36743 2002-02-20  Dick Porter  <dick@ximian.com>
36744
36745         * icall.c:
36746         * rawbuffer.c:
36747         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
36748         problem code out for now).
36749
36750 2002-02-19  Radek Doulik  <rodo@ximian.com>
36751
36752         * object.c (mono_ldstr): use hash table to avoid multiple swapping
36753
36754 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
36755
36756         * icall.c: register the GetCustomAttributes method.
36757         * object.c, object.h: add mono_string_new_len ().
36758         * reflection.h, reflection.c: added mono_runtime_invoke(),
36759         mono_install_runtime_invoke(). Added
36760         mono_reflection_get_custom_attrs () to load custom attributes and
36761         create the attribute objects.
36762
36763 2002-02-19  Dick Porter  <dick@ximian.com>
36764         * threads-dummy-types.c:
36765         * threads-dummy-types.h:
36766         * threads-dummy.c:
36767         * threads-dummy.h:
36768         * threads-pthread-types.c:
36769         * threads-pthread-types.h:
36770         * threads-pthread.c:
36771         * threads-pthread.h:  Deleted obsolete files
36772
36773 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
36774
36775         * class.c (mono_class_vtable): runtime init the class when we
36776         allocate static class data.
36777
36778         * icall.c (ves_icall_System_Array_SetValue): check for null values.
36779
36780         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
36781         and String - but we will need generic marshalling support in the
36782         future. 
36783         (mono_init): set the domain name in a ms compatible way
36784
36785         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
36786         String[].
36787
36788 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
36789
36790         * object.c (mono_array_clone): use alloca() instead of g_malloc  
36791         for sizes
36792
36793         * appdomain.c (mono_domain_unload): impl.
36794
36795 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
36796
36797         * appdomain.c, object.c: fix intern pool implementation.
36798         * class.c: fix alignment code.
36799
36800 2002-02-16  Radek Doulik  <rodo@ximian.com>
36801
36802         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
36803         and s2 > s1, just copy lower bytes to be compatible with little
36804         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
36805         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
36806
36807         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
36808         force big_endian to be 1 for big endian machines 
36809         (ves_icall_iconv_new_decoder): ditto
36810
36811 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
36812
36813         * socket-io.c (convert_sockopt_level_and_name): If the system
36814         doesn't define SOL_IP or SOL_TCP, get them by hand using
36815         getprotobyname() and caching the values (because this could be a
36816         slow operation).
36817         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
36818         Use the appropriate struct when the system does support it. Ie,
36819         not all systems have struct ip_mreqn so use struct ip_mreq when
36820         appropriate.
36821
36822 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
36823
36824         * reflection.c: handle finally clauses.
36825
36826 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
36827
36828         * socket-io.c: use g_snprintf() instead of snprintf.
36829
36830 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
36831
36832         * reflection.c (mono_param_get_objects): Cast second argument to
36833         mono_method_get_param_names to a const char** to silence the
36834         compiler warning.
36835
36836         * appdomain.c (mono_domain_assembly_open): Put parens around the
36837         truth statement in the for-loop.
36838
36839         * unicode.c (iconv_convert): Got rid of a compiler warning about
36840         int i being unused when the system has a new iconv.
36841         (iconv_get_length): Same.
36842
36843         * image.c (load_class_names): Cast the second argument to
36844         g_hash_table_insert() to char* to hush compiler warnings about the
36845         arg being a const.
36846         (mono_image_open): Same here.
36847
36848         * socket-io.c: Don't conditionally include sys/filio.h or
36849         sys/sockio.h here anymore since we now get them from
36850         io-layer/io-layer.h
36851         (inet_pton): If the system doesn't support inet_aton, implement
36852         using inet_addr and also #define INADDR_NONE if it isn't defined
36853         by the system.
36854
36855 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
36856
36857         * metadata.c, metadata.h: added function to get packing and size info
36858         of a typedef.
36859         * reflection.h, reflection.c: handle field RVA data. Save info about
36860         the table layout if needed. Assign typedef indexes to all the types
36861         before dumping the info about them to avoid forward reference problems.
36862
36863 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
36864
36865         * socket-io.c (convert_sockopt_level_and_name): ifdef
36866         SO_ACCEPTCONN because it is not defined on my system (old debian)
36867
36868 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
36869
36870         * opcode.c: use stddef.h to get NULL.
36871
36872 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
36873
36874         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
36875         for FIONBIO, FIONREAD and SIOCATMARK.
36876         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
36877         define INADDR_NONE and besides, inet_addr() is deprecated and
36878         should not be used. Use inet_pton() instead - it also has the
36879         added bonus that it can easily handle IPv6 addresses as well.
36880         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
36881
36882 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
36883
36884         * decimal.c: remove _MSC_VER conditional.
36885
36886 2002-02-13  Dick Porter  <dick@ximian.com>
36887
36888         * socket-io.c: 
36889         * icall.c: Internal calls for Blocking, Select, Shutdown,
36890         GetSocketOption and SetSocketOption
36891
36892 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
36893
36894         * assembly.cs: better resolver: use it instead of some kludgy
36895         code.
36896
36897 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
36898
36899         * reflection.c: the best way to speed-up the compiler is to avoid
36900         infinite loops.
36901
36902 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
36903
36904         * class.c (mono_class_vtable): changed the object layout
36905         (obj->vtable->class). 
36906         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
36907
36908 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
36909
36910         * assembly.c: look for assemblies in the assembly dir, too.
36911
36912 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
36913
36914         * class.c: fix thinko in mono_class_from_type().
36915
36916 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
36917
36918         * exception.h, exception.c: added TypeLoadException.
36919         * object.h, object.c: added mono_array_clone ().
36920         * icall.c: handle throwOnError in AssemblyGetType().
36921         Added Array.Clone().
36922         * opcode.h, opcode.c: use a single value for the opcode val.
36923         Compile fix for non-gcc compilers.
36924
36925 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
36926
36927         * opcodes.c, opcodes.h: export interesting info about opcodes.
36928
36929 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
36930
36931         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
36932         icalls. 
36933
36934         * class.c (class_compute_field_layout): set element_class for enums
36935         (mono_class_create_from_typedef): set element_class for normal classes
36936
36937         * icall.c (ves_icall_System_Enum_get_value): impl.
36938
36939         * class.c (mono_class_create_from_typedef): do not set valuetype
36940         flag for System.ValueType and System.Enum
36941
36942 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
36943
36944         * unicode.c (iconv_convert): fix big endian problem.
36945
36946 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
36947
36948         * class.c: add asserts if we are ever going to scribble over memory.
36949         * socket-io.c: not all systems have AF_IRDA defined.
36950
36951 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
36952
36953         * class.c (class_compute_field_layout): do not consider static
36954         fields to compute alignment
36955
36956 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
36957
36958         * appdomain.c (mono_appdomain_get): impl.
36959         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
36960
36961 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
36962
36963         * icall.c: ignore "file://" prefix when loading an assembly.
36964
36965 2002-01-23  Dick Porter  <dick@ximian.com>
36966
36967         * socket-io.c:
36968         * icall.c:
36969         * Makefile.am: Added socket support
36970
36971 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
36972
36973         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
36974         code back.  This should return the assemblies that are loaded by
36975         the runtime on behalf of an application domain. 
36976
36977         The current implementation is still broken, it just returns every
36978         assembly loaded, but until we get real applications domain this
36979         will do.
36980
36981 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
36982
36983         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
36984         AppDomain object.
36985
36986 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
36987
36988         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
36989         the mono_class_from_name lookup.
36990         (ves_icall_get_parameter_info): ditto.
36991         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
36992         method.
36993         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
36994
36995 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
36996
36997         * class.c: load also nested classes on class init.
36998         System.ValueType instance methods gets passed boxed
36999         values, unless methods in derived classed that get a pointer to the
37000         data.
37001         * icall.c: use better name parsing code in GetType().
37002         * image.c, image.h: add mono_image_loaded ().
37003         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
37004         * reflection.c, reflection.h: added mono_reflection_parse_type().
37005
37006 2002-01-22  Veronica De Santis <veron78@interfree.it>
37007
37008         * icall.c : Added mapping of internal calls for Manual and Auto reset events
37009         * threads.c : Added the implementation of internal calls for events
37010         * threads.h : Added prototypes of internal calls for events
37011         
37012 2002-01-21  Radek Doulik  <rodo@ximian.com>
37013
37014         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
37015
37016 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
37017
37018         * class.c (mono_class_init): set min_align to 1 (instead of 0)
37019         (mono_class_value_size): use min_align
37020
37021 2002-01-20  Dick Porter  <dick@ximian.com>
37022
37023         * threads.h:
37024         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
37025         so it compiles on w32.
37026
37027 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
37028
37029         * metadata.c (mono_type_stack_size): impl.
37030
37031         * class.c (mono_class_get_field): impl. memberref token
37032
37033 2002-01-16 Veronica De Santis <veron78@@interfree.it>
37034
37035         * icall.h : Added the internal calls mapping for CreateMutex_internal
37036                     and ReleaseMutex_internal.
37037         * threads.h : Added the prototype of mutexes internal calls.
37038         * threads.c : Added the implementations of mutexes internal calls.
37039
37040 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
37041
37042         * metaparse.h: removed unused file.
37043         * reflection.c, reflection.h: added stream_data_align () function 
37044         to align data in streams and keep stream aligned. Add support for
37045         exception support in method headers.
37046
37047 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
37048
37049         * unicode.c: make iconv_convert () return the number of bytess written
37050         in the output buffer.
37051
37052 2002-01-15  Dick Porter  <dick@ximian.com>
37053         * threads.c: Make the runtime's idea of infinite timeouts coincide
37054         with the class library's
37055
37056         Fix a particularly egregious bug in mono_thread_cleanup(). That
37057         code was so utterly bogus it must have been written on a Monday.
37058
37059 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
37060
37061         * reflection.h: add subtypes field to TypeBuilder.
37062         * reflection.c: encode constants for literal fields.
37063         Handle subtypes. Fix user string token (and add a zero byte)
37064         at the end.
37065         
37066 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
37067
37068         * class.c (mono_class_init): bug fix: assign slot numbers for
37069         abstract methods.
37070
37071 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
37072
37073         * reflection.c: don't try to output a code RVA for abstract methods.
37074         Small fixes for method header format. Output parameter info to the
37075         ParamDef table. Save method overriding info to MethodImpl table.
37076         Fix property support. Allow typedef.extends to be a type in the
37077         building assembly.
37078         * verify.c: fix off-by-one error.
37079
37080 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
37081
37082         * class.c: fix mono_class_from_mono_type () for szarray types.
37083         Remove unused cache check in mono_class_from_type_spec().
37084         * icall.c: *type_from_name () functions handle simple arrays and byref.
37085         * reflection.c: handle byref and szarray types. Handle methods without
37086         body (gets P/Invoke compilation working). Handle types and fields in
37087         get_token ().
37088         * reflection.h: add rank to MonoTypeInfo.
37089
37090 2002-01-10  Dick Porter  <dick@ximian.com>
37091
37092         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
37093         internal calls
37094
37095 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
37096
37097         * icall.c: initialize class in type_from_handle ().
37098         Loop also in parent classes for get_method ().
37099         * reflection.c: properly encode class and valuetype types.
37100         Start on encoding TypeBuilder types. Handle fieldrefs.
37101         Use correct length when registering a user string.
37102         Handle ConstructorBuilder and MonoMethod in get_token ().
37103         Make mono_type_get_object () aware of cached types.
37104         * object.c: back out change to mono_string_new ().
37105
37106 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
37107         * object.c: mono_string_new should return a NULL when the string 
37108         passed in is NULL -- not try to deference it.
37109         
37110 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
37111
37112         * icall.c: hack to make IsSubType work for TypeBuilders.
37113         * reflection.c: emit constructors before methods.
37114         Retrieve param names in mono_param_get_objects().
37115
37116 2002/01/05  Nick Drochak  <ndrochak@gol.com>
37117
37118         * Makefile.am: fix list of headers and sources so automake 1.5
37119         doesn't complain. Removed \# at end of list.
37120
37121 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
37122
37123         * reflection.c: get token for a method ref. Set return type of
37124         constructor to void.
37125         * loader.c: debug message.
37126         * class.c: typo fix.
37127
37128 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
37129
37130         * icall.c: fix array init with rank > 1. FindMembers
37131         loops in parent class as well.
37132         * image.c: do not insert nested types in name cache.
37133         * reflection.c: warning fix.
37134         * reflection.h: add override method (for interface impl).
37135
37136 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
37137
37138         * metadata.c: fix customattr decoding.
37139
37140 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
37141
37142         * rawbuffer.cs: Added native Win32 implementation, avoids using
37143         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
37144
37145 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
37146
37147         * class.c: make the low-level routines handle the cache.
37148
37149 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
37150
37151         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
37152
37153 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
37154
37155         * class.c: fix mono_array_element_size() for objects.
37156         * class.h, class.c: add properties to MonoClass and load them
37157         at init time.
37158         * icall.c: check with isinst() when assigning a value to an array
37159         instead of requiring the classes to match exactly.
37160         Implemented icall for System.Type::GetType().
37161         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
37162         enums. Handle bindingflags when looking for methods and fields.
37163         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
37164         and mono_metadata_methods_from_property().
37165         * reflection.h, reflection.c: added structures for propreties,
37166         parameters and enums. Implemented mono_property_get_object() and
37167         mono_param_get_objects().
37168
37169 2001-12-18  Dick Porter  <dick@ximian.com>
37170
37171         * file-io.c: Use mono_string_to_utf16() instead of
37172         mono_string_chars()
37173
37174         * object.c: Added mono_string_to_utf16(), which copies the non
37175         NULL-terminated MonoString into a new double-null-terminated
37176         buffer.
37177
37178 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
37179
37180         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
37181
37182 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
37183
37184         * file-io.c: raise exceptions if handle is invalid.
37185
37186 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
37187
37188         * assembly.c: yet another check for mscorlib.
37189         * class.c, class.h: load nesting info for classes.
37190         * icall.c: many new functions to support the Reflection classes.
37191         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
37192         * reflection.h, reflection.c: mono_image_create_token(),
37193         mono_assembly_get_object(), mono_type_get_object(),
37194         mono_method_get_object(), mono_field_get_object(): methods to return
37195         objects that parallel the C representation of assemblies, types,
37196         methods, fields.
37197
37198 2001-12-11  Dick Porter  <dick@ximian.com>
37199
37200         * icall.c:
37201         * file-io.c: Internal calls for file IO.
37202
37203 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
37204
37205         * tabledefs.h: missing FileAttributes.
37206         * verify.h, verify.c: use is_valid_string () to simplify and check for
37207         valid strings more correctly. Fix warnings and speeling.
37208         Check more tables: Filed, File, ModuleRef, StandAloneSig.
37209         Check code: branches, maxstack, method calls.
37210
37211 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
37212
37213         * object.c (mono_object_allocate): removed static, so that the jit
37214         can allocate value types.
37215
37216         * icall.c (ves_icall_System_DateTime_GetNow): impl.
37217
37218 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
37219
37220         * class.c: init enum types right away and register the
37221         token->MonoClass map in mono_class_create_from_typedef ().
37222         * verify.h, verify.c: first cut of the verifier.
37223         * pedump.c: add --verify switch to verify metadata tables.
37224         * tabledefs.h: add some missing enums.
37225
37226 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
37227
37228         * class.c (mono_install_runtime_class_init): impl.
37229         (mono_class_init): renamed mono_class_metadata_init to
37230         mono_class_init, also removed the metadata_inited flag
37231
37232         * object.c (mono_object_isinst): use faster algorithm
37233
37234 2001-11-30  Radek Doulik  <rodo@ximian.com>
37235
37236         * mono-endian.h: reverted last change
37237         added function prototypes
37238
37239         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
37240         add mono-endian.c back
37241
37242         * mono-endian.c: returned back, as Paolo pointed out, it's needed
37243         for unaligned access, I've mistaked it with endianess. I am
37244         sorry.
37245         (mono_read16): fix reverted endianess
37246         (mono_read64): ditto
37247         (mono_read32): ditto
37248
37249 2001-11-30  Dick Porter  <dick@ximian.com>
37250
37251         * exception.c: Implement mono_exception_from_name()
37252
37253 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
37254
37255         * metadata.h, metadata.c: remove params_size and locals_size and their
37256         calculation from the metadata code: they are only usefult to the
37257         interp.
37258
37259 2001-11-29  Radek Doulik  <rodo@ximian.com>
37260
37261         * object.c (mono_ldstr): swap bytes here, it's probably not the
37262         best place, but works for me now, I'll redo it once I know mono
37263         better, also note that I add PROT_WRITE and don't reset back, also
37264         note that it's only affects big endians, so x86 should be OK
37265
37266         * mono-endian.h (read16): use just glib macros for both endians
37267
37268         * mono-endian.c: removed as glib macros are used in in
37269         mono-endian.h so we don't need to care about endianess for read
37270         macros as glib does that for us already
37271
37272 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
37273
37274         * class.h, class.h: take minimum alignment into consideration so
37275         that the fields of a class remain aligned also when in an array.
37276
37277 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
37278
37279         * loader.h, loader.c: add mono_method_get_param_names().
37280         * class.c: 0-init class fields.
37281
37282 2001-11-26  Dick Porter  <dick@ximian.com>
37283
37284         * icall.c:
37285         * threads-types.h:
37286         * threads.c: New file that handles System.Threading on all platforms
37287
37288         * object.c: 
37289         * object.h: Remove the synchronisation struct from MonoObject,
37290         replace it with a pointer that gets initialised on demand
37291
37292         * Makefile.am: Replace all the system-specific threading code with
37293         a single file that uses the new wrapper library
37294
37295 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
37296
37297         * class.c, class.h: add mono_install_trampoline() so that the runtime
37298         can register a function to create a trampoline: removes the ugly
37299         requirement that a runtime needed to export arch_create_jit_trampoline.
37300         * object.h, object.c: added mono_install_handler() so that the runtime
37301         can install an handler for exceptions generated in C code (with
37302         mono_raise_exception()). Added C struct for System.Delegate.
37303         * pedump.c: removed arch_create_jit_trampoline.
37304         * reflection.c: some cleanups to allow registering user strings and
37305         later getting a token for methodrefs and fieldrefs before the assembly
37306         is built.
37307         * row-indexes.h: updates and fixes from the new ECMA specs.
37308
37309 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
37310
37311         * class.h, class.c: add enum_basetype field to MonoClass.
37312         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
37313         to get index in the constant table reated to a field, param or
37314         property.
37315         * reflection.h, reflection.c: handle constructors. Set public-key and
37316         version number of the built assembly to 0.
37317         * row-indexes.h: update from new ECMA spec.
37318
37319 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
37320
37321         * class.h, class.c: add a max_interface_id to MonoClass.
37322         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
37323         since it's used to do that. Added mono_type_type_from_obj().
37324         Make GetType() return NULL instead of segfaulting if the type was not
37325         found. Handle simple arrays in assQualifiedName.
37326         * object.h: add a struct to represent an Exception.
37327         * reflection.c: output call convention in method signature.
37328         Add code to support P/Invoke methods and fixed offsets for fields.
37329
37330 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
37331
37332         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
37333         the value.
37334         * icall.c: use mono_array_addr instead of array->vector: fixes the
37335         reflection image writing.
37336         * reflection.c: init call convention byte to 0 in method signature.
37337         Encode the property signature. Don't output property-related methods
37338         twice. Really process the properties for a type (don't cast a field to
37339         a property, my mom always told me that).
37340         Fix 64 bit issues in pointer alignment in a different and more
37341         readable way.
37342
37343 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
37344
37345         * loader.h: Removed type class from MonoDefaults, added monotype
37346
37347         * loader.c: Loaded MonoType, removed loading of Type
37348
37349         * icall.c (my_mono_new_object): Now returns a System.MonoType,
37350         and fills in System.Type._impl with a RuntimeTypeHandle rather
37351         than the actual MonoClass *
37352
37353         (ves_icall_type_from_handle): change from type_class to
37354         monotype_class
37355
37356         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
37357         implemented
37358
37359         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
37360         implemented
37361
37362         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
37363
37364         (ves_icall_System_Reflection_Assembly_GetType): implemented
37365
37366         (ves_icall_System_MonoType_assQualifiedName): implemented
37367
37368         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
37369
37370 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
37371
37372         * assembly.c (mono_assembly_open): Implement a cache for the
37373         assemblies. 
37374
37375         (mono_assembly_close): only destroy the assembly when the last
37376         reference is gone.
37377         
37378 2001-11-09  Dick Porter  <dick@ximian.com>
37379
37380         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
37381
37382 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
37383
37384         * class.c (mono_class_metadata_init): bug fix: compute the right slot
37385
37386 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
37387
37388         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
37389         from Martin Weindel.
37390         * object.h: add mono_string_chars ().
37391
37392 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
37393
37394         * reflection.c (build_compressed_metadata): Eliminates warnings
37395         and uses 64-bit clean code.
37396
37397         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
37398         (mono_type_equal): Change signature to eliminate warnings.
37399
37400 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
37401
37402         * icall.c, loader.c: remove the internalcall array constructors.
37403         Changes to match the new MonoArray structure.
37404         * object.h, object.c: an array object doesn't allocate an extra
37405         vector. Add mono_array_new_full () to create jagged arrays easily.
37406
37407 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
37408
37409         * metadata.h, metadata.c: add mono_metadata_field_info () to
37410         retreive all the info about a field from vairous tables.
37411         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
37412         * class.h, class.c: augment MonoClassField with more info.
37413         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
37414         policy and load a field's RVA if needed.
37415
37416 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
37417
37418         * class.c (mono_class_metadata_init): create a trampoline for all
37419         virtual functions instead of actually compiling them.
37420
37421 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
37422
37423         * class.h, class.c: include name in MonoClassField.
37424         * class.c: fix fundamental type of System.Object and System.String.
37425         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
37426         tokens in ldtoken.
37427         * icall.c: remove internalcalls for the Reflection stuff that is now
37428         done in C# code.
37429         * loader.c: mono_field_from_memberref () implementation.
37430         * mono-endian.c: thinko (s/struct/union/g).
37431         * object.c, object.h: make the mono_string_* prototypes actually use
37432         MonoString instead of MonoObject.
37433         * reflection.c, reflection.h: updates for changes in the reflection
37434         code in corlib: we use C structures that map to the actual C# classes.
37435         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
37436         fat method header if needed and use the info from the ILGenerator for
37437         methods. Handle fields in types. Misc fixes.
37438
37439 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
37440
37441         * class.c (mono_class_metadata_init): bug fix: always allocate
37442         space for static class data
37443
37444 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
37445
37446         * class.c (mono_compute_relative_numbering): use relative
37447         numbering to support fast runtime type checks.
37448
37449 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
37450
37451         * class.c (mono_class_create_from_typeref): added debugging output
37452         to print class name when MonoDummy is returned instead of real class
37453
37454 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
37455
37456         * class.c (mono_class_metadata_init): interface offset table now
37457         contains pointers into the vtable - this is more efficient for the jit
37458
37459 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
37460
37461         * class.c (mono_class_metadata_init): use a temporary vtable (the
37462         old algorithm only worked for the interpreter, but not for the jit)
37463
37464 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
37465
37466         * loader.c (method_from_memberref): use mono_class_get to get the
37467         class of an array instead of using System.Array directly.
37468         (mono_get_method): also add MEMBERREF methods to the method cache
37469         which usefull for arrays.
37470
37471 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
37472
37473         * pedump.c (arch_compile_method): added to compute vtable entry
37474
37475         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
37476         number of interfaces.
37477         
37478         * class.h: merged MonoArrayClass into MonoClass
37479
37480         * class.c (mono_class_create_from_typedef): compute the vtable size and
37481         allocate space to include the vtable inside MonoClass
37482         (mono_class_metadata_init): initialize the vtable
37483
37484 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
37485
37486         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
37487         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
37488         * image.c: endian fixes by Laurent Rioux.
37489         * object.h, object.c: rename MonoStringObject to MonoString and
37490         MonoArrayObject to MonoArray. Change some function names to conform to
37491         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
37492         guint16* as first argument, so don't use char*.
37493         Provide macros to do the interesting things on arrays in a portable way.
37494         * threads-pthread.c: updates for the API changes and #include <sched.h>
37495         (required for sched_yield()).
37496         * icall.c: updates for the API changes above.
37497         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
37498         platforms that need them.
37499
37500 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
37501
37502         * class.c: set the correct type for all the fundamental
37503         type when loading the class.
37504
37505 2001-10-05  Dick Porter  <dick@ximian.com>
37506
37507         * threads-pthread.c (pthread_mutex_timedlock): Simple
37508         compatibility version for C libraries that lack this call.
37509
37510 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
37511
37512         * class.c: MonoTypes stored in MonoClass are stored as
37513         fundamental MonoTypes when the class represents a
37514         fundamental type (System.Int32, ...).
37515         The TypeHandle return by ldtoken is a MonoType*.
37516         * icall.c: ves_icall_get_data_chunk () write out all the
37517         PE/COFF stuff. Implement ves_icall_define_method (),
37518         ves_icall_set_method_body (), ves_icall_type_from_handle ().
37519         * image.c: properly skip unknown streams.
37520         * loader.h, loader.c: add type_class to mono_defaults.
37521         * metadata.c, metadata.h: export compute_size () as
37522         mono_metadata_compute_size () with a better interface.
37523         Typo and C&P fixes.
37524         * pedump.c: don't try to print the entry point RVA if there is no entry point.
37525         * reflection.c, reflection.h: many cleanups, fixes, output method
37526         signatures and headers, typedef and typeref info, compress the metadata
37527         tables, output all the heap streams, cli header etc.
37528         * row-indexes.h: typo fixes.
37529
37530 2001-10-04  Dick Porter  <dick@ximian.com>
37531
37532         * object.h: Add a synchronisation mutex struct to MonoObject
37533
37534         * object.c (mono_new_object): Initialise the object
37535         synchronisation mutexes
37536
37537         * icall.c: System.Threading.Monitor internal calls
37538         
37539         * threads-pthread.h:
37540         * threads-pthread.c: System.Threading.Monitor internal calls
37541
37542         * threads-types.h: New file, includes the system-specific thread
37543         structures
37544         
37545         * threads-pthread-types.h:
37546         * threads-pthread-types.c: New files, handle pthread-specific
37547         synchronisation types
37548
37549         * threads-dummy-types.h: 
37550         * threads-dummy-types.c: New files of dummy support for
37551         thread-specific types
37552
37553         * metadata.c:
37554         * image.c:
37555         * pedump.c: include mono-endian.h not endian.h
37556         
37557         * Makefile.am: More threads files.
37558         Name mono-endian.h not endian.h
37559
37560 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
37561
37562         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
37563         stuff and implement a few more bits.
37564         * icall.c: a field needs to be dereferenced twice. Do not use the same
37565         name for two variables in the same scope.
37566         * image.c, image.h: cleanups.
37567
37568 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
37569
37570         * class.c (mono_class_metadata_init): bug fix: compute the right size
37571
37572 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
37573
37574         * icall.c: implemented some of the Reflection internalcalls.
37575         * image.c, image.h: start writing out the PE/COFF image.
37576         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
37577         that does the reverse than decode_blob_size ().
37578         * object.c: use mono_metadata_encode_value (). Move here
37579         temporary implementation of mono_string_to_utf8 ().
37580         * rawbuffer.c: make malloc_map static.
37581
37582 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
37583
37584         * metadata.c: fix type comparison for arrays.
37585         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
37586         Added a couple of new classes to monodefaults.
37587         * icall.c: added a couple of Reflection-related internalcalls.
37588         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
37589         Added a byval_arg MonoType to MonoClass.
37590
37591 2001-09-28  Dick Porter  <dick@ximian.com>
37592
37593         * icall.c:
37594         * threads-pthread.h: 
37595         * threads-pthread.c: Implemented internal calls for
37596         LocalDataStoreSlot operations.  Applied mutexes around all shared
37597         data.  Reworked the thread creation and Start() operations to
37598         avoid a race condition.
37599         
37600         * threads-dummy.h:
37601         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
37602
37603 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
37604
37605         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
37606
37607 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
37608
37609         * class.c, loader.c: warn and return NULL instead of erroring out.
37610         * icall.c: added System.AppDomain::getCurDomain().
37611         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
37612
37613 2001-09-25  Dick Porter  <dick@ximian.com>
37614
37615         * threads-pthread.h:
37616         * threads-pthread.c: Implemented timed thread joining and added
37617         System.Threading.Thread::Join_internal internal call
37618
37619         * icall.c: Added System.Threading.Thread::Join_internal internal call
37620
37621         * threads-dummy.h:
37622         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
37623
37624 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
37625
37626         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
37627         mono_string_intern () to implement the semantics of the ldstr opcode
37628         and the interning of System.Strings.
37629         * icall.c: provide hooks to make String::IsIntern and String::Intern
37630         internalcalls.
37631
37632 2001-09-23  Dick Porter  <dick@ximian.com>
37633
37634         * threads-dummy.c: 
37635         * threads-dummy.h: New files of dummy threading routines
37636
37637         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
37638         support code based on system specifics
37639
37640         Rename PTHREAD_LIBS to THREAD_LIBS
37641         
37642 2001-09-23  Dick Porter  <dick@ximian.com>
37643
37644         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
37645         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
37646         internal calls.
37647         (mono_thread_init): Set up a Thread object instance to return when
37648         the main thread calls Thread.CurrentThread
37649         (mono_thread_cleanup): Wait for all subthreads to exit
37650
37651         * icall.c: New internal calls for System.Threading.Thread::Sleep
37652         (including Schedule) and CurrentThread
37653
37654         * threads.h: New file, to insulate thread-specific stuff from the
37655         rest of the code
37656
37657 2001-09-21  Dick Porter  <dick@ximian.com>
37658
37659         * threads-pthread.h: 
37660         * threads-pthread.c: New file, for handling pthreads-style
37661         threading support.  Start() now starts a new thread and executes
37662         the ThreadStart delegate instance.
37663
37664         * icall.c: Added the internalcall for
37665         System.Threading.Thread::Start_internal
37666
37667         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
37668
37669 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
37670
37671         * loader.c: work around the different signatures for delegates
37672         constructors csc generates in compiled code vs the ones compiled in mscorlib.
37673
37674 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
37675
37676         * class.h, class.c: add mono_class_get_field_from_name ().
37677         * *: Fix C comments and other ANSI C issues.
37678
37679 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
37680
37681         * endian.h, assembly.c: fix some endianness issues.
37682
37683 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
37684
37685         * loader.h, load.c: add delegate_class to mono_defaults.
37686         Handle runtime provided methods in mono_get_method ().
37687
37688 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
37689
37690         * loader.c (mono_get_method): use pinvoke for internal call
37691
37692         * icall.c: use pinvoke for internal call
37693
37694         * loader.c (method_from_memberref): set the method name
37695
37696 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
37697
37698         * metadata.c: help the compiler generate better code for
37699         mono_class_from_mono_type ().
37700
37701 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
37702
37703         * class.c (mono_class_metadata_init): delayed computing of the
37704         class size to mono_class_metadata_init ()
37705
37706 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
37707
37708         * class.c, class.h: add an interfaces member to MonoClass.
37709         * image.c, image.h: add assembly_name field to MonoImage
37710         from the assembly table.
37711         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
37712
37713 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
37714
37715         * class.c: Handle Array in mono_class_from_mono_type ().
37716         * metadata.c, pedump.c: some endian fixes.
37717
37718 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
37719
37720         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
37721         * metadata.c: fix small problem introduced with the latest commit.
37722
37723 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
37724
37725         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
37726         We don't need a MonoMetadata pointer anymore to compare signatures in
37727         mono_metadata_signature_equal (), update callers.
37728         Reduced memory usage an number of allocations for MonoMethodHeader and
37729         MonoMethodSignature.
37730
37731 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
37732
37733         * metadata.c: added compare for szarray.
37734
37735 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
37736
37737         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
37738         and add a couple more types to it and mono_defaults. Give an hint on
37739         classes that need implementing in our corlib and are referenced
37740         in mscorlib.
37741
37742 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
37743
37744         * class.h, class.c: keep track if a class is also an Enum.
37745         * loader.c: Implement a couple more types for use in libffi
37746         marshalling. Gives better diagnostics when failing to dlopen
37747         a library. Set method->klass for P/Invoke methods, too.
37748
37749 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
37750
37751         * class.c, class.h: add a MonoType this_arg to MonoClass that
37752         represents a pointer to an object of the class' type that
37753         can be used by the interpreter and later the type cache.
37754         Add best guess alignment info for valuetype objects.
37755
37756 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
37757
37758         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
37759         into MonoType: one less level of indirection and allocation and
37760         simplifies quite a bit of code. Added cache for MonoTypes that are
37761         used frequently, so that we don't need to allocate them all the time.
37762
37763 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
37764
37765         * class.c (mono_class_create_from_typedef): System.Enum is also a
37766         value type, although it does not derive from System.ValueType
37767         (maybe a bug in the ms compiler?)
37768
37769         * metadata.c (mono_type_size): return the right size for value types
37770
37771         * loader.c (mono_get_method): only initialize method header if not abstract
37772
37773         * class.c (mono_class_from_mono_type): use mono_default values. 
37774
37775 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
37776
37777         * *: use MonoClass pointers instead of <type_tokens>
37778         
37779         * class.h: new flag: metadata_inited.
37780
37781         * class.c (mono_class_metadata_init): impl.
37782         (mono_class_instance_size): impl.
37783         (mono_class_data_size): impl.
37784
37785 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
37786
37787         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
37788         MonoClass now has the name and name_space fields. 
37789         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
37790         mono_get_method () takes and optional MonoClass as argument.
37791         Removed mono_typedef_from_name() and added mono_class_token_from_name()
37792         instead that takes advantage of a map from class names to typedef
37793         tokens in MonoImage.
37794
37795 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
37796
37797         * metadata.c: zero is not a valid alignment boundary.
37798         Merge MONO_TYPE_VOID in default decoding code.
37799
37800 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
37801
37802         * image.h: merged MonoMetadata into MonoImage
37803
37804         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
37805         identify the type of elements.
37806
37807 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
37808
37809         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
37810         * cil-coff.h: split MonoMSDOSHeader and add size info.
37811         * image.c: add some consistency checks.
37812         * metadata.c: fix row size computation: one programmer
37813         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
37814         add explanation for the locator routine.
37815         Fix decoding of size in method header.
37816         
37817 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
37818
37819         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
37820         (g_concat_dir_and_file): Bring g_concat_dir_and_file
37821         function from gnome-libs.  This uses the right path separator
37822         based on the OS, and also works around a bug in some systems where
37823         a double slash is not allowed. 
37824         (default_assembly_name_resolver): Use g_concat_dir_and_file
37825         (mono_assembly_open): ditto.
37826
37827 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
37828
37829         * metadata.c (mono_metadata_signature_equal): impl.
37830
37831         * *: void is now a realy MonoType (instead of using NULL)
37832         
37833         * metadata.c (do_mono_metadata_parse_type): use
37834         mono_metadata_parse_type to parse void value.
37835
37836 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
37837
37838         * metadata.c, metadata.h: in the signature and method header store
37839         only the space required for holding the loca vars and incoming arguments.
37840
37841 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
37842
37843         * metadata.c (do_mono_metadata_parse_type): treat void like any
37844         other type (instead of assigning NULL);
37845
37846 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
37847
37848         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
37849
37850 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
37851
37852         * image.c (do_mono_image_open): added a cache for arrays.
37853
37854 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
37855
37856         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
37857         decode a single column from a row in a metadata table and changes
37858         to take advantage of it in the typedef locator (gives a nice speed up).
37859         Store offset info for function params.
37860
37861 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
37862
37863         * image.h (MONO_IMAGE_IS_CORLIB): removed 
37864
37865 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
37866
37867         * assembly.c: how could mono_assembly_close () had ever worked?
37868         * metadata.c, metadata.h: provide offset info for local vars.
37869         Implement mono_type_size () to take care of alignment as well
37870         as size (it was mono_field_type_size in cli/class.c before).
37871
37872 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
37873
37874         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
37875
37876         * assembly.h (CORLIB_NAME): set to corlib.dll
37877
37878         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
37879
37880 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
37881
37882         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
37883         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
37884         tokentype.h: massive namespace cleanup.
37885
37886 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
37887
37888         * metadata.h, metadata.c: decode exception clauses when parsing method header.
37889
37890 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
37891
37892         * metadata.c (mono_metadata_free_type): added check for type !=
37893         NULL (void) before calling mono_metadata_free_type()
37894
37895 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
37896
37897         * metadata.h, row_indexes.h: added header with enumerations to use
37898         to index in the columns from tables in metadata and to decode coded
37899         tokens: we should start using this instead of embedding magic numbers
37900         all over the code.
37901
37902 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
37903
37904         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
37905         Move metadata_t info from cli_image_info_t to MonoImage, where
37906         it's easily accessible. Changed all the uses accordingly.
37907         Added the method and class caches to MonoImage.
37908         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
37909         and mono_metadata_decode_value () signature to be more consistent
37910         with the other parse functions (and simplify code). Taken advantage
37911         of zero-length array allocation with GCC. Removed reduntant (and
37912         wrong) MonoFieldType struct and use MonoParam instead. Changed
37913         mono_metadata_parse_field_type () to use common code for parsing.
37914         Added mono_metadata_typedef_from_field () and
37915         mono_metadata_typedef_from_method () to lookup a typedef index from a
37916         field or method token.
37917         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
37918
37919 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
37920
37921         * metadata.c (mono_metadata_parse_field_type): Implement. 
37922         (do_mono_metadata_parse_type): Split engine from
37923         mono_metadata_parse_type, so that we can create smaller structures
37924         for things that just have one pointer to the MonoType (look at
37925         the MonoFieldType)
37926
37927 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
37928
37929         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
37930         as Jan Gray found out, it is incorrect. 
37931
37932 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
37933
37934         * assembly.c: Implement asssembly loading.  This loads an image
37935         and loads all the referenced assemblies.  Come to think of it, we
37936         could always do lazy loading of the assemblies. 
37937
37938         * image.c (mono_image_open): Keep loaded images in a hashtable.
37939
37940         * image.h (MonoImage): Add reference count.
37941
37942 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
37943
37944         * assembly.c (mono_assembly_open): Keep track of the file name in
37945         case the assembly has no ASSEMBLY table.
37946
37947         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
37948         from get.c here.
37949
37950 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
37951
37952         * metadata.c, metadata.h: decode local vars in method header
37953         parse function. Change callers accordingly.
37954
37955 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
37956
37957         * metadata.h, cil-coff.h: protect against multiple inclusion.
37958         Added some new structures to hold information decoded from metadata:
37959         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
37960         and relevant decoding/free functions.
37961         * metadata.c: implement decoding functions. Add warning for out of bounds
37962         index in mono_metadata_locate(). Implement mono_get_method () to retreive
37963         all the info about a method signature and invocation. Remove check on
37964         uninitialized local var in parse_mh() and fix memory leak.
37965
37966 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
37967
37968         * metadata.h: More macros.
37969
37970         * tokentype.h: New file.
37971
37972 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
37973
37974         * assembly.c: added a consistency check and initialize
37975         some structures with g_new0().
37976         * metadata.c: fixed a couple more bugs in table size computation
37977         and add other checks for out-of bound access to metadata.
37978
37979 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
37980
37981         * metatada.c: fix bugs computing table sizes. Spew a
37982         warning when index in string heap is out of bounds.
37983
37984 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
37985
37986         * metadata.h: Add a couple of macros to manipulate tokens. 
37987
37988 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
37989
37990         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
37991         cli_section_tables).
37992
37993 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
37994
37995         * metadata.c (mono_metadata_user_string): New function, provides
37996         access to the UserString heap. 
37997
37998 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
37999
38000         * metadata.c: Add inline documentation.
38001
38002 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
38003
38004         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
38005         files. 
38006
38007 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
38008
38009         * typeattr.h: New file, TypeAttribute flags. 
38010
38011 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
38012
38013         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
38014         mono_assembly_ensure_section): Section loading code.
38015         (load_section_tables): Load the sections.
38016
38017         * mono/metadata/metadata.c (mono_metadata_locate_token,
38018         mono_metadata_locate): Functions to locate the information
38019         definition given a token or a table and an index.
38020         (mono_metadata_compute_table_bases): New.
38021         (compute_size): New function to compute the sizes of the various
38022         tables.
38023
38024         * mono/metadata/metadata.h: Finish listing the different index
38025         types. 
38026
38027         * mono/metadata/pedump.c: Improve to dump new information.
38028
38029 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
38030
38031         * mono/metadata/metadata.c: Entered all the tables matching
38032         Beta2. 
38033
38034         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2