2008-06-18 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2008-06-18  Martin Baulig  <martin@ximian.com>
2
3         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
4         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
5         set to 80.0.  The debugger <-> runtime interface is now frozen as
6         well.   
7
8 2008-06-18  Martin Baulig  <martin@ximian.com>
9
10         * debug-mono-symfile.c
11         (load_symfile): Don't check the minor version.
12
13         * debug-mono-symfile.h: Bump the version number to 50.0.
14
15 2008-06-18  Martin Baulig  <martin@ximian.com>
16
17         * debug-mono-symfile.c
18         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
19         minimum required version.
20
21 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
22
23         * reflection.c (mono_custom_attrs_from_property): Fix support for
24         retriveving cattrs of dynamic inflated generic types.
25
26         * reflection.c (mono_custom_attrs_from_event): Same.
27
28         * reflection.c (mono_custom_attrs_from_field): Same;
29
30         * reflection.c (typebuilder_setup_events): Same cattrs of events.
31
32         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
33         Moved to metadata.c.
34
35         * metadata.c: New functions to retrive the equivalent field, event
36         of property from the generic type definition.
37
38         * metadata-internals.h: Added new functions from metadata.c.
39
40 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
41
42         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
43         to cached in a mempool is used.
44
45         * metadata.c (free_generic_class): In some situations field generic_info type
46         is not properly dup'ed and leads to double free'ing.
47
48         Fixes #400643.
49
50 2008-06-17  Mark Probst  <mark.probst@gmail.com>
51
52         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
53         this arguments (will be needed later for generic methods).
54         Collect stats.
55
56 2008-06-17  Mark Probst  <mark.probst@gmail.com>
57
58         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
59         Create a static RGCTX invoke wrapper for methods which require it.
60
61 2008-06-17  Mark Probst  <mark.probst@gmail.com>
62
63         * object.c, class-internals.h: New function for checking whether
64         an individual field is special static.
65
66 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
67
68         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
69         linear search since the table is sorted.
70
71         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
72         Fixes #324180.
73
74 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
75
76         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
77         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
78
79         * gc.c (mono_domain_finalize): Allow an infinite timeout.
80
81         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
82         
83         * threads.c (mono_thread_request_interruption): Get rid of locking, use
84         InterlockedCompareExchange to query and modify 
85         thread->interruption_requested.
86
87         * object-internals.h (struct _MonoThread): Change interruption_requested
88         to a gint32 so it can be modified by atomic operations. Add 
89         'critical_region_level' from the managed side, change small_id to a guint32,
90         add new set of 'unused' fields.
91
92         * appdomain.c: Bump corlib version.
93
94 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
95
96         * class.c (mono_class_from_name): Search modules as well. Fixes
97         #322332.
98
99 2008-06-13  Mark Probst  <mark.probst@gmail.com>
100
101         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
102         templates.  Templates are generalized with an additional type_argc
103         argument.  RGCTX templates have type_argc==0, MRGCTX templates
104         have type_argc>0.
105
106         * domain-internals.h, domain.c: New hash table for looking up
107         MRGCTXs.
108
109         * metadata.c, metadata-internals.h: Rename hash and equal
110         functions for MonoGenericInst's and make them public.
111
112         * class-internals.h: New data structures for the MRGCTX.  Macros
113         for distinguishing slots in the RGCTX and the MRGCTX.
114
115 2008-06-13  Mark Probst  <mark.probst@gmail.com>
116
117         * object.c (mono_method_get_imt_slot): Put the same methods of
118         different instantiations of the same generic interface in the same
119         IMT slots, to make generic sharing simpler.
120
121 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
122
123         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
124
125         * metadata.c (mono_metadata_field_info_with_mempool): Added.
126         This function works just like mono_metadata_field_info, but
127         accept a mempool as argument to be used allocating memory.
128
129         * marshal.c (mono_marshal_load_type_info): Use new function
130         to load marshal data into image mempool.
131
132 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
133
134         * class.c (mono_class_inflate_generic_type_with_mempool):
135         This function allows to inflate a generic type using
136         a mempool.
137
138         * class.c (inflate_generic_type): Take a mempool as argument
139         and use it to do type dup'ing.
140
141         * class.c (mono_class_setup_fields): Field type for generic
142         generic classes are allocated from the image mempool.
143
144         * metadata.c (free_generic_class): Inflated field type is
145         now allocated in the image mempool.
146
147 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
148
149         * threads.c (thread_cleanup): Free MonoThread::name.
150
151 2008-06-12  Marek Habersack  <mhabersack@novell.com>
152
153         * appdomain.c (ensure_directory_exists): avoid unnecessary
154         mkdir(2) calls when the shadow directory already exists.
155         (mono_make_shadow_copy): copy also satellite assemblies from the
156         private bin directories.
157
158 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
159
160         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
161         
162         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
163         a page boundary. Fixes #396219.
164
165 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
166
167         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
168         due to double-checked locking.
169
170 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
171
172         * assembly.c (build_assembly_name): Release memory on failure.
173
174         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
175
176 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
177
178         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
179         memory on failure.
180
181 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
182
183         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
184         memory on failure.
185
186 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
187
188         * loader.c (field_from_memberref): Check if field signature type is equal
189         to the non-inflated type of the field. Fixes #398980.
190
191 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
192
193         * assembly.c (mono_assembly_load_from_full): Call 
194         mono_assembly_load_friends () outside the assemblies lock, since it can
195         acquire the loader lock. Fixes #323696.
196
197         * reflection.c (resolve_object): Inflate the inst with the context for
198         FieldOnTypeBuilderInst. Fixes #399010.
199
200 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
201
202         * reflection.c (mono_image_get_field_on_inst_token): Don't
203         inflate the field to encode it's signature. If it's a
204         VAR or MVAR it should stay that way in the signature.
205         Fixes #399047.
206
207 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
208
209         * reflection.c (resolve_object): Release memory of inflated types.
210
211 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
212
213         * loader.c (mono_method_get_signature_full): Remove assert about
214         loading a methodspec to a generic method. We have such methods, such as
215         System.Threading.Interlocked::CompareExchange<T>.
216         This assert was removed since it crashes the verifier when it checks
217         methods calling CompareExchange<T>.
218
219 2008-06-10  Marek Safar  <marek.safar@gmail.com>
220
221         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
222         of Type array and not MonoType.
223
224 2008-06-10  Marek Habersack  <mhabersack@novell.com>
225
226         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
227         <lupus@ximian.com>
228
229 2008-06-10  Martin Baulig  <martin@ximian.com>
230
231         * debug-mono-symfile.h
232         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
233         changes to the file format, but we were generating incorrect
234         source file indices in the line number table due to a bug, which
235         made backtraces report an incorrect source file.
236
237 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
238
239         * mono-debug.c: Moved mono_debug_free_method_jit_info from
240         mini/debug-mini.c to here.
241
242         * mono-debug.c (il_offset_from_address): Free memory from find_method.
243
244         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
245         use it to release structs returned by mono_debug_find_method.
246
247 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
248
249         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
250         since it needs to set method->slot for all interface methods.
251
252 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
253
254         * class-internals.h: Forgot to add.
255
256 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
257
258         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
259
260         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
261         Lookup the custom attributes from property_hash.
262
263         * reflection.c (mono_save_custom_attrs): Save the custom attributes
264         in property_hash. Allocate all data using the image mempool.
265
266         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
267         for dynamic_custom_attrs to checks if the image is dynamic.
268
269 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
270
271         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
272         assemblies array.
273         
274         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
275         runtime functions while holding the domain assemblies lock.
276
277 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
278
279         * verify.c: Reapplied the last bit of the reverted changes.
280
281 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
282
283         * verify.c: Reapplied more of the reverted changes.
284
285 2008-06-09  Martin Baulig  <martin@ximian.com>
286
287         * debug-mono-symfile.c (load_symfile): Check the major version
288         first; if it's wrong, don't print the minor version in the error message.
289
290 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
291
292         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
293         lock instead of the domain lock to avoid deadlocks, since the thread might
294         already hold the loader lock.
295
296         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
297         (mono_thread_attach): Ditto.
298
299         * monitor.c: Use a TLS variable for holding the current thread id instead
300         of calling pthread_self ().
301         (mono_monitor_init_tls): New internal function to initialize the TLS
302         variable.
303         (mono_monitor_try_enter_internal): Put the owner == id check after the
304         owner == 0 check.
305
306         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
307         missed optimizations when using gcc-4.3.
308
309 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
310
311         * reflection.c (mono_dynamic_image_free): Free the memory
312         used by MonoGenericParam in MonoDynamicImage::gen_param.
313
314         * reflection.c (mono_reflection_setup_generic_class): Allocate
315         container from mempool.
316
317         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
318         container from mempool.
319
320 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
321
322         * threads.c (mono_set_pending_exception): New internal function to set the
323         pending exception of the current thread.
324         (mono_thread_get_and_clear_pending_exception): Check for 
325         thread->pending_exception as well.
326
327         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
328
329         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
330         it can trigger a collection.
331
332 2008-06-06  Martin Baulig  <martin@ximian.com>
333
334         Merged the `debugger-kahalo' branch.
335
336         * mono-debug.h
337         (MONO_DEBUGGER_VERSION): Bumped to 72.
338
339         * debug-mono-symfile.h
340         (MonoSymbolFileMethodIndexEntry): Removed.
341         (MonoSymbolFileMethodEntry): New public typedef.
342         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
343         (MonoSymbolFileSourceEntry): Remove everything except `index' and
344         `data_offset'.
345         (MonoSymbolFileMethodEntry): Removed.
346         (MonoSymbolFileLexicalBlockEntry): Removed.
347         (MonoSymbolFileLineNumberEntry): Removed.
348         (MonoDebugLexicalBlockEntry): Removed.
349         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
350         removed `num_il_offsets' and `il_offsets'.
351         (MonoSymbolFile): Replace `version' with `major_version' and
352         `minor_version'.
353         (MONO_SYMBOL_FILE_VERSION): Replace with
354         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
355         `MONO_SYMBOL_FILE_MINOR_VERSION'.
356
357         * debug-mono-symfile.c
358         (mono_debug_symfile_lookup_location): Add support for the new line
359         number table format.
360
361 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
362
363         * metadata.c (free_generic_class): Release the inflated
364         MonoClass of dynamic generic classes if it's not a generic
365         type definition.
366
367 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
368
369         * verify.c: Reapplied more of the reverted changes.
370
371 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
372
373         * reflection.c (lookup_custom_attr): Clean the cached flag or
374         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
375         for SRE types.
376
377 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
378
379         * verify.c: Reapplied a small part of the reverted changes.
380
381 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
382
383         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
384
385         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
386         previously in managed code.
387         (mono_monitor_exit): Ditto.
388         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
389
390         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
391         the managed definition.
392
393 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
394
395         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
396
397 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
398
399         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
400         
401         * monitor.c: Add some micro optimizations.
402
403         * icall.c (type_from_typename): Handle 'bool'.
404
405 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
406
407         * verify.c: Implement constructor verification per P III 1.8.1.4.
408         Fixes #396716.
409
410 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
411
412         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
413         holding the assemblies lock here too.
414
415 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
416
417         * verify.c: Kill stack_top function.
418
419 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
420
421         * verify.c: Kill stack_get function.
422
423 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
424
425         * verify.c (mono_method_verify): Last change broke the build. Fixed.
426
427 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
428
429         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
430         more reliable.
431
432         * verify.c (mono_method_verify): Inflate params and locals to avoid
433         mismatch when checking for compatibility.
434
435 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
436
437         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
438         Length prefix should be size in bytes. Fix bug #339530.
439         
440         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
441         Length prefix should be size in bytes. Fix bug #339530.
442
443         Code is contributed under MIT/X11 license.
444
445 2008-06-05  Bill Holmes <billholmes54@gmail.com>
446
447         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
448
449         Contributed under MIT/X11 license.
450
451 2008-06-05  Martin Baulig  <martin@ximian.com>
452
453         * mono-debug-debugger.c
454         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
455
456 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
457
458         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
459         while holding the assemblies lock to prevent deadlocks. Handle the case
460         where the search hook returns NULL but the assembly was still loaded.
461         Fixes #323696.
462
463         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
464         modify domain state.
465
466 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
467
468         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
469         * Makefile.am (pedump_LDADD): Post-process object files and
470         add dtrace-generated object file, if necessary.
471
472         Code is contributed under MIT/X11 license.
473
474 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
475
476         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
477
478 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
479
480         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
481
482 2008-06-04  Mark Probst  <mark.probst@gmail.com>
483
484         * threads.c: Try to free everything from the delayed free table
485         when shutting down threads, and set the variable to NULL after the
486         table is freed so that calling
487         mono_thread_hazardous_try_free_all() when shutting down the root
488         domain doesn't crash.
489
490 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
491
492         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
493         the caller if resulting type was inflated.
494
495         * class.c (mono_class_create_from_typespec): Free the MonoType if it
496         was inflated.
497
498         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
499
500
501 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
502
503         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
504         class library tests.
505
506         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
507         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
508         #396989.
509
510 2008-06-04  Mark Probst  <mark.probst@gmail.com>
511
512         * domain.c, domain-internals.h: The JIT infos are now freed by the
513         JIT info table code.  They are freed immediately if there only a
514         single JIT info table in circulation.  If there is more, the free
515         is delayed via a queue.
516
517         * threads.c, threads-types.h: New hazard pointer function for
518         freeing all freeable delayed items in one sitting.
519
520 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
521
522         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
523
524         * reflection.c (typebuilder_setup_properties): Same.
525
526         * reflection.c (typebuilder_setup_events): Same.
527
528 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
529
530         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
531         and use it for allocating memory.
532
533         * reflection.c (mono_marshal_spec_from_builder): Same.
534
535         * reflection.c: Change code to use new signatures.
536
537         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
538
539 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
540
541         * decimal.c (rescale128): Put back one line which was accidently commented
542         out.
543         
544         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
545         to cause crashes.
546
547 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
548
549         * reflection.c (mono_reflection_generic_class_initialize): Name must
550         be always malloc'ed so we can free it later on. Do this for field, property
551         and event.
552
553         * metadata.c (free_generic_class): Free field, property and event names.
554
555 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
556
557         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
558         instead of g_memdup.
559
560         * reflection.c (typebuilder_setup_fields): Same.
561
562 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
563
564         * decimal.c (rescale128): Optimize this function a bit more.
565
566 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
567
568         * metadata.c (free_generic_class): Release some memory from
569         SRE generic classes.
570
571 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
572
573         * reflection.c (mono_image_get_generic_field_token): No reference
574         to name is kept, free it.
575
576         * reflection.c (mono_reflection_generic_class_initialize): Free
577         more memory of the inflated field.
578
579 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
580
581         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
582         code.
583
584 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
585
586         * reflection.c (mono_dynamic_image_free): Release memory used by
587         MonoDynamicImage::array_methods elements.
588
589         * reflection.c (assembly_add_win32_resources): Release memory after
590         encoding.
591
592 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
593
594         * decimal.c (log2_32): Use an optimized version for this function too.
595         
596         * decimal.c (log2_64): Fix this on 32 bit machines.
597
598 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
599
600         * class.c (mono_dup_array_type): Implement allocation using a mempool.
601
602         * class.c (mono_metadata_signature_deep_dup): Same.
603
604         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
605         a mempool.
606
607         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
608
609         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
610
611         * metadata-internals.h: Added mono_metadata_signature_dup_full.
612
613         * class-internals.h: Update signatures to take a MonoMemPool.
614
615 2008-06-02  Dick Porter  <dick@ximian.com>
616
617         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
618         * icall-def.h: Add
619         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
620         FormatMessage API to get the error text.  Fixes bug 321827.
621
622 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
623
624         * decimal.c: Add some micro optimizations to make decimal operations faster.
625
626 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
627
628         * reflection.c (method_encode_clauses): Take a mempool
629         as parameter and use it to allocate the clause array.
630
631         * reflection.c (mono_image_get_field_on_inst_token): Free
632         the inflated type after encoding it.
633
634         * reflection.c (mono_dynamic_image_free): Free each element
635         of MonoDynamicImage::gen_params.
636
637         * reflection.c (reflection_methodbuilder_to_mono_method):
638         Allocate the generic param array from the mempool.
639         Allocate signature params from the mempool.
640
641         * reflection.c (mono_reflection_generic_class_initialize):
642         Free inflated fields after been used.
643
644 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
645
646         * icall.c: Reapply the memory leak fixes as they no
647         longer make mono crash.
648
649 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
650
651         * reflection.c (mono_type_get_object): Don't store the suplied
652         MonoType with type_hash. A caller which pass a type that
653         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
654         might end with a pointer to freed memory.
655         The solution is to use byval_arg or this_arg from the associated
656         MonoClass of the supplied type.
657
658 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
659
660         * icall.c: Revert the rest of the last change as it breaks the build too.
661
662 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
663
664         * icall.c: Revert a leak fix as it's breaking the build.
665
666 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
667
668         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
669
670 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
671
672         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
673
674 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
675
676         * icall.c: Fix some memory leaks.
677
678 2008-05-29  Dick Porter  <dick@ximian.com>
679
680         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
681         async socket operations from the pending list when a socket
682         closes.  Leaving it until the threadpool services the event
683         exposes a race condition when a socket descriptor is reused.
684         Fixes bug 377589.
685
686 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
687
688         * object.c: Fix negative index check for array alocation.
689
690 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
691
692         * icall.c, marshal.c: Delegate wrappers should skip visibility.
693         This check is performed by the verifier for IL created delegates
694         and by Delegate::CreateDelegate for programatically created ones.
695         Fixes #372406.
696
697 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
698
699         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
700         Fix code to use mono_array_size_t instead of int.
701
702         Based on patch by Luis F. Ortiz.
703         Contributed under X11 license.
704         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
705
706 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
707
708         * icall.c: Added ves_icall_System_Array_GetLongLength and
709         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
710         arrays.
711
712         * icall.h: Export both new functions.
713
714         Based on patch by Luis F. Ortiz.
715         Contributed under X11 license.
716         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
717
718 2008-05-28  Martin Baulig  <martin@ximian.com>
719
720         The debugger now requires exactly r103463.
721
722         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
723         This version is not supported by the debugger, wait for 72.
724
725 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
726
727         * object.h: Changed array related functions to use
728         mono_array_size_t instead of guint32. Forgot to commit this file.
729
730         Patch by Luis F. Ortiz.
731         Contributed under X11 license.
732         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
733
734
735 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
736
737         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
738         don't define it. Use the number literal instead.
739
740 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
741
742         * icall.c: Changed array related functions to use
743         mono_array_size_t instead of guint32.
744
745         * icall.c (ves_icall_System_Array_GetLength): Check for length
746         overflow under MONO_BIG_ARRAYS.
747
748         Based on patch by Luis F. Ortiz.
749         Contributed under X11 license.
750         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
751
752 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
753
754         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
755
756         Based on patch by Luis F. Ortiz.
757         Contributed under X11 license.
758         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
759
760 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
761
762         * object.c, object.h: Changed array related functions to use
763         mono_array_size_t instead of guint32.
764
765         Patch by Luis F. Ortiz.
766         Contributed under X11 license.
767         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
768
769 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
770
771         * object.h: Introduced mono_array_size_t typedef. This must be used
772         in all places an array length is expected. This is 64bits wide if
773         MONO_BIG_ARRAYS is enabled.
774
775         Patch by Luis F. Ortiz.
776         Contributed under X11 license.
777         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
778
779 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
780
781         * security-manager.c class.c: Set the class exception info by calling
782         mono_class_set_failure ().
783
784         * class.c (mono_class_get_exception_data): New accessor function.
785         (mono_class_set_failure): Store exception_data in the property hash.
786
787         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
788         the struct as a property.
789
790         * loader.c (mono_get_method_full): Store the lookup result for method
791         tokens in method_cache, the others in methodref_cache to decrease the memory
792         usage of hash tables.
793
794         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
795         (mono_image_init): method_cache is lazy inited now.
796
797         * metadata-internals.h (struct _MonoImage): Change method_cache to
798         a MonoValueHashTable, add a separate methodref_cache.
799
800 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
801
802         * number-formatter.h: Fix tables to avoid arithemtic overflow in
803           Double.ToString as exposed by Bug #383531.
804
805 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
806
807         * number-formatter.h: Make some tables static.
808
809         * class.c (mono_method_set_generic_container): New accessor function.
810         (mono_method_get_generic_container): Ditto.
811
812         * class-internals.h (struct _MonoMethod): Remove rarely used 
813         'generic_container' field, store it in the property hash instead. Add 
814         'is_generic' boolean field instead.
815
816         * image.c (mono_image_init): Initialize property_hash.
817         (mono_image_close): Destroy property_hash.
818
819         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
820         hold rarely used fields of runtime structures belonging to this image.
821
822         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
823         to get/set method->generic_container.
824
825         * loader.c (mono_get_method_from_token): Avoid loading the method header for
826         generic methods.
827
828 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
829
830         * class.c (mono_class_inflate_generic_method_full): Don't increase
831         mono_stats.inflated_method_count for methods found in the cache.
832
833         * threads.c (mono_thread_request_interruption): Add a comment about 
834         QueueUserAPC ().
835
836 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
837
838         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
839         interface_offsets_packed table.
840         
841         * class.c (mono_class_init): Remove some dead code.
842
843         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
844         mono_class_setup_vtable () when CAS is active to detect security problems.
845
846 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
847
848         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
849
850         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
851         parameters as it's irrelevant for delegate checking.
852
853 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
854
855         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
856
857         * class.c (mono_class_init): Control the creation of a generic vtable using
858         a global which is true by default, but set to false by the runtime startup code.
859         
860         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
861         Disabled for now since it breaks the embedding API.
862         Move the setup of class->methods for arrays to mono_class_setup_methods ().
863         (mono_class_setup_methods): Add a memory barrier.
864
865         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
866         when mono_class_init () doesn't compute the generic vtable.
867         
868 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
869         * profiler.c: Added mono_profiler_install_statistical_call_chain,
870         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
871         to support call chains (backtrace) in the stat profiler.
872         * profiler.c, profiler-private.h: Likewise.
873
874 2008-05-22  Mark Probst  <mark.probst@gmail.com>
875
876         * generic-sharing.c: Init generic class when a method of it is
877         requested via a runtime generic context.
878
879 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
880
881         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
882
883         * reflection.c (mono_type_get_object): Add a FIXME.
884
885         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
886
887         * class.c (mono_class_get_method_by_index): New helper function, returning an
888         entry in the class->methods array.
889
890 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
891
892         * class.c (mono_class_init): Only do the array optimization for szarrays. 
893         Avoid creating a generic vtable for generic instances as well.
894         (mono_class_get_method_from_name_flags): Don't search in the metadata for
895         generic instances.
896
897 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
898
899         * loader.c (mono_get_method_constrained): Inflate the signature
900         with class context. Fix #325283.
901
902 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
903
904         * object.c (mono_class_create_runtime_vtable): Add a comment.
905
906         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
907         where needed.
908         (setup_interface_offsets): Handle the case when this is called twice for arrays.
909         (mono_class_setup_vtable_general): Add an assert.
910         (mono_class_init): Avoid creating a generic vtable for arrays.
911
912         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
913         here, let mono_class_init () do that.
914
915         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
916         interfaces in mscorlib.
917
918         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
919         interfaces. Add some comments.
920         (mono_class_init): Call mono_class_setup_methods () here since it is no
921         longer called by mono_class_setup_vtable ().
922
923         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
924         not set in class->vtable.
925         (mono_class_create_runtime_vtable): Reenable the disabled code.
926
927         * object.c (mono_class_create_runtime_vtable): Disable the last change for
928         now as it causes some test failures.
929
930         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
931         if using the vtable trampoline. Also remove some strange code which put the
932         generic methods themselves into the vtable slots. Remove the AOT init_vtable
933         stuff as it is no longer needed.
934
935 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
936
937         * pedump.c: Give make --verify all option check code as well.
938         Using --verify code won't check for metadata now.
939
940 2008-05-19  Martin Baulig  <martin@ximian.com>
941
942         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
943
944         * mono-debug.c
945         (_mono_debug_using_mono_debugger): New global variable; it's set
946         directly by the debugger, so mono_debug_using_mono_debugger() also
947         works after attaching.
948
949 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
950
951         * object.c (mono_class_create_runtime_vtable): Use memory barriers
952         as we do double checked locking on MonoClass::runtime_info and
953         MonoClassRuntimeInfo::domain_vtables.
954
955 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
956
957         * debug-helpers.c (print_field_value): Fix a warning.
958
959 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
960
961         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
962         set in the AOT case.
963
964 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
965
966         * class.c (mono_class_setup_vtable_general): Use memory barriers
967         as we do double checked locking on MonoClass::vtable.
968
969 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
970
971         * reflection.c (resolve_object): Inflate only if the generic context
972         is not null. Fixes #389886.
973
974 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
975
976         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
977         instead of g_free.
978
979         Code is contributed under MIT/X11 license.
980
981 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
982
983         * class.c: Revert unrelated change.
984
985 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
986
987         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
988         a generic instantiation, use mono_class_from_mono_type instead of playing
989         with MonoType directly.
990
991 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
992
993         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
994         checks must ignore generic instantiations, so mono_class_has_parent is not
995         suitable. Fixes #390128.
996
997 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
998
999         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
1000         it to avoid registering tokens during metadata generation. Fixes #390023.
1001
1002 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
1003
1004         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
1005         consistent.
1006
1007         Contributed under MIT/X11 license.
1008
1009 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
1010
1011         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
1012         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
1013         to fixup the EXE image.
1014         (mono_cleanup): Use mono_close_exe_image.
1015         (mono_close_exe_image): New function.
1016         * image.c: Include "marshal.h".
1017         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
1018         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
1019         counting when the image is loaded outside of mono_image_open_full. Set status
1020         based on GetLastError.
1021         * coree.c: Include required headers. Add init_from_coree.
1022         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
1023         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
1024         (_CorExeMain): Set init_from_coree.
1025         (CorExitProcess): Only call ExitProcess for now.
1026         (CorBindToRuntimeEx): New stub implementation.
1027         (CorBindToRuntime): New function.
1028         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
1029         (MonoFixupExe): ILONLY executables require no fixups.
1030         (mono_set_act_ctx): New function to set activation context.
1031         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
1032         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
1033         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
1034         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
1035         as MONO_INTERNAL.
1036         * domain-internals.h: Add mono_close_exe_image.
1037
1038         Contributed under MIT/X11 license.
1039
1040 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
1041
1042         * metadata.c (mono_metadata_compute_size): Correctly calculate field
1043         size for generic param and event tables. Fixes #388977.
1044
1045 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
1046
1047         * loader.c (mono_method_signature): Use memory barriers because of the double
1048         checked locking pattern.
1049
1050         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
1051         aborting or aborted as well. Fixes #376391.
1052         
1053         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
1054         existing runtime state in the Suspend handler during shutdown.
1055
1056 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
1057
1058         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
1059
1060         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
1061         which are starting up or shutting down.
1062
1063         * threads.c (mono_threads_set_shutting_down): Don't return a value since
1064         this function never returns if the runtime is already shutting down.
1065
1066         * icall.c (ves_icall_System_Environment_Exit): Update after 
1067         mono_threads_set_shutting_down () signature change.
1068         
1069 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
1070
1071         * class.c: Added can_access_instantiation to verify if the instantiation
1072         is visible. Fix access check for nested types as they returned TRUE
1073         before doing type and generic instantiation visibility checks.
1074
1075 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
1076
1077         * reflection.c (mono_reflection_create_generic_class): The created type
1078         must have a different container from its TypeBuilder. Otherwise they
1079         will end sharing generic arguments, which is wrong.
1080
1081         Due to the sharing, making a generic instance of the created type using
1082         the TypeBuider generic arguments resulted in the generic type definition
1083         been returned, which is wrong as well.
1084
1085         As a bonus the code was leaking the type_params array. This memory should
1086         be allocated from the image mempool.
1087
1088         This fixes bug #354047.
1089
1090 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
1091
1092         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
1093         to here         as they are now used in assembly.c new code.
1094         Added a skipverification flag to MonoAssembly.
1095         New internal function mono_assembly_has_skip_verification.
1096
1097         * assembly.c: New function mono_assembly_has_skip_verification. It checks
1098         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
1099         part of #387274.
1100
1101 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
1102
1103         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
1104         needed. Fixes #387034.
1105
1106         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
1107
1108 2008-05-06  Miguel de Icaza  <miguel@novell.com>
1109
1110         * assembly.c (mono_assembly_load_reference): Prevent crash while
1111         disassembling Silverlight 2.0 executables while we still do not
1112         have GACed libraries.
1113
1114 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
1115
1116         * reflection.c: Special case generic type definitions as well. Fixes #383444.
1117
1118 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
1119
1120         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
1121         of the dynamic case. Fixes #387404.
1122
1123 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1124
1125         *verify.c (mono_verifier_is_class_full_trust): If under
1126         verify_all and the verifier mode was not set, only
1127         gac and corlib types are fulltrust. This makes --verify-all
1128         usable to detect unverifiable code, which is the expected
1129         use case.
1130
1131 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1132
1133         * verify.h: Ops, commited the header with debug
1134         enabled.
1135
1136 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
1137
1138         * verify.c (merge_stack): Use the new value on unverifiable
1139         stack merges.
1140
1141         * verify.c (verify_type_compatibility_full): Comparison
1142         of nullable types can't use mono_class_is_assignable_from.
1143
1144         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
1145         that makes all verification errors be reported.
1146
1147         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
1148         mono_method_verify.
1149
1150 2008-05-05  Robert Jordan  <robertj@gmx.net>
1151
1152         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
1153         support for value types. See #386415.
1154
1155         * object.c: comments.
1156
1157         Code is contributed under MIT/X11 license.
1158
1159 2008-05-05  Martin Baulig  <martin@ximian.com>
1160
1161         * debug-mono-symfile.h
1162         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
1163         for old pre-terrania symbol files.
1164
1165 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
1166
1167         * mono-config.c: Add ppc64 architecture.
1168
1169         Code is contributed under MIT/X11 license.
1170
1171 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
1172
1173         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
1174           PPC64 uses function descriptors as well.
1175
1176         Code is contributed under MIT/X11 license.
1177
1178 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
1179
1180         * object.c (compute_class_bitmap): Ignore literal static fields.
1181
1182         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
1183         var has an invalid format.
1184         (describe_ptr): Add some sanity checks for the vtable.
1185         (add_nursery_frag): Clear unused nursery fragments.
1186         (major_collection): Clear all remaining nursery fragments.
1187
1188 2008-05-03  Robert Jordan  <robertj@gmx.net>
1189
1190         * image.c, metadata-internals.h: add thunk_invoke_cache.
1191
1192         * marshal.c, marshal.h: implement
1193         mono_marshal_get_thunk_invoke_wrapper ().
1194
1195         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
1196
1197         Code is contributed under MIT/X11 license.
1198
1199 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
1200
1201         * verify.c (do_leave): Empty the stack.
1202
1203 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
1204
1205         * class.c (mono_class_is_assignable_from): Variance
1206         doesn't work between reference and value types. For example,
1207         given type C<T+>, C<int32> is not assignable to C<object>.
1208         Break the argument checking loop on first error. 
1209
1210 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
1211
1212         * icall.c : base64_to_byte_array() needs some more strict
1213           check for sequence of '=' characters. Patch by Santa
1214           Marta (http://deee.g.hatena.ne.jp/santamarta).
1215
1216           Contributed under MIT/X11 license.
1217           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
1218
1219 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
1220
1221         * domain.c: Disable LoadLibrary support to fix Win32 build.
1222
1223         Code is contributed under MIT/X11 license.
1224
1225 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
1226
1227         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
1228         to help with cache behaviour.
1229
1230 2008-05-01  Miguel de Icaza  <miguel@novell.com>
1231
1232         * appdomain.c (mono_domain_from_appdomain): Add new accessor
1233         method. 
1234
1235 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
1236
1237         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
1238
1239 2008-05-01  Dick Porter  <dick@ximian.com>
1240
1241         * process.c (process_get_fileversion): Only pass 16 bits of
1242         language ID to VerLanguageName.  Fixes bug 381204.
1243
1244 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1245
1246         * verify.c (mono_method_verify): Fix the comparison
1247         operator for code bounds check.
1248
1249 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
1250
1251         * verify.c (mono_method_verify): Check the bounds of
1252         all access of the code array.
1253
1254 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
1255
1256         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
1257
1258 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
1259
1260         * image.c (mono_image_strong_name_position): Fix return value when the rva is
1261         not valid.
1262
1263 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
1264
1265         * loader.c (mono_get_method_from_token, mono_method_signature): Add
1266         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
1267         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
1268         fixup main EXE images when using mono.exe for mixed-mode assembly support.
1269         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
1270         mono_runtime_load.
1271         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
1272         runtime initialization from metadata.
1273         * assembly.c: Remove obsolete ceGetModuleFileNameA.
1274         (mono_set_rootdir): Use mono_get_module_file_name.
1275         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
1276         handles.
1277         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
1278         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
1279         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
1280         MonoCLIImageInfo. Add support for module handles.
1281         (load_cli_header): Update mono_cli_rva_image_map signature.
1282         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
1283         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
1284         (mono_image_rva_map): Add support for module handles.
1285         (mono_image_ensure_section_idx): Add support for module handles.
1286         (mono_image_close): Add support for module handles.
1287         (do_load_header): Add support for module handles.
1288         (mono_image_open_from_module_handle): New function for internal use.
1289         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
1290         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
1291         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
1292         handles.
1293         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
1294         * image.h: Add mono_image_fixup_vtable.
1295         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
1296         support.
1297         * coree.h: New file.
1298         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
1299         unsupported native code.
1300         (mono_marshal_set_callconv_from_modopt): New function splitted from
1301         mono_marshal_get_managed_wrapper.
1302         (mono_marshal_get_managed_wrapper): Use
1303         mono_marshal_set_callconv_from_modopt.
1304         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
1305         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
1306         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
1307         that results in a deadlock when the runtime is loaded in _CorDllMain.
1308         * Makefile.am: Add coree.c and coree.h.
1309
1310         Contributed under MIT/X11 license.
1311
1312 2008-04-28  Mark Probst  <mark.probst@gmail.com>
1313
1314         * generic-sharing.c: Search for type arguments in array element
1315         types as well.
1316
1317 2008-04-28  Mark Probst  <mark.probst@gmail.com>
1318
1319         * class-internals.h, generic-sharing.c: New, small runtime generic context.
1320
1321         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
1322
1323         * object.c: Don't setup the RGCTX when the vtable is created,
1324         because we're setting it up lazily now.
1325
1326 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
1327
1328         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
1329         64 bit support.
1330
1331 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1332
1333         * verify.c (verify_class_for_overlapping_reference_fields): 
1334         If class is under fulltrust allow reference types to overllap
1335         if they have the same RVA.
1336
1337 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
1338
1339         * pedump.c: Added new flag valid-only, that makes the verifier
1340         behaves just like --security=validil. It won't fail type load
1341         due to unverifiable restrictions.
1342
1343 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1344
1345         * class-internals.h (struct MonoMethod): Added a verification_success
1346         field to cache verifier executions. Reduced MonoMethod:slot size by
1347         one bit.
1348
1349 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
1350
1351         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
1352         instead of a 'vt' argument to save an indirection and to allow these to be used
1353         for valuetypes.
1354         (scan_vtype): New helper function to scan an area using a gc descriptor.
1355         (mono_gc_wbarrier_value_copy): Implement this.
1356         (handle_remset): Add support for REMSET_VTYPE.
1357         (find_in_remset_loc): Ditto.
1358         (mono_gc_base_init): Allow some debugging options to be controlled through the
1359         use of the MONO_GC_DEBUG env variable.
1360         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
1361         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
1362
1363 2008-04-23  Martin Baulig  <martin@ximian.com>
1364
1365         * domain.c (mono_domain_create): Move the call to
1366         mono_debug_domain_create() down, after allocating the domain id.
1367
1368 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
1369
1370         verify.c (verify_class_for_overlapping_reference_fields): Skip
1371         static fields while verifying for overlapping fields as they
1372         don't matter at all.
1373
1374 2008-04-23  Marek Habersack  <mhabersack@novell.com>
1375
1376         * domain-internals.h: added a declaration of
1377         mono_make_shadow_copy.
1378
1379         * assembly.c (mono_assembly_open_full): shadow copying of
1380         assemblies moved to here, so that all the assemblies within the
1381         application domain's private binary directories can be
1382         processed. Fixes bug #380546
1383
1384         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
1385         mono_make_shadow_copy and made non-static. The decision whether
1386         to shadow-copy an assembly is made based on its location - it's
1387         copied if it's in one of the private application domain binary
1388         directories and its different to the target file in the shadow
1389         directory. Fixes bug #380546
1390
1391 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
1392
1393         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
1394
1395         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
1396         types.
1397
1398         * reflection.c (mono_image_create_token): Handle 
1399         Method/ConstructorOnTypeBuilderInst.
1400         (resolve_object): Ditto.
1401         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
1402         so it can be called from resolve_object. Also handle the case when the inflated
1403         class already has its methods setup.
1404
1405 2008-04-21  Martin Baulig  <martin@ximian.com>
1406
1407         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
1408
1409 2008-04-20  Geoff Norton  <gnorton@novell.com>
1410
1411         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
1412         pointer dereference.
1413
1414 2008-04-15  Marek Habersack  <mhabersack@novell.com>
1415
1416         * appdomain.c (try_load_from): if IOMAP is in effect, call the
1417         portability API to look up the assembly file. Fixes behavior in
1418         situations when the application has a bin/ directory, but the
1419         assembly search patch refers to Bin/ (and thus the requested file
1420         name is Bin/SomeLibrary.dll). Fixes bug #379888
1421
1422 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
1423
1424         verify.c (mono_type_is_generic_argument): Extracted this check
1425         from a dozen places to here.
1426
1427         verify.c: Fixed all issues related to boxing generic arguments
1428         and their constraints.
1429
1430 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
1431
1432         verify.c (mono_class_interface_implements_interface): Fix win32 build.
1433
1434 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
1435
1436         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
1437         isn't finished yet. Fixes #363447.
1438
1439 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
1440
1441         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
1442         Fixes #346419.
1443
1444 2008-04-13  Jb Evain  <jbevain@novell.com>
1445
1446         * domain.c: update the 2.1 profile versions.
1447         Merged from the Moonlight 2 branch.
1448
1449 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
1450
1451         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
1452         mscorlibs for the non-refonly case as well.
1453
1454         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
1455         in mono_assembly_load_from_full (). Fixes #378924.
1456
1457 2008-04-11  Geoff Norton  <gnorton@novell.com>
1458
1459         * icall.c: The global extern environ doesn't exist on Mac.  We
1460         need to call NSGetEnviron instead.
1461
1462 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1463
1464         verify.c: Add generic method constraint verification.
1465
1466 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1467
1468         class.c (mono_class_inflate_generic_method_full): Add a long
1469         explanation to the is_mb_open hack. Remove the FIXME.
1470
1471 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1472
1473         * verify.c (mono_method_verify): Mark all unknown opcodes
1474         as invalid. Mark jmp as unverifiable.
1475
1476 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1477
1478         * verify.c: Add code to do type constraint verification on class instances.
1479
1480         * verify.c (mono_verifier_verify_class): Use the type constraint 
1481         verification code.
1482
1483 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
1484
1485         * class.c (mono_class_get_field_default_value): Don't pass cindex
1486         as hint to mono_metadata_get_constant_index. The local is not initialized
1487         and should contain garbage most of the time. This could only work
1488         with a lot of luck.
1489
1490 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1491
1492         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
1493
1494 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
1495
1496         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
1497
1498         * class.c (mono_class_from_generic_parameter): Save the token of the
1499         generic param in MonoClass::sizes.generic_param_token.
1500
1501         * reflection.c (mono_custom_attrs_from_class): If the class type is
1502         VAR or MVAR retrieve the attributes of the generic param.
1503
1504 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1505
1506         * class.c (mono_class_init): Do class verification if the verifier
1507         is enabled.
1508
1509 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1510
1511         * verify-internal.h: Added mono_verifier_verify_class.
1512
1513         * verify.c: Added mono_verifier_verify_class. It checks for
1514         classes with explicit layout that have overlapping reference fields.
1515
1516         * pedump.c: Init the verifier state prior to verification. Fixed
1517         command line arguments.
1518
1519 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
1520
1521         * Makefile.am: Added verify-internals.h, hopefully fix the build.
1522
1523 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
1524
1525         * verify-internals.h: Fix a warning.
1526
1527 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1528
1529         * verify-internals.h: New header with the verifier configuration
1530         extracted from mini.c.
1531
1532         * verify.c: Implemented the new functions exported by verify-internals.h.
1533
1534 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
1535
1536         * verify.c: Add proper verification of ckfinite.
1537
1538 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1539
1540         * verify.c (do_conversion): Improved error message to something
1541         more meanfull.
1542
1543         * verify.c (check_is_valid_type_for_field_ops): Fix to work
1544         with primitive types.
1545
1546 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1547
1548         * verify.c: Added tail prefix checking. Marked icall
1549         as unverifible.
1550
1551 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
1552
1553         * verify.c: Fix the detection of branches to the middle
1554         of an instruction.
1555
1556 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
1557
1558         * verify.c: Implemented verification of volatile. and
1559         unaligned. prefix. Check if a type is valid after retrieving it.
1560
1561 2008-04-01  Dick Porter  <dick@ximian.com>
1562
1563         * process.c (process_get_fileversion): If there's no string block,
1564         set the file language to en_US.  Fixes the other new part of bug
1565         374600.
1566
1567 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
1568
1569         * class.c: New functions mono_method_can_access_field_full and
1570         mono_method_can_access_method_full. They perform type visibility
1571         and type site check.
1572
1573         * class-internal.h: Added exported functions.
1574
1575         * verify.c: Use new functions to implement proper visibility checks.
1576
1577 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
1578
1579         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
1580
1581 2008-03-28  Dick Porter  <dick@ximian.com>
1582
1583         * process.c (process_get_fileversion): Use the first language ID
1584         we see, rather than insisting on an invariant language.  Fixes bug
1585         374600.
1586
1587 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
1588
1589         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
1590         the streams to fix reading of invalid memory later.
1591
1592         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
1593         to ease debugging.
1594
1595 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
1596
1597         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
1598         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
1599
1600 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
1601         * threads.h: Added MonoThreadManageCallback type and
1602         mono_thread_set_manage_callback prototype
1603         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
1604         (used to store the mono_thread_manage callback).
1605         * threads.c: Added mono_thread_set_manage_callback, and handle
1606         "MonoThread->manage_callback" in build_wait_tids.
1607
1608 2008-03-26  Dick Porter  <dick@ximian.com>
1609
1610         * process.c (process_get_fileversion): Set FileVersionInfo strings
1611         to Empty when the resource doesn't have the particular info.
1612         Fixes bug 355717.
1613
1614 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
1615
1616         * verify.c (mono_method_verify): Proper prefix validation.
1617
1618 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
1619
1620         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
1621         itself in a separate argument instead of throwing them. Fixes #373448.
1622
1623         * appdomain.c: Bump corlib version.
1624
1625 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
1626
1627         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
1628
1629 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
1630
1631         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
1632         version macros.
1633
1634 2008-03-20  Mark Probst  <mark.probst@gmail.com>
1635
1636         * generic-sharing.c, class-internals.h: Code for putting
1637         reflection types into the runtime generic context.
1638
1639 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
1640
1641         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
1642         Fixes #340662. 
1643
1644
1645 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
1646
1647         * verify.c (VerifyContext): Added instruction prefix data to the struct.
1648
1649         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
1650
1651         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
1652
1653         * verify.c (do_cast): Let the result value keep the boxed status.
1654
1655         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
1656
1657 2008-03-17  Jb Evain  <jbevain@novell.com>
1658
1659         * reflection.c: when running on a 2.0 runtime, emit
1660         unconditionally the #~ header version as 2.0, and the
1661         CLI header version as 2.5, for symmetry's sake with csc.
1662
1663 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1664
1665         * class.c: Remove the unused cache_interface_offsets stuff.
1666
1667         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
1668         profiler.c: Fix warnings.
1669
1670 2008-03-16  Mark Probst  <mark.probst@gmail.com>
1671
1672         * generic-sharing.c, class-internals.h: Support for putting
1673         methods into the runtime generic context.
1674
1675 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
1676
1677         * class.c (mono_class_setup_fields): Ignore calls made to this function for
1678         classes which are generic instances of not-yet finished typebuilders. Fixes
1679         #351172.
1680
1681         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
1682
1683 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
1684
1685         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
1686
1687         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
1688         field, replace it with a hash table in MonoDynamicImage.
1689
1690         * reflection.c (inflate_mono_method): Access the generic definition object from
1691         image->generic_def_objects instead of imethod->reflection_info.
1692
1693         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
1694
1695         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
1696         
1697         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
1698         function in reflection.c so it is easier to keep in sync with the dynamic image
1699         creation code.
1700
1701         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
1702         mono_image_close ().
1703
1704 2008-03-15  Mark Probst  <mark.probst@gmail.com>
1705
1706         * class.c (mono_class_generic_sharing_enabled): Disable generic
1707         sharing for all architectures except AMD64 and x86 to fix build.
1708
1709 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1710
1711         * verify.c: Use the generic definition MonoGenericContext when available.
1712         Remove code for checking generics instance compatibility in favor of
1713         mono_class_is_assignable_from.
1714
1715 2008-03-14  Mark Probst  <mark.probst@gmail.com>
1716
1717         * marshal.c, marshal.h, metadata-internals.h, image.c,
1718         wrapper-types.h: New wrapper for invoking a shared static method
1719         without having to pass the runtime generic context argument.
1720
1721 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
1722
1723         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
1724
1725 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
1726
1727         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
1728         
1729         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
1730         create a token from a FieldOnTypeBuilderInst.
1731         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
1732         (resolve_object): Ditto.
1733
1734         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
1735         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
1736
1737 2008-03-14  Martin Baulig  <martin@ximian.com>
1738
1739         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
1740
1741         * debug-mono-symfile.h
1742         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
1743         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
1744
1745 2008-03-10  Martin Baulig  <martin@ximian.com>
1746
1747         * debug-mono-symfile.h
1748         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
1749         `lexical_block_table_offset'.
1750         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
1751         `lexical_blocks'.
1752         (MonoSymbolFile): Added `version'.
1753
1754         * mono-debug.h
1755         (MonoDebugLexicalBlockEntry): Removed.
1756         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
1757         `lexical_blocks'.
1758
1759         * mono-debug.c (mono_debug_add_method): Don't compute lexical
1760         blocks here; the debugger now does this internally.
1761
1762 2008-02-27  Martin Baulig  <martin@ximian.com>
1763
1764         * object.c (mono_runtime_exec_main): Call
1765         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
1766         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
1767
1768 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1769
1770         * verify.c (verify_type_compatibility_full): Allow native int to be converted
1771         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
1772
1773 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
1774
1775         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
1776         ldftn with a virtual method.
1777
1778 2008-03-13  Geoff Norton  <gnorton@novell.com>
1779
1780         * decimal.c:  Only include memory.h if the platform has it.
1781
1782 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
1783
1784         * assembly.c, class.c, metadata-internals.h: make sure public key
1785         tokesns are compared in a case-insensitive way. Also, all
1786         the lookups in the GAC use a lowercase public key token
1787         (gaacutil already does the lowercasing on install). Fixes
1788         bug #369541.
1789
1790 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
1791
1792         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
1793         and return value.
1794
1795 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
1796
1797         * image.c: when someone loads a mscorlib from a file, return the
1798         currently loaded mscorlib (fixes bug #369253).
1799
1800 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
1801
1802         * class.c: handle types with no parents by forcing them to have
1803         System.Object as a parent and marking them as broken (this currently
1804         allows the first part of bug #369173 to work as well, likely because
1805         we don't check for typeload exceptions everywhere yet).
1806
1807 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
1808
1809         * class.c: more complete check that types belong to corlib
1810         (fixes second part of bug #369173).
1811
1812 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
1813
1814         * generic-sharing.c:  Including glib.h for the MSVC builds to define
1815           "inline" to "__inline" before including mono-membar.h.
1816           
1817         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
1818           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
1819           MSVC builds.
1820
1821         Contributed under MIT/X11 license.
1822
1823 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1824
1825         * verify.c (do_invoke_method): Remove return type validation.
1826
1827         * verify.c (do_ret): Do return type validation at return site instead of
1828         call site.
1829
1830 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
1831
1832         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
1833
1834         * verify.c: Some todos cleaned and improved a few error messages.
1835
1836 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
1837
1838         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
1839
1840 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
1841
1842         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
1843         system types correctly.
1844
1845         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
1846         function.
1847
1848 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1849
1850         * assembly.c (build_assembly_name): Fix a warning.
1851
1852 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
1853
1854         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
1855         the called function takes an object type argument. Fixes storing or
1856         valuetypes across remoting as well as reducing memory usage.
1857         * image.c, metadata-internals.h: remove now unused ldfld_remote and
1858         stfld_remote wrapper caches.
1859
1860 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
1861
1862         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
1863         is not found.
1864
1865         * reflection.c (mono_image_register_token): New helper function to save
1866         a token->object mapping.        
1867
1868         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
1869         managed code.
1870
1871         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
1872         one dimension arrays. Fixes #367670.
1873         (mono_reflection_get_type_internal): Ditto.
1874
1875 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
1876
1877         * marshal.c: mono_load_remote_field_new() always returns object.
1878         so use the proper signature (fixes bug #366445).
1879
1880 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1881         
1882         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
1883         add an 'inline_failure' flag instead.
1884
1885 2008-03-04  Mark Probst  <mark.probst@gmail.com>
1886
1887         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
1888         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
1889         contains the location of "this", used for exception handling.
1890
1891 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
1892
1893         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
1894         their size on all platforms for perf reasons.
1895
1896 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1897
1898         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
1899         object-internal.h
1900
1901         * object-internal.h: Same.
1902
1903 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1904
1905         * reflection.h: Fix the build I just broke.
1906
1907 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1908
1909         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
1910         Test if a token is valid, this remove explicit usage of 
1911         MonoDynamicImage::tokens from the verifier code.
1912
1913         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
1914
1915         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
1916         instead of direct access to MonoDynamicImage::tokens.
1917
1918 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1919
1920         * verify.c (token_bounds_check): Fix the build I just broke.
1921
1922 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
1923
1924         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
1925
1926         * verify.c (verifier_load_method): Fixed the errors message.
1927
1928         * verify.c (mono_method_verify): Fixed a debug message.
1929
1930 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
1931
1932         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
1933         mono-perfcounters.h, class-internals.h: support for predefined
1934         writable counters, query of categories and counters, bugfixes.
1935
1936 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
1937
1938         * verify.c (do_refanytype): Verify the refanytype opcode.
1939
1940         * verify.c (mono_method_verify): Use do_refanytype.
1941
1942 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
1943
1944         * verify.c (do_mkrefany): Verify the mkrefany opcode.
1945
1946         * verify.c (mono_method_verify): Use do_mkrefany.
1947
1948 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
1949
1950         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
1951         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
1952         implementation.
1953
1954 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
1955
1956         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
1957         the type load exception.
1958
1959 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
1960
1961         * verify.c: Added a few FIXME for method signatures
1962
1963         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
1964         of mono_method_get_signature and get vararg call working. Removed unused
1965         checks for return value.
1966
1967         * verify.c (do_refanyval): Verify the refanyval opcode.
1968
1969         * verify.c (mono_method_verify): Implemented verification of arglist and
1970         use do_refanyval.
1971
1972 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
1973
1974         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
1975         vtypes to marshal.c.
1976
1977         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
1978         it works for AOT as well.
1979
1980 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
1981
1982         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
1983         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
1984         the system time is adjusted.
1985
1986 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
1987
1988         * icall.c, icall-def.h: use the new time functions (fixes the
1989         non-monotonic behaviour of TickCount).
1990
1991 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
1992
1993         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
1994         it breaks the build.
1995         
1996         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
1997         cattr is not finished yet.
1998
1999 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
2000
2001         * verify.c: Proper token validation for field, method and type.
2002
2003 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
2004
2005         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
2006
2007         * loader.c (method_from_memberref): Generate type load error instead of method missing
2008         if the type is not found.
2009
2010 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
2011
2012         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
2013         some of the conversions caused the generation of a marshal directive exception.
2014
2015 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
2016
2017         verify.c: Report which exception should be thrown by the JIT.
2018         Added a lot of FIXME notes.
2019
2020 2008-02-22  Mark Probst  <mark.probst@gmail.com>
2021
2022         * generic-sharing.c: Runtime generic context slots are not
2023         instantiated on init anymore.  Instead, provide function to do the
2024         instantiating on demand.
2025
2026         * class-internals.h: Added vtable to runtime generic context.
2027         Macros for encoding direct and indirect slot offsets in one
2028         guint32.
2029
2030 2008-02-21  Mark Probst  <mark.probst@gmail.com>
2031
2032         * object.c, generic-sharing.c: Moved some generic sharing code
2033         from object.c to generic-sharing.c.
2034
2035         * generic-sharing.c: Added support for extensible runtime generic
2036         context.
2037
2038         * metadata-internals.h: Two new hash tables in MonoImage for
2039         extensible runtime generic context support.
2040
2041         * domain.c: Unregister generic vtables upon domain unloading.
2042
2043         * image.c: Destroy new hash tables upon image unloading.
2044
2045         * metadata.c: Unregister generic subclasses upon image unloading.
2046
2047         * class-internals.h: New data structure for runtime generic
2048         context template.  New fields in the runtime generic context for
2049         extensible part.
2050
2051         * Makefile.am: Added generic-sharing.c.
2052
2053 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
2054
2055         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
2056         there is a pending loader exception, raise it.
2057
2058         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
2059         same.
2060
2061         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
2062         same.
2063
2064         Fixes #363450.
2065
2066 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
2067
2068         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
2069
2070         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
2071         
2072         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
2073         ref-only requests for compatibility with MS.
2074
2075 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
2076
2077         * reflection.c (mono_custom_attrs_from_method): Don't silently
2078         return an empty list for generic method instances.
2079         (mono_custom_attrs_from_param): Likewise.
2080
2081 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
2082             Raja R Harinath  <harinath@hurrynot.org>
2083
2084         Fix #354757
2085         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
2086         * class.c (mono_class_inflate_generic_method_full): Initialize it
2087         when a fully-open method is instantiated.
2088         * metadata.c (inflated_method_equal, inflated_method_hash): Update
2089         to new field.
2090         * reflection.c (inflate_mono_method): Don't create a temporary context.
2091
2092 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
2093
2094         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
2095         Compute correct value, to prepare for imethod->reflection_info going away.
2096
2097 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
2098
2099         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
2100
2101 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2102
2103         * verify.c: Implement skip visibility flag.
2104
2105 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
2106
2107         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
2108         which contains an extra field to tell the kind of exception that should be thrown.
2109
2110         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
2111
2112 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
2113
2114         * loader.c (mono_method_get_param_names): Initialize 'klass' after
2115         'method' is updated.
2116
2117 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
2118
2119         * class.c (mono_class_layout_fields): Set class->min_align for classes using
2120         explicit layout as well. Fixes #360375.
2121
2122 2008-02-11  Geoff Norton  <gnorton@novell.com>
2123
2124         * loader.c: Guard and dereference against inflated generic methods
2125
2126 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
2127
2128         * class.c: Include Retargetable spec in assembly name.
2129         * assembly.c: Always include PublicKeyToken spec in assembly name
2130         (with value "null" if assembly is not signed), and include
2131         Retargetable spec.
2132         * icall-def.h: Added icall for Assembly.get_fullname.
2133         * icall.c: Added icall returning the fullname of an assembly.
2134
2135 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
2136
2137         * class.c (mono_class_setup_vtable_general): Add a missing call to
2138         mono_class_setup_methods () which is needed in the AOT case.
2139
2140 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
2141
2142         * verify.c (mono_type_get_stack_name): Added. Return the name for the
2143         stack type of the given MonoType.
2144
2145         * verify.c (verify_type_compatibility_full): Handle the void type.
2146
2147         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
2148         way stack merging works.
2149
2150         * verify.c (store_local): Improved verification message.
2151
2152         * verify.c (do_branch_op): If the merging is invalid, the method
2153         is unverifiable and not invalid. Improved error message.
2154
2155         * verify.c (merge_stacks): Properly merge a boxed valuetype and
2156         a reference type diferent than System.Object. Improved error
2157         message.
2158
2159 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
2160
2161         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
2162
2163         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
2164         type of an enum even if the argument is byref.
2165
2166         * verify.c: Replace all explicit uses of enumtype and enum_basetype
2167         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
2168
2169         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
2170
2171         *verify.c (verify_type_compatibility_full): Make enum types
2172         compatible with their base types.
2173
2174         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
2175         types are compatible for the special case of a boxed valuetype and
2176         System.Object.
2177
2178         * verify.c (verify_stack_type_compatibility): The function
2179         is_compatible_boxed_valuetype was extracted from here.
2180
2181         * verify.c (push_arg): Only set ctx->has_this_store if the method
2182         is not static.
2183
2184         * verify.c (do_ldelem): Fixed a typo in an error message and added
2185         strict check for mixing int32 and native int as the array type
2186         and ldelem type.
2187
2188         * verify.c (merge_stacks): Consider boxed valuetypes in the
2189         compatibility checks.
2190
2191 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
2192         * profiler.h: (MonoGCEvent): Added start-stop the world events.
2193
2194 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
2195         *class.c: use_new_interface_vtable_code: renamed the env var to have
2196         a "MONO_" prefix, and fix the logic to enable it by default.
2197
2198 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
2199         *class.c:
2200         mono_class_setup_vtable_general: rewrote the way in which interface
2201         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
2202         makes the code more maintainable.
2203         For now the old code is still there, and can be activated setting
2204         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
2205
2206 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
2207
2208         * verify.c: guarded some debug functions around and #ifdef.
2209
2210         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
2211
2212 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
2213
2214         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
2215         changes for now since they seem to break too many things.
2216
2217 2008-02-05  Mark Probst  <mark.probst@gmail.com>
2218
2219         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
2220         mono_marshal_find_nonzero_bit_offset): Added macro and function
2221         for finding the byte- and bit-offset of a bitfield within a
2222         struct.
2223
2224 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
2225
2226         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
2227         (mono_marshal_get_struct_to_ptr): Ditto.
2228
2229         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
2230         cctor_signature.
2231
2232 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
2233
2234         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
2235         between methods for non-corlib types.
2236
2237 2008-02-02  Geoff Norton  <gnorton@novell.com>
2238
2239         * loader.c (mono_method_get_param_names): Populate the parameter name for 
2240         generic parameters as well. (Fixes #342536)
2241
2242 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
2243
2244         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
2245
2246         * verify.c (do_invoke_method): Fix for calling with byref structs.
2247
2248         * verify.c (do_cast): push a boxed value type based on the type token and not
2249         the type of stack.
2250
2251 2008-01-31  William Holmes  <billholmes54@gmail.com>
2252
2253         * process.c (process_module_string_read): Check the size returned form 
2254           VerQueryValue to avoid out of memory exception. 
2255
2256 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
2257
2258         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
2259         Handle properly modules which are not in the moduleref table. Fixes
2260         #356938.
2261
2262 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
2263
2264         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
2265         the dynamic case which is now in managed code.
2266         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
2267
2268         * marshal.c (mono_string_to_bstr): Fix a warning.
2269         (init_com_provider_ms): Ditto.
2270
2271         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
2272
2273         * exception.c (mono_get_exception_out_of_memory): New helper function.
2274
2275 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
2276
2277         * marshal.c: Add support for BSTR marshalling
2278         using other COM systems.
2279
2280         Code is contributed under MIT/X11 license.
2281
2282 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2283
2284         * object.c (mono_runtime_invoke_array): reverted previous
2285         commit as it breaks the build.
2286
2287 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2288
2289         * object.c (mono_runtime_invoke_array): Verify arguments for
2290         invalid types. Fixes #348522.
2291
2292 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
2293
2294         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
2295         non-final virtual calls using call. 
2296
2297         * verify.c (do_invoke): fixed some TODOs.
2298
2299         * verify.c (push_arg): set has_this_store for "ldarga 0".
2300
2301 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
2302
2303         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
2304         which belong to an inflated class. Fixes #356531.
2305
2306 2008-01-26  Robert Jordan  <robertj@gmx.net>
2307
2308         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
2309         which resort to FindFirstFile when a certain error condition
2310         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
2311         Code is contributed under MIT/X11 license.
2312
2313 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
2314
2315         * marshal.c (emit_marshal_string): Fix out string marshalling
2316         to use specified encoding. Fixes #323900.
2317
2318         Code is contributed under MIT/X11 license.
2319
2320 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
2321
2322         * class.c (mono_class_inflate_generic_method_full): Don't modify
2323         iresult->context after cache check.
2324
2325 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
2326
2327         * class.c (mono_class_inflate_generic_method_full): Change the
2328         struct assignments to memcpy for better visibility and add some comments.
2329
2330 2008-01-23  Dick Porter  <dick@ximian.com>
2331
2332         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
2333         procedure, and make it work on windows.
2334
2335 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
2336
2337         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
2338         a MonoReflectionTypeBuilder since it is always of that type.
2339
2340         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
2341
2342         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
2343
2344         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
2345         
2346         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
2347
2348         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
2349
2350         * reflection.c (mono_reflection_create_runtime_class): Remove already created
2351         instantiations from the type cache.
2352
2353 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2354
2355         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
2356
2357         * verify.c (do_unbox_value): push a controled mutability managed pointer.
2358
2359 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2360
2361         * verify.c (do_ldstr): added, verifies if the #US token is valid.
2362
2363         * verify.c (mono_method_verify): removed old TODO
2364
2365 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2366
2367         * verify.c (do_newobj): add visibility check.
2368
2369 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
2370
2371         * verify.c (do_load_function_ptr): add visibility check.
2372
2373 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
2374         *class.c:
2375         mono_generic_class_get_class: hook profiler events.
2376         mono_field_get_offset: added to support heap-shot in the new profiler.
2377         *class.h: exported mono_field_get_offset.
2378         * reflection.c:
2379         mono_reflection_setup_internal_class: hook profiler events.
2380
2381 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
2382
2383         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
2384         argument here too and use it to avoid checking for pending exceptions if 
2385         possible.
2386
2387 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
2388
2389         * assembly.c (build_assembly_name): add arg for passing the assembly
2390         flags. Do not consider a PublicKey with value "null" valid.
2391         (mono_assembly_name_parse_full): added boolean argument that will be
2392         set if the assembly name contains a PublicKeyToken spec. Added support
2393         for the Retargetable spec for which only Yes or No are allowed as valid
2394         value. Consider assembly name invalid if Retargetable spec is set, but
2395         either version, culture or public key (token) are not specified.
2396         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
2397         with implementation in assembly.c.
2398         * icall.c (fill_reflection_assembly_name): also copy assembly flags
2399         from MonoAssemblyName.
2400         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
2401         introduced argument for mono_assembly_name_parse_full to know if the
2402         assembly name has a PublicKeyToken spec, and if it has instruct
2403         fill_reflection_assembly_name to use default value for keyToken (if
2404         PublicKeyToken is null).
2405
2406 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2407
2408         * verify.c (mono_method_verify): fixed ovf ops with
2409         float values. They are unverifiable now.
2410
2411 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
2412
2413         * class.c (set_failure_from_loader_error): add BadImageException to the
2414         list of exceptions that can cause a type to fail to load.
2415
2416         * class.c (mono_class_get_exception_for_failure): same.
2417
2418 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
2419
2420         * verify.c (in_any_exception_block): added, check if offset
2421         is part of any exception handling clause.
2422
2423         * verify.c (get_stack_type): added VAR and MVAR types.
2424
2425         * verify.c (do_stobj): better error messages.
2426
2427         * verify.c (do_cpobj): added, check cpobj.
2428
2429         * verify.c (do_initobj): added, check initobj.
2430
2431         * verify.c (do_sizeof): added, check sizeof.
2432
2433         * verify.c (do_localloc): added, check localloc.
2434
2435         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
2436
2437 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
2438
2439         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
2440         save_lmf/restore_lmf opcodes.
2441
2442         * threads.c (mono_threads_install_notify_pending_exc): New function to
2443         install a callback notifying the JIT there is a pending exception on a thread.
2444         (mono_thread_request_interruption): Call the new callback.
2445         (mono_thread_get_and_clear_pending_exception): New function to return the
2446         exception pending on a thread.
2447
2448         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
2449         to turn off checking for pending exceptions.
2450         (mono_marshal_get_native_wrapper): Ditto.
2451
2452 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
2453
2454         * threads-types.h: Get rid of the unnecessary extern declarations.
2455
2456 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
2457
2458         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
2459         return field from parent class if not private.
2460         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
2461         returns fields from parent class if they are not private.
2462         (method_nonpublic): added function to determine if a given method
2463         should be considered non-public. Returns false for private methods
2464         on parent class, and internal methods from parent on the 1.0 profile.
2465         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
2466         use method_nonpublic function to determine whether method should be
2467         returned.
2468         (property_accessor_public): use newly introduced method_nonpublic
2469         function to determine whether accessor is non-public. 
2470         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
2471         event from parent class if not private. Only return static event if
2472         Static flag is set, and only return static event from parent class if
2473         FlattenHierarchy flag is set.
2474         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
2475         include non-private events from parent class.
2476
2477 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
2478
2479         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
2480         warning.
2481
2482 2008-01-16  Wade Berrier <wberrier@novell.com>
2483
2484         * security.c: Add assembly.h header to appease some warnings
2485
2486 2008-01-16  Dick Porter  <dick@ximian.com>
2487
2488         * process.c (process_module_string_read): Remove trailing null
2489         when saving string.
2490
2491 2008-01-16  Mark Probst  <mark.probst@gmail.com>
2492
2493         * class-internals.h: A new data structure describing the layout of
2494         a runtime generic context (MonoRuntimeGenericContextTemplate).
2495
2496         * metadata-internals.h: Added a hash table to MonoDomain that maps
2497         from open generic classes to their runtime generic context
2498         templates.
2499
2500         * object.c: Building of the runtime generic context, including
2501         proper handling of generic type arguments of superclasses.
2502         Building of the runtime generic context according to the template.
2503
2504 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
2505
2506         * class.c (mono_class_setup_fields): Set field.count for generic instances.
2507         Fixes #350856.
2508
2509         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
2510         mono_portability_find_file (). Fixes #325466.
2511         (mono_image_get_public_key): Fix a warning.
2512
2513 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
2514
2515         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
2516         Fixes #353550.
2517         (mono_class_from_name_case): Ditto.
2518
2519 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
2520
2521         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
2522           common storage for the tables used in the System/NumberFormatter class.
2523
2524 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
2525
2526         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
2527
2528 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
2529
2530         * verify.c (get_boxable_mono_type): check if the token is valid.
2531
2532         * verify.c (set_stack_value): changed to add an error if an
2533         invalid type is set on stack. Changed all callers due to signature change.
2534
2535         * verify.c (do_stobj): implement stobj validation.
2536
2537 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
2538
2539         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
2540         set container->is_method, it was set earlier.
2541
2542         * metadata.c (type_in_image): Handle MVARs which belong to not finished
2543         generic methods.
2544
2545         * reflection.c (mono_reflection_initialize_generic_parameter): Set
2546         is_method of the generic container to TRUE for methods.
2547
2548 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
2549
2550         * metadata.c (type_in_image): Handle type parameters properly.
2551
2552         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
2553         memory ownership of this structure.
2554
2555 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
2556
2557         * verify.c (get_boxable_mono_type): make typedref types been just
2558         unverifiable. check for void type.
2559
2560         * verify.c (do_unbox_any): added, verify opcode unbox.any.
2561
2562         * verify.c (do_load_function_ptr): accept method spec tokens.
2563
2564 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
2565
2566         * marshal.c (mono_class_native_size): Always set *align even if this is called
2567         recursively.
2568
2569 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
2570
2571         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
2572         out-of-date.
2573
2574 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
2575
2576         * verify.c: removed some old unused tables. A huge bunch of small fixes
2577         to things found while testing the verifier with mono basic.
2578
2579         * verify.c (dump_stack_value): dump null literal flag to.
2580
2581         * verify.c (verify_type_compatibility_full): fix comparison
2582         for types that have a generic super type.
2583
2584         * verify.c (verify_stack_type_compatibility): fix compatibility
2585         between null literals and reference types. fix compatibility between
2586         boxed valuetypes and object. fix corner case test for enums.
2587
2588         * verify.c (do_cmp_op): proper verification of cgt.un in case
2589         of reference types.
2590
2591         * verify.c (do_invoke_method): fix error message.
2592
2593         * verify.c (do_store_indirect
2594
2595         * verify.c (check_is_valid_type_for_field_ops): proper verification
2596         of managed pointers to valuetypes and boxed valuetypes. proper verification
2597         of null literals.
2598
2599         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
2600         allow token to be a reference type.
2601
2602         * verify.c (do_cast): proper handling of boxes valuetypes.
2603
2604         * verify.c (do_stelem): proper handling of storing a boxed valuetype
2605         in object[].
2606
2607         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
2608         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
2609         fixed the decoding of unbox_any
2610
2611 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
2612
2613         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
2614
2615 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
2616
2617         * verify.c (do_newobj): do delegate verification.
2618
2619         * verify.c (verify_delegate_compatibility): perform delegate
2620         verification.
2621
2622         * verify.c (verify_ldftn_delegate): perform tests related to
2623         ldftn delegates.
2624
2625         * verify.c (mono_delegate_signature_equal): perform the
2626         slightly diferent signature comparison required by delegates.
2627
2628         * metadata.c (mono_metadata_type_equal_full): added and exported
2629         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
2630         allows signature only comparison.
2631
2632         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
2633         as MONO_INTERNAL.
2634
2635 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
2636
2637         * verify.c: added a bunch of stack_slot_* functions to
2638         make access to stack slot type easier. This is required to
2639         allow optional flags, like null literal, boxed value and
2640         this pointer.
2641         All access paths to IlStackDesc::stype have been changed 
2642         to use these new funcions.
2643         Removed a bunch of unused functions and cleared all warnings.
2644         This patch introduces the usage of the this pointer and 
2645         boxed value flags.
2646
2647 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
2648
2649         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
2650
2651 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
2652
2653         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
2654         match managed version.
2655
2656         * appdomain.c: Bump corlib version.
2657         
2658         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
2659         argument.
2660
2661 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
2662
2663         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
2664         Set public key token to zero-length byte array if assembly is not
2665         strongnamed.
2666
2667 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2668
2669         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
2670         writing a vtype array elem.
2671
2672 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
2673
2674         * assembly.c (build_assembly_name): return FALSE if length of token is
2675         not 16 (if not "null").
2676         (mono_assembly_name_parse_full): return FALSE if value of version,
2677         culture, token or key is 0.
2678         * icall.c (fill_reflection_assembly_name): add boolean arguments to
2679         specify whether public key and public key token must be set to default
2680         value (zero-length byte array) if not available. Set versioncompat to
2681         SameMachine. If public key is available or the default is set, then
2682         set PublicKey flag.
2683         (ves_icall_System_Reflection_Assembly_FillName): if no public key
2684         is available, use empty byte array as default value. On the 2.0
2685         profile, use default value for public key token if not set.
2686         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
2687         profile, use default value for public key if not set. On the 2.0
2688         profile, use default value for public key token if not set.
2689         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
2690         default values for public key and public key token.
2691
2692 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
2695         field to keep it in synch with the managed object.
2696
2697         * marshal.c (emit_marshal_object): Add support for byref marshalling of
2698         delegates. Fixes #351520.
2699
2700         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
2701         contains defined memory.
2702         
2703         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
2704
2705         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
2706         
2707         * sgen-gc.c (check_consistency): New helper function to do a consistency check
2708         of the GC data structures.
2709
2710         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
2711
2712         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
2713         
2714         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
2715         barrier.
2716         (mono_array_clone_in_domain): Ditto.
2717         (mono_array_clone_in_domain): Ditto.
2718
2719         * threads.c (start_wrapper): Register the thread start argument as a GC root.
2720         (cache_culture): Use a write barrier.
2721
2722         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
2723         (ves_icall_get_property_info): Ditto.
2724
2725         * object.h (MONO_STRUCT_SETREF): New macro.
2726
2727         * class-internals.h (MonoStats): Add some GC statistics.
2728
2729         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
2730
2731 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
2732
2733         * exception.c (mono_exception_from_name_two_strings):
2734         Break from loop after method is found.
2735
2736 2008-01-04  Dick Porter  <dick@ximian.com>
2737
2738         * process.c (process_module_string_read): Rename variable to
2739         reflect correct usage, after fixing bug 345972.
2740
2741 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
2742
2743         * verify.c (mono_type_create_fnptr_from_mono_method): 
2744         created a MonoType function pointer instance to be used during
2745         verification. The verifier releases this memory at end.
2746
2747         * verify.c (mono_method_is_constructor): extracted repeated
2748         checks for constructor into a single class.
2749
2750         * verify.c (do_push_field): use new extracted method
2751         for constructor check.
2752
2753         * verify.c (do_newobj): same.
2754
2755         * verify.c (do_ldftn): renamed to do_load_function_ptr
2756         and make it verify ldvirtftn too.
2757
2758         * verify.c (mono_method_verify: proper verification
2759         of ldvirtftn. release created MonoMethod instances.
2760
2761 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2762
2763         * verify.c (token_bounds_check): added.
2764
2765         * verify.c (do_ldftn): added.
2766
2767         * verify.c (mono_method_verify): proper verificartion of ldftn.
2768
2769 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
2770
2771         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
2772         than the table row count. It's the resposibility of the caller to
2773         make the bounds check and raise the correct error.
2774
2775         * metadata.c (mono_metadata_decode_row_col): Same.
2776
2777         * loader.c (mono_get_method_from_token): perform bounds check
2778         on token for methoddef table.
2779
2780 2007-12-29  Miguel de Icaza  <miguel@novell.com>
2781
2782         * icall.c
2783         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
2784         assert into a negative result, the managed code already coped with
2785         that.
2786
2787         Some folks on Windows reported this error. 
2788
2789 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
2790
2791         * appdomain.c: Bump corlib version.
2792         * icall.c:
2793         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
2794         CultureInfo.CreateCulture to create CultureInfo for name.
2795         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
2796         create CultureInfo for name. Fixes bug #347174.
2797
2798 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2799
2800         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
2801         flags.
2802
2803         * verify.c (is_valid_branch_instruction): allow branching to the
2804         first instruction of the protected block.
2805
2806         * verify.c (is_valid_cmp_branch_instruction): same.
2807
2808         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
2809         avoid double initialization.
2810
2811         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
2812         detect which cases the eval stack should just be copied.
2813
2814         * verify.c (mono_method_verify): check if the eval stack
2815         is empty when entering a protected block.
2816
2817 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
2818
2819         * verify.c: added is_clause_in_range, is_clause_inside_range,
2820         is_clause_nested and verify_clause_relationship. They perform
2821         the verifications stated in P1 12.4.2.7.
2822
2823         * verify.c (mono_method_verify): remove some unused variables,
2824         add the new exception clause checks, add instruction border
2825         checks for protected block start/end, improved some error 
2826         messages and fixed a bug in the way invalid instruction access
2827         is detected.
2828
2829 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
2830
2831         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
2832         from GC 7.0 if available.
2833
2834         * object.c: Remove an unused define.
2835         
2836         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
2837
2838         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
2839
2840         * null-gc.c (mono_gc_make_descr_for_array): Implement.
2841
2842         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
2843
2844         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
2845         to take the same arguments as the other make_descr functions.
2846
2847         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
2848
2849         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
2850         directly.
2851
2852         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
2853         mini.c.
2854
2855         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
2856         call to boehm-gc.c.
2857
2858         * boehm-gc.c (mono_gc_register_root): Fix a warning.
2859
2860         * null-gc.c (mono_gc_register_root): Fix a warning.
2861
2862         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
2863
2864         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
2865         (mono_gc_base_init): Call GC_init ().
2866
2867         * null-gc.c: Define mono_gc_register_root () as a no-op.
2868
2869         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
2870
2871 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
2872
2873         * verify.c: add prototype for merge_stacks at top
2874
2875         * verify.c (do_switch): added.
2876
2877         * verify.c (merge_stacks): on some cases the stack merging
2878         was not happening properly. Unequal stack sizes at merge
2879         points should be invalid.
2880
2881         * verify.c (mono_method_verify): added more debug info on stack state.
2882         verify switch properly.
2883
2884 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
2885
2886         * method-builder.h: New file, moved the mono_mb_ declarations here from 
2887         marshal.h.
2888
2889         * boehm-gc.c marshal.c: Include method-builder.h.
2890
2891         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
2892
2893         * marshal.c: Remove some code which is now in method-builder.c.
2894
2895 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
2896
2897         * method-builder.c: New file, extraction of the method builder functionality 
2898         from marshal.c.
2899
2900         * marshal.c: Move the mb functions into method-builder.c.
2901
2902         * marshal.h marshal.c: Export some mono_mb_... functions.
2903
2904         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
2905
2906         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
2907         the caller.
2908
2909         * class.c (mono_class_get_full): Check the token type in the dynamic case.
2910
2911         * loader.c (mono_field_from_token): Ditto.      
2912
2913         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
2914         type as well.
2915         
2916         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
2917         Fixes #342565.
2918
2919         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
2920         a helper function for setting it.
2921
2922         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
2923
2924         
2925         * assembly.c: Significally simplify code now that referenced assemblies are 
2926         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
2927
2928         * threads.h: Don't include  the internal threads-types.h header file. Fixes
2929         #349952.
2930
2931 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
2932
2933         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
2934         instructions that were target of branches or are at protected block boundaries.
2935
2936         * verify.c (in_same_block): handle filter clauses.
2937
2938         * verify.c (is_valid_branch_instruction): added. checks the target of
2939         instructions br or brtrue/false.
2940
2941         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
2942         binary branch instructions such as beq and bge.
2943
2944         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
2945         and made it pin the instruction as been part of the exception block.
2946
2947         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
2948         of in_same_block.
2949
2950         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
2951         of in_same_block.
2952
2953         * verify.c (do_ret): ret from a protected block is unverifiable and
2954         not invalid.
2955
2956         * verify.c (do_static_branch): verify br and br.s instructions.
2957
2958         * verify.c (merge_stacks): add extra param to support detection
2959         of branches in the middle of instructions.
2960         
2961         * verify.c (mono_method_verify): verify branches and exception blocks
2962         that target the middle of instructions. Proper verification of br and br.s.
2963
2964 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
2965
2966         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
2967         skip_visibility field.
2968         (reflection_methodbuilder_from_dynamic_method): Ditto.
2969
2970         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
2971         registrations. Fixes #348193.
2972
2973         * threads.h: Move the internal mono_thread_get_pending_exception () to
2974         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
2975
2976 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
2977
2978         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
2979         icall registration. Fixes #348193.
2980
2981         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
2982         for corlib classes into object. Fixes #349621.
2983
2984 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
2985
2986         * icall.c (property_accessor_nonpublic): new function to determine
2987         whether an accessor allows a property to be considered non-public.
2988         Returns false for private accessor(s) from parent class, and internal
2989         accessor(s) from parent on 2.0 profile (and higher).
2990         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
2991         to determine whether property should be included if NonPublic flag
2992         is set. Fixes bug #349078.
2993
2994 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
2995
2996         * verify.c (init_stack_with_value): added.
2997
2998         * verify.c (mono_method_verify): extracted common
2999         code for exception initialization into init_stack_with_value.
3000
3001         * verify.c (mono_method_verify): initialize the exception
3002         for handler clauses as well.
3003
3004         * verify.c (mono_method_verify): fix the exception clause
3005         ordering rules, it should use handler end offset and not
3006         start offset.
3007
3008 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
3009
3010         * rawbuffer.c: remove useless warning.
3011
3012 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
3013
3014         * threads.h, threads-types.h: move functions to the correct header
3015         (fixes bug#349952).
3016
3017 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3018
3019         * verify.c (mono_method_verify): proper verification
3020         of exception handling clauses ranges and fallthru in
3021         and out of protected blocks.
3022
3023 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3024
3025         * verify.c (mono_method_verify): fixed compilation issue.
3026
3027 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
3028
3029         * verify.c (mono_method_verify): a printf slipped in, changed
3030         to use verifier debug macro.
3031
3032 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
3033
3034         * verify.c (is_correct_leave): check for filter clauses.
3035
3036         * verify.c (do_filter): added.
3037
3038         * verify.c (mono_method_verify): property verification of leave.
3039
3040
3041 2007-12-18  Mark Probst  <mark.probst@gmail.com>
3042
3043         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
3044         Win32 build, until we figure out how to do the proper thing on
3045         Win32.
3046
3047 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
3048
3049         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
3050         by the previous patch.
3051         
3052         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
3053         the assembly resolve handler for refonly assemblies.
3054
3055 2007-12-17  Mark Probst  <mark.probst@gmail.com>
3056
3057         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
3058         Make sure only one thread is allowed to commence shutdown, and
3059         don't allow new threads to be started once shutdown is in
3060         progress.
3061
3062 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
3063
3064         * verify.c (is_correct_endfilter): added.
3065
3066         * verify.c (is_unverifiable_endfilter): added.
3067
3068         * verify.c (do_endfilter): added.
3069
3070         * verify.c (mono_method_verify): property verification of endfilter
3071         and fixed a corner case or endfinally.
3072
3073 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
3074
3075         * verify.h: new flags to support fail fast of unverifiable code and
3076         do non-strict verification. Non-strict verification is required to
3077         have MS runtime compatibility. There are a huge amount of unverifiable
3078         code that it accepts as verifiable. The strict mode verifies the code
3079         as the specs says.
3080         Non-strict mode will be required in cases where code needs to be
3081         accepted as verifiable but fails under strict mode.
3082
3083         * pedump.c: added support to fail fast and non-strict verification.
3084
3085         * verify.c: added support for both fail fast and non-strict verification.
3086
3087 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
3088
3089         * verify.c (is_correct_endfinally): added.
3090
3091         * verify.c (mono_method_verify): property verification of endfinally.
3092
3093 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
3094
3095         * verify.c (in_any_block): check for filter clauses.
3096
3097         * verify.c (is_correct_rethrow): added.
3098
3099         * verify.c (mono_method_verify): property verification of rethrow.
3100
3101         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
3102
3103 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
3104
3105         * verify.c (do_throw): added.
3106
3107         * verify.c (mono_method_verify): property verification of throw
3108
3109 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
3110
3111         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
3112         assemblies. Fixes #346425.
3113
3114 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
3115
3116         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
3117         FieldBuilders.
3118
3119         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
3120
3121         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
3122         prevent asserts when this is called with a token which might not be valid.
3123
3124         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
3125         lookup_dynamic_token_class with valid_token == FALSE.
3126
3127         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
3128
3129         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
3130
3131         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
3132         
3133 2007-12-10  Mark Probst  <mark.probst@gmail.com>
3134
3135         * gc.c: Don't delay threadpool thread finalization unless Mono is
3136         shutting down.
3137
3138 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
3139
3140         * threads.c: turn an assert into a non-fatal warning.
3141
3142 2007-12-09  Robert Jordan  <robertj@gmx.net>
3143
3144         * icall.c (GetVirtualMethod): Add missing argument validation.
3145
3146 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3147
3148         * verify.c (do_cast): added.
3149
3150         * verify.c (mono_method_verify): property verification of castclass and isinst.
3151
3152
3153 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3154
3155         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
3156
3157         * verify.c (do_stelem): added.
3158
3159         * verify.c (mono_method_verify): property verification of stelem.X.
3160
3161 2007-12-07  Mark Probst  <mark.probst@gmail.com>
3162
3163         * class.c, class-internals.h: Introduce an environment variable
3164         (MONO_GENERIC_SHARING) through which the extent of generic code
3165         sharing can be controlled (share all classes, share only corlib
3166         classes, or share nothing).
3167
3168         * object.c: Only create runtime generic context for classes for
3169         which sharing is enabled.
3170
3171 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3172
3173         * verify.c (do_ldelem): refactor it to work with ldelem.any.
3174
3175         * verify.c (mono_method_verify): property verification of ldelem.any.
3176
3177 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
3178
3179         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
3180         added ldelem.X opcodes.
3181
3182         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
3183
3184         * verify.c: proper verification of ldelem.X 
3185
3186 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
3187
3188         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
3189
3190 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
3191
3192         * verify.c (mono_method_verify): null literal requires special handling,
3193         the value pushed on stack need to be flagged as so.
3194
3195         * verify.c (do_ldelema): Verify ldelema properly.
3196
3197 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
3198
3199         * verify.c: Verify ldlen properly.
3200
3201 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
3202
3203         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
3204         to the target object's type. Fixes #346160.
3205
3206 2007-12-05  Dick Porter  <dick@ximian.com>
3207
3208         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
3209         Solaris needs the same workaround as BSD-derived systems.  Fixes
3210         bug 323524, patch by Burkhard Linke
3211         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
3212
3213 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
3214
3215         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
3216         handle to use when error dialog is shown; otherwise, update mask
3217         to show no error dialog when an error occurs.
3218
3219 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
3220
3221         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
3222
3223         * class.c (mono_class_get_field_default_value): New helper function to initialize
3224         field->def_type and field->data.
3225
3226 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
3227
3228         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
3229         the general one.
3230
3231         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
3232
3233         * marshal.c: Avoid depending on delegate->method_info being set.
3234
3235         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
3236         
3237         * object.c (mono_delegate_ctor): Set delegate->method.
3238
3239         * object-internals.h (struct _MonoDelegate): Add 'method' field.
3240
3241         * appdomain.c: Bump corlib version.
3242
3243 2007-11-27  Raja R Harinath  <harinath@gmail.com>
3244
3245         * metadata.c (mono_generic_inst_equal_full): Short-circuit
3246         equality check if we're comparing canonicalized MonoGenericInsts.
3247
3248 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
3249
3250         * class.c (generic_array_methods): Call mono_class_setup_methods () before
3251         accessing class->methods.
3252
3253 2007-11-22  Dick Porter  <dick@ximian.com>
3254
3255         * threads.c: Ensure that the synch_cs is set before trying to use
3256         it.
3257
3258 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
3259
3260         * profiler.c: r89126 broke the statistial profiler, unbreak.
3261
3262 2007-11-22  Martin Baulig  <martin@ximian.com>
3263
3264         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
3265
3266         * mono-debug.c
3267         (mono_debug_debugger_version): Bump to 3.
3268         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
3269         -> mono_debugger_class_initialized().
3270
3271         * mono-debug-debugger.c
3272         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
3273
3274         * class.c
3275         (mono_debugger_start_class_init_func): Removed.
3276         (mono_debugger_class_loaded_methods_func): Added.
3277         (mono_class_setup_methods): Call it here.
3278
3279 2007-11-22  Martin Baulig  <martin@ximian.com>
3280
3281         * mono-debug.c
3282         (mono_debug_add_delegate_trampoline): New public method.
3283         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
3284
3285         * mono-debug.h
3286         (MonoSymbolTable): Added `global_data_table'.
3287         (MonoDebuggerTypeKind): Removed.
3288
3289 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
3290
3291         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
3292         these methods.
3293
3294         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3295         
3296 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
3297
3298         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
3299
3300 2007-11-20  Martin Baulig  <martin@ximian.com>
3301
3302         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
3303
3304         * mono-debug-debugger.c
3305         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
3306         (mono_debugger_remove_breakpoint): Likewise.
3307         (mono_debugger_check_breakpoints): Likewise.
3308         (mono_debugger_register_class_init_callback): New public method.
3309         (mono_debugger_remove_class_init_callback): Likewise.
3310         (mono_debugger_add_type): Likewise.
3311
3312         * mono-debug-debugger.h
3313         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
3314
3315 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
3316
3317         * class.c: more interface implementations needed for the
3318         array enumerator (fixes bug #341112).
3319
3320 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
3321
3322         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
3323         fix ParamName of ArgumentNullExceptions.
3324
3325 2007-11-17  Miguel de Icaza  <miguel@novell.com>
3326
3327         * reflection.c (mono_reflection_encode_sighelper): Generate the
3328         modopts and modreqs.   I have a useless test that crashes monodis,
3329         but that shows the code working.
3330
3331 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
3332
3333         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
3334         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
3335
3336 2007-11-15  Dick Porter  <dick@ximian.com>
3337
3338         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
3339         When joining a thread, it's the thread that's calling Join that
3340         gets WaitSleepJoin state not the target.  Fixes the standalone
3341         test case in bug 334740, and hopefully the whole bug too.
3342
3343 2007-11-15  Dick Porter  <dick@ximian.com>
3344
3345         * process.c: Read file version info from the files pointed at by
3346         process modules, not the current process.  Fixes bug 315969.
3347
3348         Use windows typedef names in some places to fix warnings on the
3349         windows build.
3350
3351 2007-11-15  Mark Probst  <mark.probst@gmail.com>
3352
3353         * image.c, metadata-internals.h: Added a generic_class_cache hash
3354         to MonoImage for looking up generic classes when sharing generics.
3355
3356 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
3357
3358         * sgen-gc.c: warning cleanups.
3359
3360 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
3361
3362         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
3363         inherited properties.
3364
3365 2007-11-14  Mark Probst  <mark.probst@gmail.com>
3366
3367         * object.c, class-internals.h: Added more information to the
3368         runtime generic context.
3369
3370 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
3371
3372         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
3373         instead of just the target method. Generalize the abstract method handling to
3374         handle any non-static method.
3375
3376         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
3377         mono_marshal_get_delegate_invoke () signature change.
3378
3379 2007-11-13  Mark Probst  <mark.probst@gmail.com>
3380
3381         * class.c, class-internals.h: Made
3382         mono_type_get_basic_type_from_generic () public.  Fixed member
3383         access check for shared generics.
3384
3385         * loader.c: Don't insert field into field cache if it's part of a
3386         non-inflated generic class.
3387
3388         * domain.c, domain-internals.h: The generic sharing context is now
3389         part of the jit info data structure.  Added two accessor
3390         functions.
3391
3392 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
3393
3394         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
3395         the array Get/Set/Address methods, since the JIT inlines them.
3396
3397         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
3398
3399         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
3400         (mono_image_init): Initialize runtime_invoke_direct_cache.      
3401
3402         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
3403         mono_marshal_get_delegate_invoke signature change.
3404
3405         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
3406         an additional argument. Add support for invoking abstract methods.
3407
3408         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
3409
3410         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
3411
3412 2007-11-09  Mark Probst  <mark.probst@gmail.com>
3413
3414         * class.c: Do field layout for open generic classes as well.
3415
3416 2007-11-09  Mark Probst  <mark.probst@gmail.com>
3417
3418         * gc.c, gc-internal.h: Don't finalize threadpool threads with
3419         other objects, because the threadpool is still around.  Put them
3420         in a list instead and after finalizing all other objects in the
3421         root domain shut down the thread pool and then finalize the
3422         threads.  Fixes bug #337383.
3423
3424         * threads.c, thread-types.h: New mono_thread_create_internal()
3425         function for marking a thread with the threadpool flag before it
3426         started.  Set synch_cs to NULL after freeing it.
3427
3428         * threadpool.c: Mark threadpool threads before they start.
3429
3430 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
3431
3432         * reflection.h, reflection.c: don't export random functions
3433         and lazy load dbnull and missing objects.
3434
3435 2007-11-07  Jonathan Chambers <joncham@gmail.com>
3436
3437         * class.c: Initialize COM types if COM interfaces
3438         are present (not just COM classes).
3439         
3440         Code is contributed under MIT/X11 license.
3441
3442 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
3443         * reflection.c:
3444         create_dynamic_mono_image: hook module profiler events (dynamic case).
3445         mono_image_basic_init: hook assembly profiler events (dynamic case).
3446
3447 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
3448         * profiler.c:
3449         simple_appdomain_unload: completely terminate the profiler
3450         instead of only processing the statistical samples.
3451         simple_shutdown: make sure this is really called exactly once,
3452         even in multithreaded applications, and always listen to
3453         appdomain events.
3454         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
3455         here, the "[un]load" functions will do it.
3456         Fixes bugs #333791 and #325261.
3457
3458 2007-11-07  Geoff Norton  <gnorton@novell.com>
3459
3460         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
3461         rather than depend on __APPLE__.
3462
3463 2007-11-07  Mark Probst  <mark.probst@gmail.com>
3464
3465         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
3466
3467 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
3468
3469         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
3470         UTF16 MonoString. Fix the crash from bug #335488
3471
3472 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
3473
3474         * marshal.c: Correct (for non-Win32 OS) length != size in 
3475         mono_string_from_bstr. Fix #339530.
3476
3477 2007-11-06  Geoff Norton  <gnorton@novell.com>
3478
3479         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
3480         to succeed
3481
3482 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
3483
3484         * process.c: Added run-time GetProcessId API detection for Windows.
3485
3486 2007-11-04  Miguel de Icaza  <miguel@novell.com>
3487
3488         * reflection.c  (mono_param_get_objects): If a parameter has the
3489         attribute [System.Runtime.InteropServices.Optional] we should
3490         set the DefaultValue of the ParameterInfo to be
3491         System.Reflection.Missing instead of DBNull.
3492
3493         See bug #339013.
3494
3495         (mono_get_reflection_missing_object): New method,
3496         returns the System.Reflection.Missing.Value singleton instance.
3497
3498 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
3499
3500         * culture-info-table.h : regenerated.
3501
3502 2007-11-02  Jonathan Chambers <joncham@gmail.com>
3503
3504         * icall.c: Use GetEnvironmentStrings on windows
3505         so we are using the same environment block as 
3506         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
3507         #333740.
3508         
3509         Code is contributed under MIT/X11 license.
3510
3511 2007-10-31  Martin Baulig  <martin@ximian.com>
3512
3513         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
3514
3515         * mono-debug-debugger.h
3516         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
3517
3518 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
3519
3520         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
3521         classes.
3522
3523 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
3524
3525         * culture-info-table.h : regenerated.
3526
3527 2007-10-30  Robert Jordan  <robertj@gmx.net>
3528
3529         * icall-def.h, icall.c:
3530         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
3531
3532         Code is contributed under MIT/X11 license.
3533
3534 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
3535
3536         * class.c (mono_class_setup_vtable): Find the inflated methods in the
3537         inflated class instead of inflating them again.
3538         
3539         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
3540         dynamic case.
3541
3542         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
3543         Call setup_supertypes () after klass->parent is set.
3544         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
3545
3546         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
3547         for inflated instances of not yet created dynamic generic classes.
3548         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
3549         times from inflated_method.
3550         (methodbuilder_to_mono_method): Ditto.
3551
3552 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
3553
3554         * gc.c: code cleanup and removed old untested option of not creating the
3555         finalizer thread.
3556
3557 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
3558
3559         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
3560         creating a jump trampoline for dynamic methods.
3561
3562 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
3563
3564         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
3565         generic TypeBuilders when called from another method of the same type (bug #335131).
3566
3567
3568 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
3569
3570         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
3571         doesn't seem to work perfectly.
3572         
3573         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
3574         called multiple times.
3575         (methodbuilder_to_mono_method): Ditto.
3576         (resolve_object): Inflate FieldBuilder's.
3577
3578 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3579
3580         * string-icalls.c, string-icalls.h, appdomain.c: patch from
3581         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
3582         RemoveEmptyEntries in the string.Split implementation (bug #322375).
3583
3584 2007-10-26  Dick Porter  <dick@ximian.com>
3585
3586         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
3587         Thread initialisation changes
3588
3589 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
3590
3591         * verify.c: fix compatibility check between arrays and System.Array
3592
3593 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
3594
3595         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
3596         too. Fixes #336999.
3597
3598 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
3599
3600         * object.c (mono_value_box): Use typed allocation here.
3601
3602 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
3603
3604         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
3605         trampoline instead of compiling the method right away.
3606
3607         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
3608
3609 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
3610
3611         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
3612         related fields for dynamic classes. Fixes #334493.
3613
3614 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
3615
3616         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
3617         
3618         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
3619
3620         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
3621         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
3622
3623         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
3624
3625         * reflection.c (create_generic_typespec): Initialize klass->generic_container
3626         if needed.
3627         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
3628
3629 2007-10-18  Jonathan Chambers <joncham@gmail.com>
3630
3631         * marshal.c: Use correct key when removing item
3632         from ccw_hash.
3633         
3634         Code is contributed under MIT/X11 license.
3635
3636 2007-10-17  William Holmes  <billholmes54@gmail.com>
3637
3638         *marshal.c: Adding a case to marshal booleans to U1
3639
3640         Code is contributed under MIT/X11 license.
3641
3642 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
3643
3644         * class.c (mono_class_from_name): Search the modules compromising dynamic
3645         assemblies. Fixes #331601.
3646
3647 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
3648
3649         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
3650         exception if the type name contains an assembly component. Fixes #334203.
3651
3652         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
3653         modules inside dynamic assemblies. Fixes #334200.
3654         
3655         * reflection.c: Set image->public_key and image->public_key_length;
3656
3657         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
3658         fields.
3659
3660         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
3661         
3662 2007-10-16  Mark Probst  <mark.probst@gmail.com>
3663
3664         * metadata.c: Implemented correct comparing of generic classes.
3665         An inflated generic class can be equal to a non-inflated one if it
3666         is inflated with generic type variables as type arguments.  Fixes
3667         bug #333798.
3668
3669 2007-10-15  Dick Porter  <dick@ximian.com>
3670
3671         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
3672         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
3673         81646.
3674
3675         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
3676         instead of a monitor lock.  This means that monitor_try_enter and
3677         co can set the thread state safely.
3678         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
3679         thread_interrupt_requested, so interrupt actually works.
3680
3681         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
3682         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
3683         state accessor function
3684
3685 2007-10-15  Martin Baulig  <martin@ximian.com>
3686
3687         * mono-debug.h
3688         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
3689         the debugger with the current runtime.
3690
3691 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
3692
3693         * object.c, object-internals.h: added the ability to set a single
3694         trampoline for all the slots in a vtable.
3695
3696 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3697
3698         * marshal.c: deal with a possible race condition during multicast
3699         delegate invocation.
3700
3701 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3702
3703         * class.c: ensure value type methods don't have the synchronized
3704         flag set.
3705
3706 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
3707
3708         * string-icalls.c, string-icalls.h: reverted unapproved patch that
3709         breaks the build.
3710
3711 2007-10-11  Joel Reed  <joelwreed@comcast.com>
3712
3713         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
3714         to take an options parameter so that empty entries can be removed during
3715         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
3716
3717 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3718
3719         * marshal.c: make sure we don't store the signature from a dynamic
3720         method into the runtime invoke cache (bug #327189).
3721
3722 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3723
3724         * marshal.c: make sure the wrapper methods are properly initialized.
3725
3726 2007-10-11  Mark Probst  <mark.probst@gmail.com>
3727
3728         * metadata.c, metadata-internals.h: Generalized
3729         mono_type_stack_size() to mono_type_stack_size_internal() which
3730         takes an additional argument specifying whether it allows open
3731         types.
3732
3733 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
3734
3735         * verify.c (do_invoke_method): handle typedbyref params
3736         correctly and check for unverifiable return values.
3737
3738         * verify.c (do_newobj): fix a warning.
3739
3740 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3741
3742         * verify.c: don't tread typedbyref as allways unverifable,
3743         so uses, like (ld/st)loc.0 are valid. verify for the cases
3744         that it matters, like boxing related operations.
3745
3746 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
3747
3748         * verify.c: add verification of the newobj opcode. verification
3749         of delegate instantation still missing due ldftn and virldftn not
3750         pushing the function type on stack
3751
3752 2007-10-08  Mark Probst  <mark.probst@gmail.com>
3753
3754         * class-internals.h: Runtime generic context data structure
3755         definition.
3756
3757         * object.c: Initialization of runtime generic context at runtime
3758         vtable creation time.
3759
3760 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
3761         * class.c (mono_class_create_from_typedef,
3762         mono_class_from_generic_parameter, mono_ptr_class_get,
3763         mono_fnptr_class_get, mono_bounded_array_class_get)
3764         * domain.c (mono_domain_create, mono_domain_free)
3765         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
3766         * image.c (do_mono_image_load, mono_image_close):
3767         Hooked up load-unload profiler events.
3768
3769 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
3770
3771         * domain.c: track statistics about the actual amount of native code
3772         allocated.
3773
3774 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
3775
3776         * class.c: the valuetype enumerators don't have the additional
3777         supertypes interfaces.
3778
3779 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
3780
3781         * class.c: need more interfaces setup for the IEnumerator<T>
3782         object created for arrays (tests/ienumerator-interfaces.2.cs).
3783
3784 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
3785
3786         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
3787
3788 2007-10-05  Alp Toker  <alp@atoker.com>
3789
3790         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
3791         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
3792         #315863.
3793
3794 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3795
3796         * verify.c (verify_type_compatibility_full): verification of
3797         compatibility improved, validates correctly non-strict checks between
3798         native int and I4 types different than (unsigned)int32.
3799
3800         * verify.c (do_store_indirect): added, do all verification of
3801         ldind.X opcodes. 
3802
3803         * verify.c (get_load_indirect_mono_type): renamed to
3804         get_indirect_op_mono_type, as it now returns the MonoType for 
3805         ldind.X and stind.X opcodes.
3806
3807 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
3808
3809         * reflection.c: Fix the encoding of generic type definition for
3810         TypeBuilders.
3811
3812         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
3813         mono_image_typedef_or_ref but allows to specify if typespec lookups should
3814         be made. Typespec check is done prior to typeref cache lookup.
3815
3816         * reflection.c (mono_image_typedef_or_ref): now just delegate to
3817         mono_image_typedef_or_ref_full.
3818
3819         * reflection.c (encode_generic_class): encode the generic class
3820         directly instead of calling encode_type.
3821
3822         * reflection.c (encode_type): encode the generic type definition
3823         MonoClass as a generic instantiation.
3824
3825         * reflection.c (create_typespec): cache typespec tokens in
3826         the assembly->typespec cache. Don't create typespec for a generic
3827         instance MonoClass. Create typespec for the generic type defintion.
3828
3829         * reflection.c (create_generic_typespec): encode the generic
3830         class directly instead of calling encode_type.
3831
3832         * reflection.c (mono_image_create_token): encode the generic
3833         type definition not using a typespec for MonoType instances.
3834
3835
3836 2007-10-04  Raja R Harinath  <rharinath@novell.com>
3837
3838         Fix #328812
3839         * class.c (mono_image_init_name_cache): Don't return nested
3840         'protected internal' classes.
3841         (mono_class_from_name_case): Likewise.
3842
3843 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3844
3845         * icall-def.h, icall.c : get_bundled_machine_config() is now the
3846           common function used by both DefaultConfig in System.dll and
3847           InternalConfigurationHost in System.Configuration.dll.
3848
3849 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
3850
3851         * class.c: automatically add to vectors only a few essential explicit
3852         generic interfaces. The rest of the interfaces that arrays should
3853         provide are currently implicitly added (but still not lazily, see the
3854         design in the discussion of bug#325495 for the details of what is
3855         needed for that). Additionally, implicit interfaces are assigned the
3856         same vtable slot as the explicit interfaces (as they are compatible):
3857         this enables huge memory savings since we don't need to instantiate
3858         as many memthods and as large vtables anymore. Also, Since
3859         GetEnumerator<T> returns an instance of a type that is required to
3860         support a similarly large set of interfaces as arrays, we add
3861         implicit interfaces and interface offset sharing support to those
3862         types, too. This change adds all the required interfaces so that
3863         the anonarray.cs test case in the bug report works (we don't add
3864         all the interfaces to arrays of arrays 3-level deep and more because
3865         of the memory requirements explained in the bug and since they are much
3866         less common: the lazy-loading support will enabled them to work, too).
3867
3868 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3869
3870         * verify.c (merge_stacks): major clean up, all type compatibility
3871         checks are done by verify_type_compatibility. This fix my earlier lack
3872         of understanding of the CLR type system and merge_stacks no longer looks
3873         scary.
3874
3875         * verify.c: fixed some bad spelling.
3876
3877 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
3878
3879         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
3880         a given stack slock.
3881         
3882         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
3883         verify_type_compatibility_full. This removed a near indentical function and fixed
3884         handling of Int32 and IntPtr across all opcodes.
3885
3886 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
3887
3888         * class.c: only vectors have the additional generic interfaces.
3889
3890 2007-10-01  Jonathan Chambers <joncham@gmail.com>
3891
3892         * mono-config.c: Use g_strcasecmp instead of
3893         strcasecmp like everywhere else to fix
3894         compilation with MSVC.
3895         
3896         Code is contributed under MIT/X11 license.
3897
3898 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
3899
3900         * object.c, object-internals.h: refactored the IMT code to enable
3901         building a single slot at a time and lazily creating the IMT trampolines
3902         and thunks.
3903
3904 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
3905
3906         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
3907
3908         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
3909         Fixes #328501.
3910         
3911 2007-09-29  Raja R Harinath  <harinath@gmail.com>
3912
3913         * loader.c (method_from_methodspec): Rearrange to avoid
3914         un-necessary exposition.  Don't assert out if the method's
3915         declaring type is a generic type definition.
3916
3917 2007-09-28  Martin Baulig  <martin@ximian.com>
3918
3919         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
3920
3921 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
3922
3923         * class-internals.h: optimize field layout of MonoClass to
3924         requires less cachelines at runtime and save a few bytes on 64 bit
3925         systems.
3926
3927 2007-09-28  Jb Evain  <jbevain@novell.com>
3928
3929         * reflection.c: when encoding type names in custom attributes,
3930         if the type is a closed generic type, its generic arguments
3931         have to be serialized as AssemblyQualifiedName, so that when
3932         they are deserialized, it's possible to re-create them properly.
3933         Fixes #329450.
3934
3935
3936 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
3937
3938         * object.c, class-internals.h: added delegate-creation counter.
3939
3940 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
3941
3942         * class.c: cleanup of the code that synthetizes interfaces for
3943         arrays in 2.0: saves quit a bit of corlib mempool memory.
3944         Code to fix bug #325495 ifdeffed out for now until the issues
3945         with memory usage and O(n^2) behaviour are fixed.
3946
3947 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
3948
3949         * marshal.c: when possible, do not duplicate the name of the methods
3950         in the method builder and in the generated MonoMethod.
3951
3952 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
3953         * verify.c: added support for type checking ldind_* opcodes.
3954
3955 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
3956
3957         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
3958         which is used to distinguish the fully open instantiation of a TypeBuilder
3959         with the rest. This temporary hack is required to restore the property that
3960         the fully open instantiation is the same type of the generic type definition.
3961
3962         * class-internals.h (mono_generic_class_is_generic_type_definition):
3963         new function as part of the internal API.
3964
3965         * class.c (inflate_generic_type): return NULL when the generic inst is
3966         fully open. The fully open generic type is now the same as the generic type
3967         definition for non TypeBuilder types.
3968
3969         * class.c (mono_generic_class_get_class): removed assert since it is
3970         no longer valid, gklass->cached_class can point to the generic type definition.
3971
3972         * class.c (mono_generic_class_is_generic_type_definition): new.
3973
3974         * metadata.c (mono_generic_class_hash): added is_tb_open field
3975         to the hash calculation.
3976
3977         * metadata.c (free_generic_class): if the generic class is associated
3978         with the generic type definition, its field will come from the mempool and
3979         must not be freed.
3980
3981         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
3982         new, this function identifies the corner case of a TypeBuilder fully open
3983         instantiation.
3984
3985         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
3986         for lookup. Set gclass->cached_class to be the container class in case of
3987         the fully open instantiation of non TypeBuilder types.
3988
3989         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
3990         to compare generic classes.
3991
3992         * reflection.c (method_encode_methodspec): remove assert that
3993         no longer is valid.
3994
3995         * reflection.c (mono_reflection_generic_class_initialize): add
3996         an aditional assert to ensure the proper type is used.
3997
3998 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
3999
4000         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
4001         to enjoy it.
4002
4003 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
4004
4005         * verify.c (push_arg): Fixed support for ldarga
4006         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
4007         MonoType used as first arg in case of instance calls.
4008
4009 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
4010
4011         * verify.c: Support for verifying VAR and MVAR types, 
4012
4013 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
4014
4015         * icall.c (ves_icall_get_property_info): Set the reflected type of the
4016         accessors correctly.
4017
4018 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
4019
4020         * threads.c: support OSX and other systems in
4021         mono_thread_get_stack_bounds (bug #328026).
4022
4023 2007-09-25  Martin Baulig  <martin@ximian.com>
4024
4025         * mono-debug.h
4026         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
4027
4028 2007-09-24  Martin Baulig  <martin@ximian.com>
4029
4030         * mono-debug.h
4031         (MonoDebugClassEntry): Moved the definition of this struct into
4032         mono-debug.c to make it private.
4033
4034         * mono-debug.c
4035         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
4036         type table per symbol file, we don't need to store the symfile id
4037         any longer.
4038
4039 2007-09-24  Martin Baulig  <martin@ximian.com>
4040
4041         Create one type table per symbol file, since a `MonoClass *' gets
4042         invalid when its image is unloaded.
4043
4044         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
4045         (MonoDebugHandle): Added `type_table'.
4046
4047 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
4048
4049         * mempool.c, mempool.h: added mono_mempool_new_size () API
4050         to be able to specify a smaller initial size for the pool.
4051         Adjusted the code to slowly increase pool size before using
4052         the previous default size.
4053         * image.c: use a small initial size for image mempools.
4054
4055 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
4056
4057         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
4058         Fixes ##320990.
4059
4060         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
4061         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
4062
4063 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
4064
4065         * metadata.c (mono_type_create_from_typespec): Remove an invalid
4066         free. Fixes #327438.
4067
4068 2007-09-21  Raja R Harinath  <harinath@gmail.com>
4069
4070         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
4071         generic instantiations, etc.
4072         <MONO_TYPE_ARRAY>: Likewise.
4073
4074 2007-09-21  Martin Baulig  <martin@ximian.com>
4075
4076         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
4077         these structs were never defined.
4078         (MonoDebugHandle): Removed the `_priv' field, it was never used.
4079
4080 2007-09-21  Martin Baulig  <martin@ximian.com>
4081
4082         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
4083
4084 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
4085
4086         * image.c: removed the guid hash tables: we can get the same info
4087         without the additional memory usage hit (partially fixes also bug #327052).
4088
4089 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4090
4091         * profiler.h, profiler-private.h, profiler.c: add a new profiler
4092         event to handle unloading methods. After the event is called, the
4093         corresponding MonoMethod* must be considered invalid.
4094         * loader.c (mono_free_method): call the new mono_profiler_method_free
4095         event.
4096
4097 2007-09-20  Mark Probst  <mark.probst@gmail.com>
4098
4099         * domain-internals.h: New flag in MonoJitInfo which marks shared
4100         generic methods.  New hash table (shared_generics_hash) in
4101         MonoDomain to keep track of shared generic methods.  Prototypes
4102         for functions to register and lookup shared generic methods.
4103
4104         * domain.c: Support for registering and looking up shared generic
4105         methods via a hash table (shared_generics_hash) in MonoDomain.
4106
4107         * class-internals.h: New exception to signal failure of shared
4108         compilation of a generic method.  New counters for generics
4109         sharing in MonoStats.
4110
4111 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
4112
4113         * image.c, metadata-internals.h: don't keep a file descriptor open
4114         for loaded assemblies (bug#325988).
4115
4116 2007-09-19  Raja R Harinath  <rharinath@novell.com>
4117
4118         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
4119         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
4120         use the corresponding datatypes.
4121         (type_in_image): Update to changes.
4122         (CleanForImageUserData): Simplify.
4123         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
4124         Avoid quadratic behaviour in handling the "stolen" list by
4125         separating the filter predicate out, and by prepending the stolen
4126         items rather than appending them.
4127         (steal_ginst_in_image): Likewise.
4128         (mono_metadata_clean_for_image): Update to changes.
4129
4130 2007-09-19  Martin Baulig  <martin@ximian.com>
4131
4132         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
4133
4134 2007-09-19  Martin Baulig  <martin@ximian.com>
4135
4136         * mono-debug.c (mono_debug_cleanup): Don't call
4137         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
4138
4139 2007-09-19  Raja R Harinath  <harinath@gmail.com>
4140
4141         Fix crash on 'make run-test' in mcs/errors
4142         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
4143         Avoid more potential allocations in mono_class_from_mono_type.
4144         (ginst_in_image): Update to changes.
4145         (gclass_in_image): Rearrange slightly.
4146
4147 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
4148
4149         * class.c (mono_class_init): Move the code that sets up class->methods to 
4150         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
4151
4152         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
4153         canonical instance of an inflated generic signature.
4154         (mono_type_create_from_typespec): Remove an invalid free.
4155
4156         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
4157
4158 2007-09-18  Marek Habersack  <mhabersack@novell.com>
4159
4160         * domain-internals.h: added a declaration of the
4161         mono_assembly_load_full_nosearch internal function.
4162
4163         * assembly.c (mono_assembly_load_with_partial_name): use
4164         mono_try_assembly_resolve return value properly.
4165         (mono_assembly_load_full_nosearch): copied the function body from
4166         mono_assembly_load_full, without the code to invoke assembly
4167         search hooks.
4168         (mono_assembly_load_full): calls the above new function and if the
4169         assembly is not resolved, invokes the search hooks.
4170
4171         * appdomain.c (mono_runtime_init): restore the global postload
4172         assembly search handlers.
4173
4174 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
4175
4176         * class.c (mono_class_init): Make sure class->methods and class->properties
4177         are never NULL in the generics case.
4178
4179         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
4180
4181 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
4182
4183         * metadata.c (free_generic_class): Disable some code to fix the build.
4184
4185         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
4186
4187         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
4188         from the image mempool.
4189
4190         * metadata.c (free_generic_class): Free more data from the inflated class.
4191
4192         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
4193
4194         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
4195         mempool.
4196         (mono_type_create_from_typespec): Ditto.
4197
4198         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
4199         MonoImage to the caller.
4200         (mono_init_internal): Save the opened image in a global variable.
4201         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
4202
4203         * reflection.c (resolve_object): Fix a leak.
4204
4205         * metadata.c: Fix the freeing of data in the generics caches.
4206         
4207         * metadata.c (free_generic_inst): Comment this out to fix the build.
4208         (free_generic_class): Ditto.
4209
4210         * metadata.c: Free cached generic methods, instantinations and classes when
4211         they are removed from the caches.
4212         (mono_metadata_free_type): Free the type itself.
4213
4214         * class.c: Free the result of mono_class_inflate_generic_type () in a few
4215         places.
4216
4217 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4218
4219         * boehm-gc.c: restrict managed allocs to __thread supporting
4220         architectures.
4221
4222 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
4223
4224         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
4225         (mono_generic_class_get_class): Fix a leak.
4226
4227         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
4228         mono_metadata_free_type ().
4229         (mono_metadata_inflate_generic_inst): Fix a leak.
4230
4231 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4232
4233         * mono-debug.c (free_header_data): Fix a leak missed earlier.
4234
4235         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
4236         mempool.
4237
4238         * mono-debug.c (mono_debug_close_image): Fix call to 
4239         g_hash_table_remove ().
4240
4241 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
4242
4243         * icall-def.h: redirect all the string ctor to the managed
4244         CreateString () methods.
4245         * string-icalls.c, string-icalls.h: removed dead code for string
4246         ctors and icalls.
4247
4248 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4249
4250         * mono-debug.c: Fix memory leaks.
4251
4252 2007-09-14  Jonathan Chambers <joncham@gmail.com>
4253
4254         * threads-types.h: Implement mono_hazard_pointer_set and 
4255         mono_hazard_pointer_clear macros using do/while(0) to fix
4256         compilation with MSVC.
4257         
4258         Code is contributed under MIT/X11 license.
4259
4260 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
4261
4262         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
4263         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
4264
4265 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4266
4267         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
4268         icalls.
4269
4270 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4271
4272         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
4273         managed-code allocated as well.
4274
4275 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
4276
4277         * class.c (mono_class_is_assignable_from): Add support for generic variance.
4278
4279 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
4280
4281         * boehm-gc.c: fixed the build after the AOT changes.
4282
4283 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
4284
4285         * wrapper-types.h: Add an ALLOC wrapper type.
4286
4287         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
4288         reference managed allocator methods.
4289
4290 2007-09-12  Marek Safar  <marek.safar@gmail.com>
4291
4292         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
4293         of Type array and not MonoType, a fix suggested by Hari.
4294         
4295 2007-09-12  Jonathan Chambers <joncham@gmail.com>
4296
4297         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
4298         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
4299         
4300         Code is contributed under MIT/X11 license.
4301
4302 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4303
4304         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
4305
4306 2007-09-12  Marek Habersack  <mhabersack@novell.com>
4307
4308         * image.c (do_mono_image_open): if assembly file fails to open and
4309         MONO_IOMAP is in effect, try to find the path in a
4310         case-insensitive way.
4311
4312         * appdomain.c (mono_runtime_init): do not install postload hooks -
4313         tests show that MS.NET doesn't use anything of that sort to
4314         trigger the AppDomain.AssemblyResolve event.
4315         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
4316         made non-static.
4317         (mono_runtime_init): init portability helpers here.
4318
4319         * assembly.c (mono_assembly_load_with_partial_name): if other   
4320         attempts fail, trigger the AppDomain.AssemblyResolve event handler
4321         to resolve the assembly.
4322
4323         * domain-internals.h: added mono_try_assembly_resolve and marked
4324         it as internal.
4325
4326 2007-09-11  Jb Evain  <jbevain@novell.com>
4327
4328         * object-internals.h (MonoReflectionDynamicMethod): add
4329         a `MonoReflectionType *owner` field. The owner is used
4330         * reflection.c:
4331         (mono_reflection_create_dynamic_method): use the owner of the dynamic
4332         method as the class declaring the dynamic method.
4333         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
4334         dynamic method to the declaring type of the methodbuilder.
4335
4336 2007-09-11  Mark Probst  <mark.probst@gmail.com>
4337
4338         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
4339         rules for calling methods via reflection.
4340
4341 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
4342
4343         * reflection.c (resolve_object): Add support for MonoGenericClass. 
4344         Inflate MonoType's.
4345
4346 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
4347
4348         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
4349         provide a managed method that does fast allocations without needing
4350         a managed->unmanaged transition. Boehm GC implementation currently
4351         enabled for ptrfree objects on sane architectures.
4352
4353 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
4354
4355         * marshal.c, marshal.h: exported a couple of useful functions and
4356         added mono_mb_get_label () to easily handle backward branches.
4357
4358 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
4359
4360         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
4361
4362 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
4363
4364         * loader.c (find_method): Fixed the regression introduced while
4365         fixing bug #81466.
4366
4367 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
4368
4369         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
4370         well.
4371         
4372         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
4373         icall.c reflection.c: Pass a MonoGenericContext argument to 
4374         mono_lookup_dynamic_token ().
4375
4376         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
4377         #82744.
4378         
4379 2007-09-09  Robert Jordan  <robertj@gmx.net>
4380
4381         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
4382         for generic methods.
4383
4384         * object.c (mono_object_get_virtual_method): Handle generic methods.
4385         Fixes bug #78882.
4386
4387         Code is contributed under MIT/X11 license.
4388
4389 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
4390
4391         * image.c: fix locking in mono_image_load_file_for_image ().
4392
4393 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
4394
4395         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
4396         used only as a cache: added an icall to fill it.
4397
4398 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
4399
4400         * reflection.h: exposed mono_reflection_free_type_info
4401         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
4402         since mono_reflection_bind_generic_parameters makes a copy of it.
4403         * reflection.c (free_type_info): subinfos should be freed.
4404         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
4405         made non static.
4406         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
4407         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
4408         this fixes #82695 and #81726.
4409    
4410
4411 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
4412
4413         * process.h, process.c:  added support for user profile/info in
4414           ProcessStartInfo. For now only Windows works.
4415
4416 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4417
4418         * metadata.c: consider the generic arguments when comparing
4419         signatures (bug #82614).
4420
4421 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4422
4423         * cil-coff.h, image.c: updated assembly loader to cope with the
4424         PE32+ 64 bit file format.
4425
4426 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4427
4428         * assembly.c, class.c, domain.c, loader.c: remove useless
4429         inclusion of cil-coff.h.
4430
4431 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
4432
4433         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
4434         if interface is marked with CoClassAttribute. 
4435    
4436         Code is contributed under MIT/X11 license.
4437
4438 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
4439
4440         * sgen-gc.c: ensure no object from the to space is copied again or finalized
4441         if it's seen twice in major collections.
4442
4443 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
4444
4445         * sgen-gc.c: big objects are not copied to the gray area, but they
4446         need to be considered for scanning, too, if they are brought alive
4447         by an object ready for finalizations or a survived one.
4448
4449 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4450
4451         * sgen-gc.c: properly account the number of disappearing links when
4452         they are nullified.
4453
4454 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
4455
4456         * sgen-gc.c: share the code to scan the registered roots between the
4457         different types of collections.
4458
4459 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
4460
4461         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
4462
4463 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
4464
4465         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
4466         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
4467
4468 2007-08-28  Mark Probst  <mark.probst@gmail.com>
4469
4470         * security-manager.c (mono_security_manager_get_methods):
4471         LinkDemandSecurityException now has 2 arguments instead of 3.
4472
4473 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
4474
4475         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
4476         platforms which need it.
4477
4478 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
4479
4480         * sgen-gc.c: unregister thread data structures with a pthread_key_t
4481         dtor.
4482
4483 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
4484
4485         * threads.c: free the thread static data on thread exit.
4486
4487 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
4488
4489         * class.c: walk the hierarchy to find the generic definition for
4490         a class (fixes runtime part of bug #82498).
4491
4492 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
4493
4494         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
4495         ...
4496
4497         * image.c (mono_image_close): Here. Hopefully fixes #82510.
4498
4499 2007-08-24  Mark Probst  <mark.probst@gmail.com>
4500
4501         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
4502
4503 2007-08-24  Robert Jordan  <robertj@gmx.net>
4504
4505         * appdomain.c: don't perform the ':'->';' substitution on Win32.
4506
4507 2007-08-24  Jb Evain  <jbevain@novell.com>
4508
4509         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
4510         for byref types.
4511
4512 2007-08-24  Mark Probst  <mark.probst@gmail.com>
4513
4514         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
4515         #82286.
4516
4517 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
4518
4519         * assembly.c: Fix a warning.
4520         
4521 2007-08-23  Marek Habersack  <mhabersack@novell.com>
4522
4523         * appdomain.c: parse the <runtime> section looking for the probing
4524         element with the 'privatePath' attribute, which sets additional
4525         directories in which the runtime should look for assemblies.
4526
4527 2007-08-23  Robert Jordan  <robertj@gmx.net>
4528
4529         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
4530         Fixes #82499.
4531
4532 2007-08-23  Martin Baulig  <martin@ximian.com>
4533
4534         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
4535         _mono_debug_init_corlib() and remove it from the header file.
4536
4537 2007-08-23  Martin Baulig  <martin@ximian.com>
4538
4539         * mono-debug-debugger.c
4540         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
4541         don't notify the debugger about it.
4542
4543         * mono-debug-debugger.h
4544         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
4545
4546 2007-08-23  Robert Jordan  <robertj@gmx.net>
4547
4548         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
4549         Code is contributed under MIT/X11 license.
4550
4551 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
4552
4553         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
4554
4555 2007-08-22  Martin Baulig  <martin@ximian.com>
4556
4557         * mono-debug.c: Store debugging info on a per-domain basis and
4558         free it on domain unload.  Add support for unloading symbol files.
4559
4560         * mono-debug.h
4561         (MonoDebugList): New typedef.
4562         (MonoSymbolTable):
4563         - add `data_tables and `type_table'.
4564         - replace 'symbol_files' and `num_symbol_files' with a
4565           `MonoDebugList *'.
4566         (mono_debug_data_table): Removed.
4567         (mono_debug_list_add): New public function.
4568         (mono_debug_list_remove): New public function.
4569         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
4570         (mono_debug_init_2_memory): Renamed into
4571         mono_debug_open_image_from_memory().
4572         (mono_debug_close_image): New public function.
4573         (mono_debug_domain_create): Likewise.
4574         (mono_debug_domain_unload): Likewise.
4575         (MONO_DEBUGGER_VERSION): Bump to 60.
4576
4577         * mono-debug-debugger.h
4578         (MonoDebuggerEvent):
4579         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
4580         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
4581         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
4582         - rename `THREAD_CREATED' and `THREAD_EXITED' into
4583           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
4584         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
4585           meaning.
4586         (mono_debugger_add_symbol_file): Removed.
4587         (mono_debugger_add_type): Removed.
4588         (mono_debugger_lookup_type): Removed.
4589         (mono_debugger_lookup_assembly): Removed.
4590
4591         * domain.c
4592         (mono_domain_create): Call mono_debug_domain_create().
4593         (mono_init_internal): Call mono_debug_init_corlib().
4594
4595         * assembly.c
4596         (mono_assembly_close): Call mono_debug_close_image().
4597
4598 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
4599
4600         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
4601         mmap call.
4602
4603 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
4604
4605         * sgen-gc.c: ensure section->pin_queue_end is initialized
4606         correctly when non pinning objects in the section have been found.
4607
4608 2007-08-22  Marek Habersack  <mhabersack@novell.com>
4609
4610         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
4611         containing a list of directories separated by ':'. MSDN docs say
4612         the directories should be separated with ';'. Part of a bugfix for
4613         bug #81446
4614
4615 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
4616
4617         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
4618         it should MonoType and not MonoClass.
4619
4620 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
4621
4622         * culture-info-table.h : regenerated.
4623
4624 2007-08-20  William Holmes  <billholmes54@gmail.com>
4625
4626         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
4627          to call ReplaceFile Kernel32 on windows or in io-layer.
4628         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
4629         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
4630          as an internal call.
4631
4632         Code is contributed under MIT/X11 license.
4633
4634 2007-08-20  Jb Evain  <jbevain@novell.com>
4635
4636         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
4637         and MONO_EXCEPTION_FIELD_ACCESS.
4638
4639         * debug-helpers.[c|h]: new mono_field_full_name function.
4640
4641 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4642
4643         * class.c: Removed class_security_level() and moved it to
4644         security-core-clr.c.
4645
4646         * security-core-clr.c, security-core-clr.h: class_security_level()
4647         is now public and renamed to mono_security_core_clr_class_level().
4648         It also looks for security attributes in the classes a class is
4649         nested in.
4650
4651 2007-08-20  Mark Probst  <mark.probst@gmail.com>
4652
4653         * security-core-clr.c, security-core-clr.h: CoreCLR security
4654         utility functions.
4655
4656         * Makefile.am: Added security-core-clr.[ch].
4657
4658         * security-manager.c, security-manager.h: Functions and enum for
4659         setting and getting the security mode.
4660
4661         * class.c: CoreCLR security checks.
4662
4663 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
4664
4665         * icall-def.h, process.c, process.h: implemented icall to get
4666         user/system processor times.
4667
4668 2007-08-17  Mark Probst  <mark.probst@gmail.com>
4669
4670         * domain.c, threads.c, class-internals.h, domain-internals.h: New
4671         reader-lock-free jit_info_table.
4672
4673 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
4674
4675         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
4676
4677         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
4678
4679         * object-internals.h (MonoException): Add missing _data member.
4680
4681 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4682
4683         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
4684         checking that only methods with matching qname or fqname are picked
4685         from implemented interfaces.
4686
4687 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4688
4689         * verify.c (do_newarr):added, do type verification of
4690         newarr ops, push the right value on the eval stack.
4691         * verify.c (mono_method_verify): use do_newarr
4692
4693
4694 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4695
4696         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
4697         factored the common code into get_boxable_mono_type, which
4698         is now using mono_type_get_full, this fixed byref related tests.
4699
4700 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
4701
4702         * class.c: added mono_type_get_full, this function has the same
4703         behavior of mono_class_get_full but the returned MonoType has
4704         all metadata of the associated token in case of a typespec token.
4705         * class.c: added mono_type_retrieve_from_typespec, used by 
4706         mono_type_get_full to retrieve the token type.
4707         * class.c (mono_class_create_from_typespec): changed to use
4708         mono_type_retrieve_from_typespec.
4709         * class.c (mono_ldtoken): changed to use mono_type_get_full
4710         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
4711         * class-internals.h: exported mono_type_get_full for internal use.
4712
4713 2007-08-16  Jb Evain  <jbevain@novell.com>
4714
4715         * domain.c (supported_runtimes): add entry for
4716         the 'moonlight' runtime version.
4717
4718 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4719
4720         * verify.c (mono_method_verify): small typo sliped in.  
4721
4722 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4723
4724         * verify.c (do_unbox_value): added, do type verification of
4725         unboxing ops
4726         * verify.c (mono_method_verify): use do_unbox_value
4727
4728
4729 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4730
4731         * verify.c (dump_stack_value): fixed typo, was printing string
4732         instead of object on stack.
4733         * verify.c (do_box_value): moved the byref check up as it leads
4734         to invalid code and should be done earlier.
4735         * verify.c: improved error messages for and ldobj
4736
4737 2007-08-15  William Holmes  <billholmes54@gmail.com>
4738
4739         * marshal.c (emit_marshal_custom): Omit the call to 
4740           marshal_native_to_managed when calling native to managed 
4741           and the argument is specified as an out argument.
4742
4743         Code is contributed under MIT/X11 license.
4744
4745 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
4746
4747         * verify.c: fixed the type checks for generics, function pointers and vectors.
4748         Added type verification for ldobj and ldtoken. The verifier
4749         would segfault if header or signature of a method contained references
4750         to non-existant types.
4751
4752 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4753
4754         * marshal.c (cominterop_get_ccw): Patch from
4755         Bill Holmes to no walk up interface hierarchy. 
4756         All parent methods should be present in the interface for COM.
4757    
4758         Code is contributed under MIT/X11 license.
4759
4760 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
4761
4762         * marshal.c (emit_marshal_com_interface): Patch from
4763         Bill Holmes to handle COM Interfaces as return values
4764         for native->managed calls.
4765    
4766         Code is contributed under MIT/X11 license.
4767
4768 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
4769
4770         * marshal.c (cominterop_get_idispatch_for_object): Implement
4771         for runtime callable wrappers.
4772    
4773         Code is contributed under MIT/X11 license.
4774
4775 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
4776
4777         * pedump.c (main): changed from mono_init to mono_init_from_assembly
4778         so 2.0 types are accessible
4779
4780
4781 2007-08-13  Miguel de Icaza  <miguel@novell.com>
4782
4783         * domain.c (mono_init_internal): Call mono_assembly_load_friends
4784         once we load mscorlib.   Due to the order in which we initialize,
4785         the mono_assembly_load_full routine that loads mscorlib did not
4786         load friends.   We now load it once we load the
4787         mono_defaults.internals_visible_class class. 
4788
4789         * assembly.c: Expose the mono_load_friend_assemblies method.
4790
4791 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
4792
4793         * verify.c: improved the handling of boxing, better
4794         type checking for unary ops and conversion. Fix bug
4795         regarding managed pointer compatibility checking
4796
4797 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
4798
4799         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
4800
4801         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
4802
4803 2007-08-09  Raja R Harinath  <rharinath@novell.com>
4804
4805         * reflection.c (dup_type): Remove.
4806         * class.c (dup_type): Remove.
4807         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
4808         instead of the dodgy 'dup_type'.
4809         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
4810         handle the case where 'dup_type' needed the second argument.
4811
4812 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
4813
4814         * domain.c: Fix a warning.
4815
4816 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
4817
4818         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
4819         checking that methods with the same fqname are not overridden
4820         with a method from an ancestor.
4821
4822 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
4823
4824         * threads.c (free_thread_static_data_helper): Avoid a crash if
4825         thread->static_data is not yet set.
4826
4827 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
4828
4829         * marshal.c: Use correct image when emitting
4830         native wrapper for COM calls.
4831    
4832         Code is contributed under MIT/X11 license.
4833
4834 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
4835
4836         * icall-def.h, security.c, security.h :
4837           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
4838
4839 2007-08-07  Martin Baulig  <martin@ximian.com>
4840
4841         * mono-debug-debugger.h
4842         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
4843
4844         * domain.c (mono_domain_free): Call
4845         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
4846
4847 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
4848
4849         * verify.c (check_underflow, check_overflow): error message now returns IL offset
4850         * verify.c (in_same_block): code should test if either offset is inside the clauses
4851         * verify.c (mono_method_verify): push the exception into the eval stack of exception
4852         and filter blocks
4853
4854 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4855
4856         * image.c (mono_image_close): Fix a leak.
4857
4858         * object.c (mono_runtime_invoke_array): Avoid using alloca.
4859
4860         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
4861
4862 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
4863
4864         * domain.c, threads.c, threads-types.h: fix memory retention issue
4865         with thread static variables not being cleared on domain unload.
4866         Reuse thread static slots after domain unload.
4867
4868 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
4869
4870         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
4871         nullable type.
4872
4873         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
4874         now done in mono_runtime_invoke_array.
4875
4876         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
4877         receiver is a nullable type.
4878
4879         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
4880         generic parameter.
4881
4882 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
4883
4884         * marshal.c: Implement COM Objects as return type for 
4885         managed->unmanaged calls. Added Release calls for COM Object
4886         out/return values in managed->unmanaged calls.
4887
4888         Code is contributed under MIT/X11 license.
4889
4890 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
4891
4892         * threads.h, threads-type.h: move the hazard pointer declarations
4893         to the private header.
4894
4895 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
4896
4897         * file-io.c, appdomain.c: memory leak fixes.
4898
4899 2007-08-02  Dick Porter  <dick@ximian.com>
4900
4901         * socket-io.c
4902         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
4903         SO_REUSEADDR setting into io-layer/sockets.c.
4904
4905 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
4906
4907         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
4908         from Object when called on a generic parameter. Fixes #82211.
4909
4910 2007-08-01  Dick Porter  <dick@ximian.com>
4911
4912         * file-io.c (convert_share): Test FileShare values bit-by-bit.
4913         Fixes bug 79250 yet again.
4914
4915 2007-07-30  Martin Baulig  <martin@ximian.com>
4916
4917         Merged the `debugger-dublin' branch.
4918
4919         * mono-debug.h
4920         (MonoDebugDataTable): New typedef.
4921         (MonoDebugMethodAddressList): New typedef.
4922         (MonoDebugWrapperData): Removed.
4923         (MonoDebugSymbolTable): Removed `current_data_table',
4924         `current_data_table_size', `current_data_table_offset'.
4925         (MonoDebugDataItemType): Moved into mono-debug.c.
4926         (MonoDebugMethodJitInfo): Remove `address'.
4927         (mono_debug_data_table): New global variable.
4928         (mono_debug_lookup_method_addresses): New public function.
4929         (mono_debug_find_method): Take a `MonoMethod *', not a
4930         `MonoDebugMethodInfo *'.
4931
4932         * mono-debug.c: Drop support for the old symbol tables.
4933
4934 2007-06-28  Martin Baulig  <martin@ximian.com>
4935
4936         * mono-debug.c (mono_debug_debugger_version): New public variable.
4937
4938 2007-07-31  William Holmes  <billholmes54@gmail.com>
4939
4940         * metadata.c Changed mono_type_create_from_typespec to not insert
4941           the type into the hash map until after
4942           do_mono_metadata_parse_type has completed.
4943         Fixes Bug #82194
4944         Code is contributed under MIT/X11 license.
4945
4946 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
4947
4948         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
4949         generic parameter. Fixes #82211.
4950
4951 2007-07-27  Jb Evain  <jbevain@novell.com>
4952
4953         * pedump.c (dump_metadata, dump_metadata_header): dump
4954         versions contained in the metadata header.
4955
4956 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4957
4958         * threads.c: register small_id_table with the GC.
4959
4960 2007-07-27  Mark Probst  <mark.probst@gmail.com>
4961
4962         * threads.c, threads.h, class-internals.h, object-internals.h:
4963         Hazard pointers, to be used by lock-free parallel algorithms.
4964
4965 2007-07-26  Dick Porter  <dick@ximian.com>
4966
4967         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
4968         routine on non-windows platforms, as I've not managed to think of
4969         a non-kludgy way of doing this.  Finishes off bug 78739.
4970
4971 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
4972
4973         * object.c: properly setup interface_bitmap in proxy vtables.
4974
4975 2007-07-25  Marek Habersack  <mhabersack@novell.com>
4976
4977         * appdomain.c (get_shadow_assembly_location): do not use TickCount
4978         to create unique shadow copy target directories, use the domain's
4979         serial number instead. Each domain gets a unique target directory
4980         that way.
4981
4982         * domain.c (mono_domain_create): added code to increment domain
4983         shadow copy serial number and cache the value in the current
4984         domain structure.
4985
4986         * domain-internals.h (struct _MonoDomain): added a new field -
4987         shadow_serial to hold the serial number used in generation of
4988         shadow-copy directories. This is to make sure that the directory
4989         name is unique for each and every domain created. We avoid a race
4990         condition with overriding assemblies already in use by other app
4991         domains.
4992
4993 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
4994
4995         * class.c (mono_bounded_array_class_get): fixed memory leak when 
4996         binding generic parameters.
4997
4998 2007-07-24  Raja R Harinath  <rharinath@novell.com>
4999
5000         * metadata.c (do_mono_metadata_parse_generic_class): Use
5001         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
5002         error.
5003
5004 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
5005
5006         * loader.c, class-internals.h, reflection.c: removed the per-method
5007         generics hashtable: we use the global one through the call of
5008         mono_class_inflate_generic_method ().
5009
5010 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5011
5012         * class.c, metadata.c, class-internals.h: introduce yet another
5013         generics global cache for inflated methods (fixes 98% of the perf
5014         issue in bug #81806).
5015
5016 2007-07-23  Raja R Harinath  <rharinath@novell.com>
5017
5018         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
5019         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
5020         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
5021         return a MonoGenericInst containing (a copy) of those types.
5022         (mono_metadata_inflate_generic_inst): Update to changes.
5023         (mono_metadata_parse_generic_inst): Likewise.
5024         (mono_get_shared_generic_inst): Likewise.
5025         * reflection.c (mono_class_bind_generic_parameters): Likewise.
5026         (mono_reflection_bind_generic_method_parameters): Likewise.
5027         * metadata-internals.h: Likewise.
5028         * icall.c (free_generic_context): Kill.
5029         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
5030
5031         * reflection.c (reflection_methodbuilder_to_mono_method): Use
5032         mono_metadata_type_dup.
5033         * marshal.c (mono_mb_create_method): Likewise.
5034
5035         * metadata.c (mono_metadata_type_dup): Rename from
5036         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
5037         MonoImage.  Handle a few more cases, esp. when no mempool is given.
5038         * marshal.c, metadata-internals.h: Update to changes.
5039
5040 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5041
5042         * class.c: fixed a small leak for array classes and removed warning.
5043
5044 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
5045
5046         * loader.c (mono_method_get_param_token): Make this work on generic methods.
5047         Return 0x8000000 for return parameters. Fixes #82161.
5048
5049 2007-07-21  Marek Habersack  <grendello@gmail.com>
5050
5051         * appdomain.c (get_shadow_assembly_location): append the current
5052         ticks value to the path. Avoids overwriting the same assemblies by
5053         several threads at the same time.
5054
5055 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
5056         and Raja R Harinath  <rharinath@novell.com>
5057
5058         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
5059         Simplify slightly.
5060         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
5061         property for testing if a method is a generic method definition.
5062
5063 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
5064
5065         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
5066
5067 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5068
5069         * verify.c: used function from private branch, reverted to the one in class.h 
5070
5071 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5072
5073         * verify.c: a typo slipped in and the code wont compile
5074
5075 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5076
5077         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
5078         disabled box instruction as it is doing the wrong thing
5079         improved stack dump messages, now it is easier to debug type related issues
5080
5081
5082 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
5083
5084         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
5085
5086 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5087
5088         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
5089         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
5090         grouped with class and valuetype. This change will simply 
5091         the code as it should be handled just like unmanaged pointers.
5092
5093 2007-07-19  Mark Probst  <mark.probst@gmail.com>
5094
5095         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
5096
5097 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
5098
5099         * verify.c: several stack merge issues fixed, reference comparisons now
5100         check the type size. strict type check now works correctly.
5101         added more uses of IS_MANAGED_POINTER macro.
5102         fixed issues pointed by running the test suite against .net.
5103         
5104
5105 2007-07-19  Mark Probst  <mark.probst@gmail.com>
5106
5107         * class.c, loader.c, class-internals.h: Removed the
5108         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
5109         defines.
5110
5111         * icall.c: Better error checking in some internal reflection
5112         methods.
5113
5114 2007-07-18  William Holmes  <billholmes54@gmail.com>
5115
5116         * filewatcher.c : removed unused variable 'filename' in 
5117           ves_icall_System_IO_FSW_SupportsFSW
5118
5119 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
5120
5121         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
5122         obsolete, removed.
5123
5124 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
5125
5126         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
5127         
5128         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
5129
5130 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
5131
5132         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
5133         Implement generics support.
5134         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5135
5136         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
5137         type_args and method_args arguments.
5138         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
5139         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5140         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
5141
5142 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
5143
5144         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
5145           It adds a rootimage parameter to mono_reflection_get_type_internal,
5146           adds new function mono_reflection_get_type_with_rootimage and use
5147           the rootimage to resolve the types instead of the current image
5148
5149 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5150
5151         * culture-info-table.h: Forgot to update after r78304.
5152
5153 2007-07-13  Raja R Harinath  <rharinath@novell.com>
5154
5155         * class.c (mono_class_is_open_constructed_type)
5156         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
5157
5158 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
5159
5160         * class.c (mono_bounded_array_class_get):  method fails if used with
5161         an incomplete TypeBuilder enum (no basetype field), fixed it by 
5162         avoiding calculating the size for such array as it cannot be instantiated.
5163         Fix bug #82015
5164
5165 2007-07-12  Raja R Harinath  <rharinath@novell.com>
5166
5167         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
5168         field.
5169         * metadata.c, reflection.c: Update to changes.
5170
5171 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
5172
5173         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
5174         mono_class_is_valid_enum, they are used to valide a enum when loading.
5175         * reflection.c: used new functions to throw TypeLoadException when and
5176         invalid enum is build with TypeBuilder. Fixes #82018
5177   
5178 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5179
5180         * object.c: forgot commit of mono_class_setup_methods () to access
5181         iface->methods.
5182         * object-internals.h: added a few more handy fields to
5183         MonoIMTCheckItem.
5184
5185 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
5186
5187         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
5188         iface->methods.
5189
5190 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
5191
5192         * class-internals.h, object-internals.h, object.c: IMT-based
5193         interface invocation core from Massimiliano Mantione
5194         (massi@ximian.com) with a reworked arch-specific interface,
5195         bsearch implementation and a few bugfixes and memory savings by me.
5196
5197 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
5198
5199         * class.c (mono_class_create_from_typedef): mono would segfault if 
5200         an enum did not have a __value field. It now throws a TypeLoadException
5201         for such cases. Fix bug #82022
5202
5203 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
5204
5205         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
5206
5207 2007-07-09  Mark Probst  <mark.probst@gmail.com>
5208
5209         * class.c (mono_class_init): If a class is already inited but has
5210         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
5211
5212 2007-07-09  Mark Probst  <mark.probst@gmail.com>
5213
5214         * class.c: Properly handle the case of an unimplemented interface
5215         method.  Fixes: 81673.
5216
5217 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5218
5219         * class-internals.h, object.c: cleanup patch from massi: use
5220         MonoVTable->interface_bitmap since the vtable interfaces offset array
5221         is going away.
5222
5223 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
5224
5225         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
5226         GetMDStreamVersion icall instead.
5227
5228 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
5229
5230         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
5231         not use mono_dl_build_path() with a full library name: makes
5232         fallbacks to libgaim and libfam work.
5233
5234 2007-07-06  William Holmes  <billholmes54@gmail.com>
5235
5236         * assembly.c: Added a continue statement in probe_for_partial_name when
5237          parse_assembly_directory_name fails.  Fixes : 82002
5238
5239 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
5240
5241         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
5242         and added a verification  for TYPEDBYREF.
5243         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
5244         make native int interchangeable with int32 and some small cleanup and formating.
5245         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
5246         handle byref of byref.
5247         * verify.c (push_local): handle byref of byref.
5248         * verify.c (do_binop): invalid mix of values is unverifiable
5249         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
5250         added visibility checks
5251         * verify.c (field related method): added visibility checks
5252         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
5253
5254 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
5255
5256         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
5257         string.
5258
5259 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
5260
5261         * profiler.c (mono_profiler_load): Fix an off-by-one error.
5262
5263         * marshal.c (emit_marshal_string): When returning a string from managed code,
5264         allways make a copy even for unicode strings. Fixes #81990.
5265
5266 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
5267
5268         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
5269         of byref generic inst types (bug #81997).
5270
5271 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
5272
5273         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
5274         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
5275
5276 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
5277
5278         * marshal.c (emit_marshal_string): Add support for unicode strings in
5279         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
5280
5281 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
5282
5283         * verify.c: field load/store are now verified, missing only access checks now
5284
5285 2007-06-28  Martin Baulig  <martin@ximian.com>
5286
5287         * mono-debug.c (mono_debug_debugger_version): New public variable.
5288
5289 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
5290
5291         * locales.c: When constructing DateTimeFormat or NumberFormat for
5292         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
5293         MonoCultureInfo contructed from the current locale is always
5294         read-only and has UseUserOverride set to true. All MonoCultureInfo
5295         instances returned for GetCultures have both IsReadOnly and
5296         UseUserOverride set to true. Fixes part of bug #81930.
5297
5298 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
5299
5300        * icall-def.h: Update System.__ComObject icalls
5301        * marshal.c: Avoid managed transition (and object creation)
5302        when looking up COM interface in RCW.
5303        * marshal.h: Ditto.
5304        
5305        Code is contributed under MIT/X11 license.
5306
5307 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
5308
5309         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
5310         to avoid crashes during assembly unloading.
5311
5312 2007-06-22  Raja R Harinath  <rharinath@novell.com>
5313
5314         Fix MethodInfo.IsGenericMethodDefinition
5315         * reflection.c (mono_reflection_bind_generic_method_parameters):
5316         Rearrange code to ensure we always uses a generic method definition.
5317         * class.c (mono_class_inflate_generic_method_full): Set
5318         'generic_container' field only for generic method definitions.
5319         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
5320         Use presense of 'generic_container' field as indication of being a
5321         generic method definition.
5322
5323 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
5324
5325         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5326
5327         * object-internals.h: Reflect changes in the layout of the managed Delegate
5328         class.
5329         
5330         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
5331         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
5332         runtime memory used by the dynamic method. Fixes #77146.
5333
5334 2007-06-21  Dick Porter  <dick@ximian.com>
5335
5336         * file-io.h: 
5337         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
5338         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
5339         81767.
5340
5341 2007-06-21  Raja R Harinath  <rharinath@novell.com>
5342
5343         * reflection.c (method_encode_methodspec): Add a tripwire.
5344         * class.c (inflate_generic_type): The fully open generic type is
5345         not the same as the generic type definition.
5346
5347 2007-06-21  Martin Baulig  <martin@ximian.com>
5348
5349         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
5350
5351         * mono-debug-debugger.h
5352         (MonoDebuggerBreakpointInfo): Removed.
5353         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
5354         (mono_debugger_remove_breakpoint): Likewise.
5355         (mono_debugger_breakpoint_callback): Likewise.
5356         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
5357
5358 2007-06-21  Raja R Harinath  <rharinath@novell.com>
5359
5360         * metadata.c (mono_metadata_lookup_generic_class): The fully open
5361         generic type is not the same as the generic type definition.
5362         * class.c (mono_generic_class_get_class): Likewise.
5363
5364 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
5365
5366         * icall.c: The second argument to 
5367         System.Reflection.MethodBase.GetMethodFromHandleInternalType
5368         is a MonoType not a MonoClass.
5369
5370 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
5371
5372         * verify.c: support for function pointers in the verifier
5373
5374 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
5375
5376         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
5377
5378 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
5379
5380         * assembly.c: removed Mono.Data.SqliteClient from the list of
5381         forward-compatible assemblies as it breaks the ABI (bug #81899).
5382
5383 2007-06-19  Raja R Harinath  <rharinath@novell.com>
5384
5385         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
5386         lookup/update with the loader lock.
5387         * reflection.c (mono_class_bind_generic_parameters): No need to
5388         protect mono_metadata_lookup_* with the loader lock.
5389         * class.c (inflate_generic_type): Likewise.
5390         
5391         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
5392         on a generic instantiated type.
5393
5394 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
5395
5396         *verify.c: produce meanfull error messages on verification error
5397         *verify.c: fixed some cases of verification errors reported as validation errors
5398         *pedump.c: fixed the error name array, now it shows validation errors properly
5399         *verify.h: fixed the contant that should be used for verification errors
5400
5401 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
5402
5403         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
5404         for bug #77596, 81858 and 80743 (generics data structures on domain
5405         unload).
5406
5407 2007-06-15  Raja R Harinath  <rharinath@novell.com>
5408
5409         Avoid allocating 'MonoGenericContext' on the heap.
5410         * class-internals (_MonoMethodInflated::context): Make field
5411         inline, not a pointer.
5412         * loader.c (method_from_methodspec): Allocate 'new_context' on the
5413         stack.  Use the context embedded within the inflated method as the
5414         hash key, rather than 'new_context'.
5415         * class.c (inflate_generic_context): Simplify.  Return a struct
5416         rather than allocating on the heap.
5417         (mono_class_inflate_generic_method_full): Update to changes.  Now,
5418         doesn't salt away a copy of the context -- simplifying the
5419         lifetime rules of a 'MonoGenericContext *'.
5420         (mono_method_get_context): Return pointer to embedded context.
5421         (setup_generic_array_ifaces): Allocate temporary context on stack.
5422         * reflection.c (inflate_mono_method): Likewise.
5423         (mono_reflection_bind_generic_method_parameters): Likewise.
5424         Use the context embedded within the inflated method as the hash key.
5425
5426         Avoid a source of allocation of 'MonoGenericContext'.
5427         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
5428         and 'cached_context' fields into embedded 'MonoGenericContext' field.
5429         * class.c: Update to changes.
5430         (mono_generic_class_get_context): Simplify drastically.  Now just
5431         returns a pointer to the field.
5432         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
5433         argument as a const pointer.
5434         (mono_metadata_generic_context_equal): Likewise.
5435         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
5436         Update to changes.
5437
5438 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
5439
5440         * verify.c improved the handling of brtrue/brfalse, factored out common code
5441
5442 2007-06-14  Raja R Harinath  <rharinath@novell.com>
5443
5444         Kill MonoGenericMethod.
5445         * class-internals.h (MonoGenericContext::method_inst): Rename from
5446         'gmethod' and convert to a MonoGenericInst.
5447         (MonoGenericMethod): Remove.
5448         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
5449         * loader.c (method_from_methodspec): Update to changes.  Use a
5450         MonoGenericContext as the key to the hashtable.
5451         * metadata.c (mono_metadata_generic_context_equal): Rename from 
5452         'mono_metadata_generic_method_equal' and take MonoGenericContext.
5453         (mono_metadata_generic_context_hash): Likewise from
5454         'mono_metadata_generic_method_hash'.  Change hash function.
5455         (mono_metadata_load_generic_params): Update to changes.
5456         (mono_get_shared_generic_method): Remove.
5457         * metadata-internals.h (mono_get_shared_generic_method): Remove.
5458         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
5459         (inflate_generic_context): Likewise.
5460         (mono_class_inflate_generic_method_full): Likewise.
5461         (setup_generic_array_ifaces): Likewise.
5462         (mono_class_create_from_typespec): Likewise.
5463         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
5464         (method_encode_methodspec): Update callsite.
5465         (reflection_methodbuilder_to_mono_method): Update to changes.
5466         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
5467         MonoGenericContext as the key to the hashtable.
5468         (inflate_mono_method): Update to changes.
5469
5470         * class-internals.h (MonoGenericMethod::container): Remove.
5471         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
5472
5473 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
5474
5475         * profiler-private.h, profiler.c, profiler.h: added API to profile
5476         exception events.
5477
5478 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
5479
5480         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
5481
5482 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
5483
5484         * verify.c: method invocation is now validated, now we verify parameter types on stack.
5485         Fixed overflow and underflow not aborting the verification process.
5486
5487 2007-06-13  Mark Probst  <mark.probst@gmail.com>
5488
5489         * class-internals.h (MonoStats): Added stats entries for dynamic
5490         code allocations.
5491
5492 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
5493
5494         * loader.c (mono_free_method): Free header->locals and header->clauses.
5495
5496         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
5497         dynamic case.
5498
5499         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
5500
5501         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
5502
5503 2007-06-12  Raja R Harinath  <rharinath@novell.com>
5504
5505         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
5506         the tables.
5507
5508 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5509
5510         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
5511
5512 2007-06-11  Raja R Harinath  <harinath@gmail.com>
5513
5514         MonoGenericMethod on a diet
5515         * class-internals.h (_MonoMethodInflated::reflection_info): Move
5516         here ...
5517         (_MonoGenericMethod::reflection_info): ... from here.
5518         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
5519         Update to changes.
5520         * reflection.c (inflate_mono_method): Likewise.
5521         (mono_reflection_bind_generic_method_parameters): Likewise.
5522
5523 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5524
5525         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
5526         *verify.c: factored long ldarg forms to share code with short forms
5527
5528 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
5529
5530         *verify.c: fixed code formating factored some duplicate code
5531         into a new function
5532
5533         *verify.h: fixed binary incompatibility introduced earlier
5534
5535         *pedump.c: fixed formating
5536
5537 2007-06-11  Raja R Harinath  <harinath@gmail.com>
5538
5539         Fix assertion when disassembling Mono.C5.dll
5540         * loader.c (method_from_methodspec): Avoid inflating a method
5541         twice with the same context.  If the methodref is inflated, use
5542         the declaring method instead.
5543
5544         * class.c (mono_class_from_generic_parameter): Fix case similar to
5545         bug #81830 handled below, but for method containers.
5546
5547 2007-06-10  Raja R Harinath  <harinath@gmail.com>
5548
5549         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
5550         get_shared_generic_class.  Directly inflate the instance.
5551         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
5552         (inflate_generic_class): Delete.
5553         (get_shared_generic_class): Delete.  Move setting of
5554         'cached_class' and 'cached_context' ...
5555         * metadata.c (mono_metadata_lookup_generic_class): ... here.
5556
5557         * metadata.c (mono_metadata_lookup_generic_class): Change
5558         signature to take the components of a MonoGenericClass rather than
5559         an allocated MonoGenericClass.  Change semantics to be intern-like.
5560         * reflection.c (mono_class_bind_generic_parameters): Update to
5561         changes.  Make locking region tighter.
5562         * class.c (inflate_generic_class): Update to changes.
5563         (get_shared_generic_class): Likewise.
5564         * metadata-internals.h: Likewise.
5565
5566         * reflection.c (mono_class_bind_generic_parameters): Take and
5567         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
5568         (mono_reflection_bind_generic_parameters): Use
5569         'mono_class_bind_generic_parameters' rather than duplicate the code.
5570         * class.c (mono_bounded_array_class_get): Update to changes.
5571         * object-internals.h: Likewise.
5572
5573         * reflection.c (mono_class_bind_generic_parameters): Only support
5574         parameterizing generic type definitions.  Remove support for other
5575         open types.
5576
5577 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
5578
5579         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
5580
5581         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
5582         in the dynamic case.
5583
5584 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
5585
5586         * threads.c: When cleaning up thread, reset the Background bit.
5587         Fixes bug #81720.
5588
5589 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
5590
5591        * metadata.c: Move variable declarations to top of scope.
5592        * verify.c: Move variable declarations to top of scope.
5593
5594        Code is contributed under MIT/X11 license.
5595
5596 2007-06-08  Raja R Harinath  <rharinath@novell.com>
5597
5598         * reflection.c (mono_class_bind_generic_parameters): Replace
5599         open-coded loop with mono_metadata_inflate_generic_inst.
5600
5601         * class.c (get_shared_generic_class): Don't call
5602         mono_get_shared_generic_inst.  Use the container's own
5603         'class_inst'.
5604
5605         * metadata.c (mono_metadata_load_generic_params): Move
5606         initialization of 'context' field here from ...
5607         * class.c (mono_class_create_from_typedef): ... here, and ...
5608         * loader.c (mono_get_method_from_token): ... here.
5609
5610         * class.c (get_shared_generic_class): Rename from
5611         mono_get_shared_generic_class and make static.
5612         (mono_get_shared_generic_inst): Move to metadata.c.
5613         * loader.c (mono_get_shared_generic_method): Likewise.
5614         * class-internals.h, metadata-internals.h: Update to changes.
5615
5616         Fix #81830
5617         * class.c (mono_class_from_generic_parameter): Don't assume a
5618         generic container owner exists.  Generic containers from monodis
5619         don't have any.
5620
5621 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
5622
5623         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
5624         * verify.h: new typedefs to returns the non-verifiable status
5625         * verify.c: initial implementation of generics, stack merging and object compatibility check
5626
5627 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5628
5629         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5630         a MonoInternalHashTable again (fixed bug in internal hash table
5631         code).
5632
5633 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5634
5635         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5636         MonoInternalHashTable again (fixed bug in internal hash table
5637         code).
5638
5639 2007-06-06  Mark Probst  <mark.probst@gmail.com>
5640
5641         * class.c, image.c, class-internals.h, domain.c,
5642         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
5643         changes.  Have to figure out what makes them break the SWF
5644         regression.
5645
5646 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5647
5648         * class.c, image.c, class-internals.h (MonoImage): class_cache is
5649         a MonoInternalHashTable now.
5650
5651 2007-06-04  Mark Probst  <mark.probst@gmail.com>
5652
5653         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
5654         MonoInternalHashTable now.
5655
5656 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
5657
5658         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
5659         invoke_impl code.
5660
5661         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
5662
5663         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
5664         dependent trampoline.
5665
5666         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5667
5668         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
5669
5670 2007-05-29  Robert Jordan  <robertj@gmx.net>
5671
5672         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
5673
5674 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
5675
5676         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
5677
5678 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
5679
5680        * marshal.c: Fix interface lookup loops for
5681        cominterop_get_com_slot_for_method and 
5682        cominterop_get_method_interface. Only need to lookup
5683        if type is a class, else use interface type method is on.
5684
5685        Code is contributed under MIT/X11 license.
5686
5687 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
5688
5689         * reflection.c: HasSecurity can be present even if no specially 
5690         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
5691         SecurityAttribute). Fix CAS regression tests on buildbot.
5692
5693 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
5694
5695        * appdomain.c: Add configure checks for header files.
5696        * image.c: Add configure checks for header files.
5697        * file-io.c: Add configure checks for header files.
5698        * debug-mono-symfile.c: Add configure checks for header files.
5699        * threadpool.c: Add configure checks for header files.
5700        * console-io.c: Add configure checks for header files.
5701        * profiler.c: Add configure checks for header files.
5702        * rawbuffer.c: Add configure checks for header files.
5703        * icall.c: Add configure checks for header files.
5704        * rand.c: Add configure checks for header files.
5705        * socket-io.c: Add configure checks for header files.
5706
5707        Code is contributed under MIT/X11 license.
5708
5709 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
5710
5711         * reflection.c (mono_custom_attrs_from_builders): Remove the 
5712         assertion as it breaks the build.
5713         
5714         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
5715
5716         * reflection.c (lookup_custom_attr): Make a copy here too.
5717
5718         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
5719         dynamic images.
5720
5721         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
5722         images.
5723
5724         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
5725         info.
5726
5727 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
5728
5729         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
5730         (load_cattr_value): Ditto.
5731
5732 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
5733
5734         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
5735
5736 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
5737
5738         * threads.c: In "start_wrapper", set apartment_state to MTA if
5739         apartment_state is Unknown and we're running on 2.0 profile or
5740         higher.
5741         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
5742         to main method, then set apartment_state to Unknown on 1.0 profile,
5743         and MTA on 2.0 profile.
5744
5745 2007-05-16  Jb Evain  <jb@nurv.fr>
5746
5747         * class-internals.h (MonoDefaults): Add an attribute_class and
5748           customattribute_data_class.
5749         * domain.c (mono_init_internal): Populate them.
5750         * reflection.c: Use them to remove duplicates. Make a vew
5751         MonoClass variables `static'.
5752
5753 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
5754
5755         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
5756         step in implementing IMT, so that all isinst checks now can go
5757         through the bitmap.
5758         This was needed because vtables for TransparentProxy need to look
5759         like the vtable of the "target" class, so they need to point to
5760         its interface bitmap directly.
5761
5762         * object.c: inside "mono_class_create_runtime_vtable" and
5763         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
5764
5765 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
5766
5767         * object-internals.h
5768           culture-info.h : added territory field in MonoCulture and
5769           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
5770         * locales.c : fill territory field above too.
5771         * culture-info-table.h : regenerated.
5772
5773 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
5774
5775         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
5776         Fixes #81599.
5777
5778 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
5779
5780         * object.c: Always initialize apartment, even if 
5781         there is no custom attributes on entry point.
5782         
5783         Code is contributed under MIT/X11 license.
5784
5785 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
5786
5787         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
5788         * metadata.c: If no encoding is set, check for unicode
5789         on class.
5790         
5791         Code is contributed under MIT/X11 license.
5792
5793 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5794
5795         * threads.c: Handle if mono_thread_current returns NULL 
5796         
5797         Code is contributed under MIT/X11 license.
5798
5799 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
5800
5801         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
5802         in start_wrapper. Added mono_thread_init_apartment_state and
5803         mono_thread_cleanup_apartment_state.
5804         * object.c: Initialize thread apartment state on main thread
5805         by checking for STAThreadAttribute on entry point.
5806         * object-internals.h: Add apartment_state field to MonoThread.
5807         * threads-types.h: Add unmanaged definition of 
5808         System.Threading.ApartmentState, MonoThreadApartmentState.
5809         
5810         Code is contributed under MIT/X11 license.
5811         
5812 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
5813
5814         * class.c: Fix windows build.
5815         * class-internals.h: Fix windows build.
5816         
5817         Code is contributed under MIT/X11 license.
5818
5819 2007-05-08  Robert Jordan  <robertj@gmx.net>
5820
5821         * process.c (CreateProcess_internal):
5822         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
5823         .CreateNoWindow was specified. Fixes #81496.
5824
5825 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5826
5827         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
5828         step in implementing IMT, replaced it with two compact arrays
5829         (interfaces_packed and interface_offsets_packed) and a bitmap that
5830         is used for isinst checks (interface_bitmap).
5831
5832         * class.c: (compare_interface_ids): compare function to pass to
5833         bsearch when looking for an interface with a given id.
5834         (mono_class_interface_offset): reimplemented using bsearch on
5835         interfaces_packed, getting the offset from interface_offsets_packed.
5836         (print_implemented_interfaces): utility debugging function.
5837         (setup_interface_offsets): reworked to initialize interfaces_packed,
5838         interface_offsets_packed and interface_bitmap.
5839
5840         * object.c: replaced all accesses to "MonoClass.interface_offsets"
5841         with uses of interfaces_packed and interface_offsets_packed.
5842
5843 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
5844
5845         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
5846         mono_class_interface_offset prototype to wrap all accesses to
5847         "MonoClass.interface_offsets".
5848
5849         * class.c: Implemented mono_class_interface_offset, and wrapped all
5850         accesses to "MonoClass.interface_offsets".
5851
5852         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
5853         "MonoClass.interface_offsets".
5854
5855 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5856
5857         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
5858         GetMethodFromHandle overloads (bug #78637).
5859
5860 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
5861
5862         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
5863         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
5864
5865 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
5866
5867         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
5868         #81498.
5869
5870         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
5871         gracefully.
5872         (mono_custom_attrs_from_index): Ditto.
5873
5874         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
5875         Fixes #81501.
5876
5877 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
5878
5879         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
5880         is now allocated from a mempool.
5881
5882 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
5883
5884         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
5885         caller holds threads_lock, leading to deadlocks. Fixes #81476.
5886
5887 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
5888
5889         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
5890         mono_loader_clear_error () too late. Fixes #81463.
5891
5892 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
5893
5894         * culture-info-table.h : regenerated.
5895
5896 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
5897
5898         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
5899         is missing.
5900
5901 2007-04-25  Dick Porter  <dick@ximian.com>
5902
5903         * Makefile.am: Put the mingw enforced-optimisation back into the
5904         PLATFORM_WIN32 section.
5905
5906 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
5907
5908         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
5909         patch.
5910
5911         * image.c (mono_image_load_module): New API function to load a module reference.
5912
5913         * image.c (load_modules): Load modules lazily. Fixes #80812.
5914
5915         * class.c (mono_class_from_typeref): Use mono_image_load_module.
5916         
5917         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
5918
5919         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
5920         to mono_image_load_module_dynamic.
5921
5922 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
5923
5924         * marshal.c: Fix calling convention for CCW on non-windows
5925         platforms. STDCALL on windows, CDECL everywhere else to work 
5926         with XPCOM and MainWin COM.
5927         
5928         Code is contributed under MIT/X11 license.
5929
5930 2007-04-23  Martin Baulig  <martin@ximian.com>
5931
5932         Fix #80969.
5933
5934         * loader.c
5935         (method_from_memberref): Added `gboolean *used_context' argument.
5936         (mono_get_method_from_token): Likewise.
5937         (mono_get_method_full): Don't insert the method in the cache when
5938         `used_context' is true.
5939
5940 2007-04-23  Raja R Harinath  <rharinath@novell.com>
5941
5942         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
5943
5944         * reflection.c (mono_reflection_bind_generic_parameters): Don't
5945         create new MonoTypes for returned types.
5946         * class.c (mono_generic_class_get_class): Export mono-internal.
5947         * class-internals.h: Update to changes.
5948
5949 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
5950
5951         * threadpool.c, threadpool.h, icall-def.h: patch from
5952         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
5953
5954 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
5955
5956         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
5957         
5958         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
5959
5960         * threads.c (mono_thread_get_stack_bounds): New helper function.
5961
5962         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
5963         Correctly compute stack bounds when attaching. Fixes #81394.
5964
5965 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
5966
5967         * reflection.c: fix handling of doubles in custom attributes
5968         for the arm-fpa format (bug #81368).
5969
5970 2007-04-18  Raja R Harinath  <rharinath@novell.com>
5971
5972         * reflection.c (assembly_add_win32_resources): Mildly relax an
5973         bounds check to let the end pointer point just past the end of the
5974         allocated buffer.  (may fix #81384)
5975
5976 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
5977
5978         * culture-info-table.h : regenerated.
5979
5980 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
5981
5982         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
5983         the thread is aborted early.
5984
5985 2007-04-05  Dick Porter  <dick@ximian.com>
5986
5987         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
5988         FindFirstFile()/FindNextFile() to find entries.  This lets the
5989         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
5990         81038.
5991
5992         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
5993         the parameters of
5994         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
5995
5996 2007-04-04  Martin Baulig  <martin@ximian.com>
5997
5998         * debug-helpers.c
5999         (mono_method_desc_full_match): Add support for nested classes.
6000
6001 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
6002
6003         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
6004
6005 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
6006
6007         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
6008         waiting for too many threads.
6009
6010 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
6011
6012         * environment.c: Fix return value check on uname so we can get the 
6013         executing version on Solaris operating systems.
6014
6015 2007-03-28  Jb Evain  <jbevain@gmail.com>
6016
6017         * class.c (mono_type_get_name_recurse): Complete the
6018         fix for the creation of assembly qualified names for
6019         pointer types. Fixes #81208.
6020
6021 2007-03-27  Dick Porter  <dick@ximian.com>
6022
6023         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
6024         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
6025         changed.
6026
6027         * threads.c
6028         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
6029         the value of ReleaseMutex().
6030
6031 2007-03-27  Dick Porter  <dick@ximian.com>
6032
6033         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
6034         in little-endian order, not network endian, so must be converted
6035         to host endian here.  Fixes bug 80593.
6036
6037 2007-03-22  Jb Evain  <jbevain@gmail.com>
6038
6039         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
6040         qualified names for pointer types. Fixes #81208.
6041
6042 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
6043
6044         * marshal.c: Add support for PreserveSigAttribute. 
6045         
6046         Code is contributed under MIT/X11 license.
6047
6048 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
6049
6050         * process.c: Fix endianness issues. Fixes #81126.
6051
6052         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
6053         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
6054
6055         * image.c (mono_image_lookup_resource): Make this work on big-endian
6056         machines.Change API contract so the caller needs to free the return value.
6057         
6058         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
6059         API change.
6060         
6061 2007-03-14  Martin Baulig  <martin@ximian.com>
6062
6063         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
6064         mono_type_get_desc() as well.
6065
6066 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
6067
6068         * icall.c:  Fix environ access in VS.  
6069         
6070 2007-03-13  Alp Toker  <alp@atoker.com>
6071
6072         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
6073         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
6074         #63841.
6075
6076 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
6077
6078         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
6079         circular references among dynamic methods. Fixes #81091.
6080
6081         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
6082
6083 2007-03-09  Martin Baulig  <martin@ximian.com>
6084
6085         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
6086
6087 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
6088
6089         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
6090         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
6091         
6092         Code is contributed under MIT/X11 license.
6093         
6094 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
6095
6096         * loader.c: Reapply patch for bug #79424.
6097
6098 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
6099
6100         * metadata.c (mono_type_to_unmanaged): Only convert object to
6101         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
6102
6103 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
6104
6105         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
6106         (and incorrectly set) is_reference field from MonoGenericInst.
6107
6108 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
6109
6110         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
6111         a little earlier.
6112
6113         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
6114
6115         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
6116
6117 2007-03-05  Miguel de Icaza  <miguel@novell.com>
6118
6119         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
6120         FileOptions.1 value to mean "temporary", map that to
6121         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
6122
6123         Fixes 80688
6124
6125 2007-03-03  Marek Habersack  <mhabersack@novell.com>
6126
6127         * appdomain.c: implement MS .Net style shadow copying. Copies of
6128         the assemblies are made in a subdirectory of the dynamic base
6129         directory, the assembly names are preserved.
6130         Copy .mdb and .config files along with the assemblies being shadowed.
6131
6132 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
6133
6134         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
6135         (emit_marshal_handleref): Ditto.
6136
6137         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
6138         on Visual C++. Fixes #80671.
6139
6140 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
6141
6142         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
6143         for clone operations.
6144
6145 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
6146
6147         * marshal.c: Fix warnings.
6148
6149 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
6150
6151         * loader.c: allow case-insensitive matching of the dll name
6152         in dllmap handling when prefixed with "i:".
6153
6154 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
6155
6156         * threads.c: Fix #ifdef for dummy_apc function for VS.
6157
6158 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
6159
6160         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
6161
6162 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
6163         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
6164         giving precedence to the methods with a fully qualified name
6165         (InterfaceName.MethodName) when building the interface sections
6166         of the vtable.
6167
6168 2007-02-16  Dick Porter  <dick@ximian.com>
6169
6170         * threadpool.c (append_job): Fix fast-path array handling, so it's
6171         less likely the array will grow exponentially when the load is
6172         heavy.
6173
6174 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6175
6176         * metadata-internals.h, loader.c: fix dllmap lookup order
6177         for non-function maps, too, and prepare for fallback code.
6178
6179 2007-02-12  Robert Jordan  <robertj@gmx.net>
6180
6181         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
6182         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
6183         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
6184         GlobalFree. Fixes a part of bug #77075.
6185
6186 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
6187
6188         * loader.c: implemented typedef parent in field memberref.
6189
6190 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
6191
6192         * marshal.c: Fix warnings and remember to call Release on
6193         IUnknown of RCW.
6194         
6195         Code is contributed under MIT/X11 license.
6196
6197 2007-02-10  Miguel de Icaza  <miguel@novell.com>
6198
6199         * class-internals.h: Add MonoHandleRef definition, and
6200         handleref_class to mono_defaults. 
6201
6202         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
6203         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
6204
6205         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
6206         (do nothing on this stage)
6207         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
6208         (emit_marshal_handleref): New method, used for argument handling
6209         of HandleRefs. 
6210
6211 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
6212
6213         * class.c (mono_class_setup_parent): Lazily init com types.
6214         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
6215         init com types.
6216         * object.c (mono_remote_class_vtable): Lazily init com types.
6217         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
6218         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
6219         * domain-internals.h: Expose mono_init_com_types.
6220         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
6221         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
6222         Add support for COM Callable Wrapper marshalling.
6223         * marshal.h: Add icall definitions.
6224         * gc.c: Handle freeing of CCWs in finalizer code.
6225         
6226         Code is contributed under MIT/X11 license.
6227
6228 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
6229
6230         * reflection.c: changed all the signature encoding code to use
6231         a variable-sized buffer.
6232
6233 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
6234
6235         * marshal.c: locking fixes: never take the loader lock
6236         or other runtime locks when holding the marshal lock
6237         (fixes bug#80664).
6238
6239 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
6240
6241         * marshal.c: make the delegate function pointer mapping
6242         work for the moving GC.
6243
6244 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
6245
6246         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
6247         for bug #80618.
6248
6249 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
6250
6251         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
6252         gmodule.
6253
6254 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
6255
6256         * threadpool.c: made the code moving-GC safe.
6257
6258 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
6259
6260         * assembly.c, boehm-gc.c, class-internals.h, class.c,
6261         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
6262         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
6263         warning cleanup.
6264         * reflection.c: warning cleanup, some threading and moving GC fixes.
6265
6266 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
6267
6268         * class.c, loader.c: create the needed Set/Get/Address array methods
6269         as well as the .ctors in mono_class_init (), fixes bug #80567.
6270
6271 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
6272
6273         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
6274         we doesn't decrease its alignment. Should fix the sparc build.
6275
6276 2007-01-24  Dick Porter  <dick@ximian.com>
6277
6278         * socket-io.c
6279         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
6280         Create the returned object if we need to ignore an unsupported
6281         socket option.  Fixes a segfault reported by Atsushi.
6282
6283 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
6284
6285         * class.c, object.c: restrict GC-tracked fields to
6286         UIntPtr fields used inside corlib, so we provide better
6287         type info to the GC and also allow broken packing as in
6288         bug #80580.
6289
6290 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
6291
6292         * sgen-gc.c: removed duplicated function.
6293
6294 2007-01-19  Miguel de Icaza  <miguel@novell.com>
6295
6296         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
6297         value that means that the value is not supported, but that we
6298         should not return a failure, but instead report this as a
6299         successful operation.
6300
6301 2007-01-19  Raja R Harinath  <rharinath@novell.com>
6302
6303         Fix tests/bug79956.2.il
6304         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
6305         (mono_generic_class_get_class): If the generic definition in an
6306         enum, copy over other fields related to it.
6307
6308 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
6309
6310         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
6311         genericinst enums (bug #79215).
6312
6313 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
6314         * class.c: Fix bug 80307.
6315
6316 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
6317
6318         * image.c: if the file table is not present, try to load
6319         all the modules, since we don't have info about them
6320         having or not metadata (bug #80517).
6321         * assembly.c: allow mono_assembly_load_references () to
6322         work for netmodules.
6323
6324 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6325
6326         * image.c, metadata-internals.h, object.c: execute module
6327         cctors when running on the 2 runtime if present (bug #80487).
6328
6329 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
6330
6331         * icall.c: optimized InitializeArray() on bigendian.
6332
6333 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
6334
6335         * icall.c: fix for the broken ARM FPA double format.
6336
6337 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
6338
6339         * icall.c: handle endian issues for r4 and r8 types, too, in
6340         the InitializeArray() icall.
6341
6342 2007-01-15  Miguel de Icaza  <miguel@novell.com>
6343
6344         * loader.c (mono_loader_error_prepare_exception): Clear the error
6345         once we have extracted the information from it, do this before we
6346         call into the JIT's class loading mechanisms.
6347
6348         * object.c (mono_class_create_runtime_vtable): Do not clear the
6349         loader error before calling mono_class_get_exception_for_failure
6350         as the loader error is needed inside
6351         mono_class_get_exception_for_failure to throw the error (thinko).
6352
6353         Fixes #80521
6354         
6355 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
6356
6357         * reflection.c: align fields rva data so it's faster to load at
6358         runtime.
6359
6360 2007-01-12  Raja R Harinath  <rharinath@novell.com>
6361
6362         Prepare to simplify GenericMethod handling.
6363         * class-internals.h (mono_method_get_context): New accessor function.
6364         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
6365         rather than directly accessing '->context' field.
6366
6367         * class-internals.h (_MonoGenericParam.method): Move ...
6368         (_MonoGenericContainer): ... here.  Add into union with klass field.
6369         * class.c, icall.c, loader.c, metadata.c, reflection.c:
6370         Update to changes.
6371
6372 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
6373
6374         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
6375         the wrapper type enum and reduce relocations.
6376
6377 2007-01-12  Raja R Harinath  <rharinath@novell.com>
6378
6379         * reflection.c (inflate_mono_method): Reuse method instantiation
6380         from the generic method, if available.
6381
6382 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6383
6384         * marshal.c (emit_marshal_variant): Fix conv_arg
6385         type in last commit, based on whether parameter is byref.
6386         
6387 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6388
6389         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
6390         marshalling.
6391         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
6392         MONO_TYPE_OBJECT back for VARIANT support.
6393
6394 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
6395
6396         * marshal.c, marshal.h, icall-def.h: Implement 
6397         Marshal.ReAllocCoTaskMem.
6398
6399 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
6400
6401         * marshal.c: memory retention fixes: use the proper
6402         image cache for runtime_invoke method lookups.
6403
6404 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
6405
6406         * mempool.c: added code to help debug mempool allocations.
6407
6408 2007-01-11  Dick Porter  <dick@ximian.com>
6409
6410         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
6411         support (experimenting with faking it with IP_MTU_DISCOVER for
6412         systems that don't have IP_DONTFRAGMENT.)
6413         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
6414         icall.
6415
6416         * icall-def.h: new System.Net.Sockets.Disconnect icall.
6417
6418         * socket-io.h: Add new fields to MonoSocketAsyncResult
6419         corresponding to the new ones in Socket.cs.
6420
6421 2007-01-11  Raja R Harinath  <rharinath@novell.com>
6422
6423         Fix IronPython regression mentioned in #80249
6424         * metadata.c (do_mono_metadata_parse_generic_class): Clear
6425         'cached_context' field, since it may have been initialized as a
6426         side-effect of metadata parsing.
6427
6428         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
6429         (_MonoGenericClass.cached_class): Move here and rename from lone
6430         remaining field of ...
6431         (_MonoInflatedGenericClass): ... this.  Remove.
6432         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
6433         to changes.
6434
6435         Fix mcs/tests/test-128.cs regression.
6436         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
6437         2007-01-10 change below.
6438         [MONO_TYPE_OBJECT]: Recurse into array case.
6439
6440 2007-01-11  Raja R Harinath  <harinath@gmail.com>
6441
6442         * class-internals.h (mono_get_inflated_generic_class): Remove.
6443         * class.c (mono_get_inflated_generic_class): Remove.
6444         (mono_generic_class_get_class): Rename from
6445         mono_class_create_generic.
6446         (mono_class_from_mono_type) [GENERICINST]: Use it.
6447         * reflection.c, metadata.c: Update to changes.  Use
6448         'mono_class_from_mono_type'.
6449
6450 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
6451
6452         * reflection.c: use passed type when encoding an array element
6453         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
6454
6455 2007-01-09  Robert Jordan  <robertj@gmx.net>
6456
6457         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
6458         result arguments (someDelegate.EndInvoke (unrelatedAres)).
6459         Fixes bug #80392.
6460
6461 2007-01-09  Raja R Harinath  <rharinath@novell.com>
6462
6463         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
6464
6465         * object.c (set_value): Avoid aliasing between type->data.klass
6466         and type->data.generic_class.
6467
6468         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
6469
6470 2007-01-08  Raja R Harinath  <rharinath@novell.com>
6471
6472         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
6473         between type->data.klass and type->data.generic_class.
6474
6475 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
6476
6477         * marshal.c: In MS.NET, StringBuilder objects are not copied by
6478         value in out parameters.
6479
6480 2007-01-08  Raja R Harinath  <rharinath@novell.com>
6481
6482         Simplify invariant for MonoGenericClass::klass field.
6483         * class.c (mono_class_create_generic): Verify 'klass' is null.
6484         * metadata.c (do_mono_metadata_parse_generic_class): Don't
6485         initialize 'klass' field.
6486
6487 2007-01-05  Raja R Harinath  <rharinath@novell.com>
6488
6489         Ongoing work to avoid redundant data and simplify invariants.
6490         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
6491         'generic_class', and change type to a GenericInst.
6492         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
6493         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
6494
6495 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
6496
6497         * class.c : skip io-layer under PLATFORM_WIN32.
6498
6499 2007-01-03  Tor Lillqvist  <tml@novell.com>
6500
6501         Fix #80305: In a bundled executable, look in the bundled exe
6502         assembly to determine the runtime version. Add the possibility to
6503         bundle also the machine.config file.
6504         
6505         * assembly.c (mono_assembly_open_from_bundle): Make
6506         non-static. Allow being called even if we have no bundled
6507         assemblies, and return NULL right away in that case.
6508
6509         * domain-internals.h: Declare mono_assembly_open_from_bundle()
6510         here.
6511
6512         * domain.c (app_config_parse): Take an assembly exe file name as
6513         parameter instead of a config file name. Check for a bundled
6514         config file for that assembly by calling
6515         mono_config_string_for_assembly_file() (see below) before looking
6516         for one in the file system.
6517         (get_runtimes_from_exe): Corrsponding change to call of
6518         app_config_parse().
6519         (get_runtimes_from_exe): Check for bundled assembly exe file first
6520         by calling mono_assembly_open_from_bundle(). If no bundled
6521         assembly exe file is found, call mono_image_open() as before to
6522         look it up in the file system.
6523
6524         * mono-config.c: Add variable bundled_machinec_onfig.
6525         (mono_config_string_for_assembly_file): New function.
6526         (mono_config_for_assembly): Move code snippet that looks for a
6527         bundled assembly .config file into the above new function. Call
6528         it.
6529         (mono_register_machine_config, mono_get_machine_config): New
6530         functions to set and retrieve
6531
6532         * assembly.h: Declare mono_register_machine_config().
6533
6534         * mono-config.h: Declare mono_get_machine_config() and
6535         mono_config_string_for_assembly_file().
6536
6537         * icall.c: No declaration of environ necessary on Win32. It is
6538         declared (as a macro expanding to a function call) in stdlib.h.
6539         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
6540         New internal mono function. Returns the value of
6541         mono_get_machine_config() as a Mono string.
6542
6543         * icall-def.h: Add get_bundled_machine_config().
6544
6545 2007-01-04  Raja R Harinath  <rharinath@novell.com>
6546
6547         Remove redundant field
6548         * class-internals.h (_MonoGenericContext.container): Remove field.
6549         * loader.c (mono_method_get_signature_full): Don't parse a
6550         "container" for a signature parse when the signature is inflated
6551         immediately.
6552         (method_from_methodspec): Likewise, for a generic_inst.
6553         * class.c, metadata.c, reflection.c: Update to changes.
6554
6555 2006-01-04  Raja R Harinath  <rharinath@novell.com>
6556
6557         * class-internals.h (_MonoGenericClass): Rename 'context' field to
6558         'cached_context', and change semantics -- it starts off NULL, and
6559         is initialized on demand.
6560         * class.c (mono_generic_class_get_context): New accessor to
6561         replace 'context' field accesses.
6562         (mono_class_get_context): New helper.
6563         (*): Update to changes.
6564         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
6565
6566 2007-01-03  Miguel de Icaza  <miguel@novell.com>
6567
6568         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
6569         before the memcpy.   Fixes Marshal2 regression.
6570
6571 2007-01-02  Jb Evain  <jbevain@gmail.com>
6572
6573         * blob.h: add a MONO_TYPE_ENUM definition
6574         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
6575         fix the encoding of arrays of enums in custom attributes.
6576
6577         Fixes #79666.
6578
6579 2007-01-01  Miguel de Icaza  <miguel@novell.com>
6580
6581         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
6582         string is null terminated, but only cut the string short if it
6583         overflows the buffer.   
6584         
6585         (mono_string_to_byvalstr): Also fix this routine.   The code here
6586         was not properly terminating a string (it was only terminated
6587         because of the previous catch-all memset). 
6588
6589         I left the memset, because I do not know if applications expect
6590         the runtime to clear this region. 
6591
6592         Fixes #79944.
6593
6594         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
6595         Clear the error before returning to unmanaged code to prevent the
6596         runtime from being confused later on (fixes  80420).
6597         (ves_icall_type_from_name): Always call mono_loader_clear_error
6598         after parsing a type that could have failed.
6599         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
6600
6601         * loader.c (mono_loader_clear_error): Fix indentation.
6602
6603 2006-12-28  Martin Baulig  <martin@ximian.com>
6604
6605         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
6606
6607 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
6608
6609         * reflection.c: patch from Rolf Bjarne Kvinge to fix
6610         getting a token for an EnumBuilder.
6611
6612 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
6613
6614         * reflection.c: be more careful in case resource generation
6615         fails to create the data array.
6616
6617 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
6618
6619         * sgen-gc.c: write barrier for clone and fix unregister handles.
6620
6621 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
6622
6623         * reflection.c: some fixes needed in the generics code for the moving GC.
6624
6625 2006-12-22  Robert Jordan  <robertj@gmx.net>
6626
6627         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
6628         account. Fixes bug #80299.
6629
6630 2006-12-21  Raja R Harinath  <rharinath@novell.com>
6631
6632         Fix WaitHandle usage in delegates.
6633         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
6634         * object.c (mono_wait_handle_new): Use the property set method to
6635         initialize the handle.
6636         (mono_wait_handle_get_handle): New.
6637         * threadpool.c (mono_async_invoke): Use it.
6638         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
6639         Likewise.
6640         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
6641
6642 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
6643
6644         * marshal.c (emit_marshal): Call emit_marshal_variant and
6645         emit_marshal_com_interface when applicable.
6646         (emit_marshal_variant, emit_marshal_com_interface): Add
6647         methods for this case and remove if's from emit_marshal_object.
6648         
6649 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
6650
6651         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
6652
6653 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
6654
6655         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
6656         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
6657         and GlobalFree on Windows. Remove FIXME.
6658
6659 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
6660
6661         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
6662         implementation for managed objects.
6663
6664 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
6665
6666         * object.c: implemented code to be used for checking
6667         that no reference field overlaps with non-references.
6668
6669 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6670
6671         * threadpool.c: fix queue code to be compatible with the
6672         moving GC.
6673
6674 2006-12-18  Miguel de Icaza  <miguel@novell.com>
6675
6676         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
6677         in structures by throwing ArgumentNullException.
6678
6679         (emit_marshal_safehandle): Also when they are null parameters.
6680
6681         (emit_marshal_safehandle): Add support for ref
6682         SafeHandles parameters
6683
6684 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
6685
6686         * profiler.c: updated to use the mono-dl API instead of
6687         gmodule.
6688
6689 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6690
6691         * profiler.c: updated to use the mono-dl dynamic loading
6692         API instead of gmodule.
6693
6694 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
6695
6696         * profiler.c: use readlink, older versions of glib don't have
6697         g_file_read_link ().
6698
6699 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6700
6701         * profiler.c: try to detect the path to mono if libc fails to provide
6702         a useful name (bug #80286).
6703
6704 2006-12-16  Raja R Harinath  <rharinath@novell.com>
6705
6706         Fix #80242
6707         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
6708         instance, use the generic type definition instead.
6709         (ves_icall_Type_GetNestedTypes): Likewise.
6710         * class.c (mono_class_create_generic): Always set the
6711         nested_classes of a generic instance to NULL, even if the generic
6712         type definition has nested types.
6713
6714 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
6715
6716         * marshal.c (mono_string_from_bstr): Revert previous Windows change
6717         and fix on Linux.
6718         
6719 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6720
6721         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
6722         my arguments were in the wrong order.   I also fixed the Windows
6723         version which seems to have had the same issue.
6724
6725         (mono_free_bstr): On Unix, this is g_free.
6726         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
6727         conversions (for the tests in corlib to pass).
6728
6729 2006-12-14  Miguel de Icaza  <miguel@novell.com>
6730
6731         * marshal.c (emit_ptr_to_object_conv): For now, ignore
6732         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
6733         exception if a ref SafeHandle in a struct has changed).
6734         
6735         (emit_struct_conv): Do not perform layout checks for classes
6736         derived from SafeHandle, as those are specially handled. 
6737
6738         (emit_object_to_ptr_conv): Add support for
6739         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
6740
6741         (emit_marshal_safehandle): Implement conversion of return values
6742         of safehandles (MARSHAL_ACTION_CONV_RESULT).
6743         
6744         * threads.c: WaitHandle now is compiled with two different handles
6745         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
6746         for 2.0.
6747         
6748         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
6749         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
6750         these routines to cope with both kinds of fields.
6751
6752 2006-12-12  Miguel de Icaza  <miguel@novell.com>
6753
6754         * metadata.c (mono_type_to_unmanaged): Handle the case where
6755         type->data.klass is a SafeHandle, and in that case, return the
6756         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
6757         MONO_MARSHAL_CONV_SAFEHANDLE. 
6758
6759 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6760
6761         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
6762         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
6763         calling emit_marshal_object.
6764
6765         (emit_marshal_safehandle): Implement marshalling of
6766         SafeHandle parameters (no ref support yet).
6767
6768         (MarshalAction): Document the defines as I implement
6769         them for SafeHandle.
6770
6771         (emit_marshal_object): indentation police.
6772
6773         * class-internals.h: Define MonoSafeHandle.
6774         Add safehandle_class to MonoDefaults type.
6775
6776         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
6777         list of classes to check for fields. 
6778
6779         * domain.c (mono_init_internal): Add SafeHandle to the list of
6780         mono_defaults loaded.
6781
6782 2006-12-15  Raja R Harinath  <rharinath@novell.com>
6783
6784         Fix #80253
6785         * reflection.c (mono_reflection_bind_generic_parameters): If the
6786         generic type definition is a type builder, ensure that it is fully
6787         initialized before instantiating it.  Kill some dead code.
6788
6789 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
6790
6791         * object.c: clear the loader_error () before loading
6792         more metadata stuff (bug #80258).
6793
6794 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
6795
6796         * icall.c, icall-defs.h: type modifiers icalls for
6797         parameters and properties.
6798
6799 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
6800
6801         * object.c, icall.c: fixed warnings.
6802
6803 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6804
6805         * marshal.c: fixed a couple of leaks and coding style in a few places.
6806
6807 2006-12-08  Dick Porter  <dick@ximian.com>
6808
6809         * process.c: Cope with NULL ProcessStartInfo arguments on windows
6810         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
6811         80173.
6812
6813 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
6814
6815         * process.c: ProcessStartInfo may have only filename set and
6816         arguments can be NULL.
6817
6818 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
6819
6820         * icall.c: fix leak found by Robert Jordan.
6821
6822 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
6823
6824         * marshal.c, marshal.h: generate managed method to access an element
6825         of a multi-dimensional array.
6826
6827 2006-11-30  Paolo Molaro (lupus@ximian.com)
6828
6829         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
6830
6831 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
6832
6833         * icall.c: back out GetFields () fix until the serialization code is
6834         fixed to not depend on the incorrect behaviour.
6835
6836 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
6837
6838         * profiler.c: provide defaults if none are set.
6839
6840 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
6841
6842         * Makefile.am, attrdefs.h: new public header file with
6843         constants for attributes for use by embedders.
6844
6845 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
6846
6847         * icall.c: GetFields () fix for bug #80064.
6848
6849 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
6850
6851         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
6852         removed long unused icalls.
6853
6854 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
6855   
6856         * marshal.c: 
6857                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
6858                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
6859                 can be generated without a delegate class.
6860                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
6861         
6862         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
6863
6864 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6865
6866         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
6867         #80069.
6868
6869 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
6870
6871         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
6872         icall-def.h: added icalls needed by System.GC.
6873
6874 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
6875
6876         * loader.c: ensure the class in catch clauses is handled
6877         correctly for generics methods (fixes bug#79980).
6878
6879 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
6880
6881         * monitor.h, monitor.c: added mono_locks_dump () function
6882         to help debug deadlocks involving managed locks.
6883
6884 2006-11-13  Dick Porter  <dick@ximian.com>
6885
6886         * file-io.c (get_file_attributes): If the file is a symlink try
6887         and get the stat data for the target, but also add the
6888         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
6889         the specs for the windows symlink support, but will probably have
6890         to be reworked when I have test data from a vista machine.  Fixes
6891         bug 79887.
6892
6893 2006-11-13  Dick Porter  <dick@ximian.com>
6894
6895         * gc.c (mono_domain_finalize): 
6896         * marshal.c (mono_delegate_begin_invoke): 
6897         * threadpool.c (socket_io_init, mono_thread_pool_init)
6898         (mono_thread_pool_finish): 
6899         * monitor.c (mono_monitor_try_enter_internal): 
6900         * threads.c (mono_thread_resume, mono_thread_init)
6901         (mono_thread_suspend_all_other_threads)
6902         (mono_thread_execute_interruption): 
6903         * appdomain.c (mono_domain_unload): Check for NULL error returns
6904         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
6905         75733.
6906
6907 2006-11-11  Miguel de Icaza  <miguel@novell.com>
6908
6909         * process.c
6910         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
6911         Only close the handle if the value of the handle is not
6912         INVALID_HANDLE_VALUE.  This just makes the process a bit more
6913         robust.
6914
6915         Improvement for #75733, so that we do not run into this problem. 
6916
6917         
6918         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
6919         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
6920         internal variables.  Fixes #79462 
6921         
6922
6923 2006-11-09  Dick Porter  <dick@ximian.com>
6924
6925         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
6926         Use poll() not select().  Fixes bug 79397.
6927
6928 2006-11-09  Raja R Harinath  <rharinath@novell.com>
6929
6930         Fix #79872
6931         * assembly.c (mono_assembly_load_from_full): Check that the given
6932         image has an assembly manifest.
6933
6934 2006-11-09  Ankit Jain  <jankit@novell.com>
6935
6936         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
6937         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
6938         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
6939
6940 2006-11-07  Dick Porter  <dick@ximian.com>
6941
6942         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
6943         Put the old resolver behaviour back for pre-2.0 profiles.
6944
6945 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
6946
6947         * threadpool.c: precise GC and locking fixes.
6948
6949 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
6950
6951         * class.c: don't load types that have an explicit unaligned
6952         managed reference. Provide better info in the TypeLoad exception.
6953         Part of the fix for bug #79744.
6954         * object.c: use the correct check for class type load issues.
6955
6956 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
6957
6958         * class.c: enforce alignment of fields with managed references
6959         even when Pack=1 is forced by the user (bug #77788).
6960
6961 2006-11-03  Dick Porter  <dick@ximian.com>
6962
6963         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
6964         If the address reverse lookup fails, return it as the hostname
6965         anyway.  Fixes bug 79721.
6966
6967 2006-11-03  Dick Porter  <dick@ximian.com>
6968
6969         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
6970         Fix build on Windows.
6971
6972 2006-11-02  Dick Porter  <dick@ximian.com>
6973
6974         * icall-def.h: 
6975         * object-internals.h: 
6976         * exception.c (mono_get_exception_thread_interrupted): 
6977         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
6978         Fixes bug 74525.
6979
6980         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
6981         Check for pending Thread.Interrupt.
6982
6983 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
6984         * loader.c: Fixed bug 79684.
6985
6986 2006-10-27  Dick Porter  <dick@ximian.com>
6987
6988         * file-io.c (get_file_attributes): Force symlinks to directories
6989         to be returned as a regular file.  Fixes bug 79733.
6990 2006-10-26  Dick Porter  <dick@ximian.com>
6991
6992         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
6993         CreateFile to open a directory then we need to set the
6994         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
6995
6996 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
6997
6998         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
6999         friends.
7000
7001 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7002
7003         * sgengc.c: small cleanup of timer code.
7004
7005 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
7006
7007         * sgen-gc.c: fix some warnings and start adding support for
7008         complete object removal on domain unload.
7009
7010 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
7011
7012         * assembly.c: build_assembly_name should not consider a version
7013         number without build or revision number invalid. Fixes bug #79715.
7014
7015 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
7016
7017         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
7018         call kernel32 function OutputDebugString directly.
7019         
7020         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
7021         
7022 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
7023
7024         * reflection.c: small cleanup, using a function to insert a MonoString
7025         in the string heap.
7026
7027 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
7028
7029         * reflection.c: moving GC fixes.
7030
7031 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
7032
7033         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
7034         all the objects with finalizers belonging to an unloading appdomain.
7035
7036 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
7037
7038         * sgen-gc.c: added ability to allocate even when the nursery is fully
7039         pinned and fixed a couple of bugs.
7040
7041 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
7042
7043         * threads.h: Revert the last change for now.
7044
7045         * threads.h (mono_thread_get_pending_exception): Rename this to
7046         mono_thread_get_undeniable_exception ().
7047
7048 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
7049
7050         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
7051         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
7052         when fname does not refer to valid assembly. This result in a more
7053         meaningful error message.
7054         * exception.c: added mono_get_exception_bad_image_format2 which 
7055         constructs a BadImageFormatException using the ctor taking a custom
7056         message and the file name. Passing in a NULL msg results in a default
7057         message.
7058         * exception.h: define mono_get_exception_bad_image_format2 function.
7059         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
7060         when file name pointed to an invalid IL image. Use 
7061         mono_get_exception_file_not_found2 to construct FileNotFoundException,
7062         as this results in a more meaningful error message.
7063
7064 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
7065
7066         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
7067         #79465.
7068
7069 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
7070
7071         * metadata.c (mono_type_size): Change the align parameter to guint32 for
7072         consistency with the other _size functions.
7073         (mono_type_stack_size): Ditto.
7074
7075         * class.c object.c icall.c: Fix warnings caused by the above change.
7076
7077         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
7078
7079         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
7080
7081         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
7082
7083 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
7084
7085         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
7086         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
7087         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
7088         threadpool.h, threads-types.h: mark more internal functions.
7089
7090 2006-10-11  Dick Porter  <dick@ximian.com>
7091
7092         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
7093         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
7094         reproduce the bug even before applying the fix.)
7095
7096 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
7097
7098         * reflection.c: allow retrieving attributes for arguments in generic
7099         methods (bug #79241).
7100
7101 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
7102
7103         * debug-mono-symfile.c: properly check fopen () result (found by
7104         coverity).
7105
7106 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
7107
7108         * reflection.c: make error message clearer and fixed two
7109         issuelets found by Coverity.
7110
7111 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
7112
7113         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
7114
7115 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
7116
7117         * object-internals.h, gc-internal.h, profiler-private.h:
7118         mark internal functions.
7119
7120 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
7121
7122         * reflection.c: put data in the text section.
7123         * icall.c: recognize more types in type_from_typename ().
7124         * process.c, marshal.c: added some GC FIXMEs.
7125
7126 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
7127
7128         * loader.c: check for NULL before initializing.
7129
7130 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
7131
7132         * gc.c (finalizer_thread): Use a non-alertable wait here.
7133
7134         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
7135         until the correct solution is found.
7136
7137 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
7138
7139         * reflection.c (mono_module_get_object): Avoid an assert when operating on
7140         modules with no metadata. Fixes #79596.
7141
7142         * image.c (load_metadata_ptrs): Put back the error message when
7143         the #- heap is encountered since the support is not complete yet.
7144
7145 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
7146
7147         * gc.c: do not allow the user to SuppressFinalize () a
7148         delegate because it would leak the trampoline if present.
7149
7150 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
7151
7152         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
7153         PropertyPtr table.
7154
7155 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
7156
7157         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
7158
7159         * metadata.c (mono_metadata_get_param_attrs): Ditto.
7160
7161         * row-indexes.h: Add definitions for *Ptr tables.
7162
7163         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
7164
7165         * metadata.c (mono_metadata_translate_token_index): New helper function to
7166         translate table indexes used in uncompressed metadata.
7167         (mono_metadata_decode_table_row): Ditto.
7168         (mono_metadata_decode_table_row_col): Ditto.
7169
7170         * metadata.c: Add table schema for *Ptr tables.
7171
7172         * class.c loader.c: Use the new helper function to access the affected metadata
7173         tables.
7174         
7175         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
7176         #38532.
7177         
7178 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
7179
7180         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
7181         sequences which can be unbounded in size. Fixes #79583.
7182
7183 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
7184
7185         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
7186         static initialization.
7187
7188         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
7189
7190         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
7191
7192         * domain.c (mono_domain_free): Free up type_init_exception_hash.
7193
7194         * object.c (mono_runtime_class_init): Implement correct semantics when a static
7195         ctor fails, i.e. throw the same exception on subsequent accesses.
7196         
7197 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
7198
7199         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
7200         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
7201         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
7202         Handle marshalling of interfaces and VARIANTs contained in structs.
7203         
7204         Code is contributed under MIT/X11 license.
7205         
7206 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
7207
7208         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
7209         
7210         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
7211         mempool.
7212
7213 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7214
7215         * console-io.c: ignore previous SIGINT handler.
7216
7217 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
7218
7219         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
7220         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
7221         #79460, #79461, #79485.
7222
7223         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
7224
7225         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
7226         #79217.
7227
7228 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
7229
7230         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
7231         could be generated from it.
7232
7233 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
7234
7235         * rand.c: fix read loop to correctly handle EINTR.
7236
7237 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7238
7239         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
7240         internal calls are defined to keep methods closer to the declaring
7241         type and allow a significant reduction in runtime relocations and
7242         memory usage.
7243
7244 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
7245
7246         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
7247         exception message to have FileNotFoundException use the default
7248         assembly load error message. Fixes bug #79426.
7249         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
7250
7251 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7252
7253         * threadpool.c: (start_thread_or_queue) use the root domain when
7254         creating the thread instead of the async object one.
7255
7256 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
7257
7258         * class.c, object.c, class-internals.h, reflection.c:
7259         for arrays, store element_size inside MonoClass (speedup
7260         for array object creation).
7261
7262 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
7263
7264         * icall.c: fixed CodeBase to use the file name and not the module
7265         name (bug #79365).
7266
7267 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7268
7269         * mono-debug.c, mono-debug.h: export find_method as
7270         mono_debug_find_method ().
7271
7272 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
7273
7274         * debug-helpers.c, class-internals.h: added a few functions useful
7275         when debugging under gdb.
7276
7277 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7278
7279         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
7280         characters that need special handling.
7281
7282 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
7283
7284         * mono-config.c: make the os/cpu specification more flexible,
7285         allowing lists and negation.
7286
7287 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
7288
7289         * marshal.c: COM Interop fixes. Handle case where method->klass.
7290         is interface. Handle BSTR/MonoString when null. Use CDECL as 
7291         calling convention on non-windows platforms. This is for
7292         compatibility with XPCOM and MainWin COM.
7293         
7294         Code is contributed under MIT/X11 license.
7295         
7296
7297 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
7298
7299         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
7300         correctly. Fixes #79217.
7301
7302         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
7303
7304 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
7305
7306         * mono-config.c: allow both an os and cpu attribute for dllmap
7307         and dllentry elemnets to enable a single config file to be used
7308         for multiple architectures.
7309
7310 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
7311
7312         * loader.c: MonoLoaderError was cleared too soon on load failure.
7313         Fixes bug #79424.
7314
7315 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
7316
7317         * icall.c: use the defining class vtable when accessing a
7318         static field, not a pobblibly derived class.
7319
7320 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
7321
7322         * icall.c string-icalls.c: Remove references to unicode.h.
7323
7324         * unicode.h unicode.c Makefile.am: Remove these unused source files.
7325
7326         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
7327
7328         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
7329         indicating the image where custom marshaller types should be looked up.
7330         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
7331         custom marshallers, instead of corlib. Fixes #79425.
7332
7333 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
7334
7335         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
7336
7337 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
7338
7339         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
7340         Implement Environment.ProcessorCount.
7341         
7342         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
7343         Implement Environment.ProcessorCount.
7344         
7345         * icall.c: 
7346         Add Environment.ProcessorCount icall.
7347         
7348         Patch by Jason McFall.
7349
7350 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7351
7352         * assembly.c: don't append .exe/.dll when the filename already contains
7353         one of those extensions.
7354
7355 2006-09-12  Martin Baulig  <martin@ximian.com>
7356
7357         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
7358         to array interfaces.
7359
7360 2006-09-11  Martin Baulig  <martin@ximian.com>
7361
7362         * reflection.c (mono_image_build_metadata): Create the
7363         MethodImpl's after emitting all types and methods, so we don't
7364         need another fixup pass for them.
7365
7366 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
7367
7368         * class.c (mono_class_from_name_case): Fix regression introduced by the last
7369         change.
7370
7371 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
7372
7373         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
7374         unload.
7375
7376 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
7377
7378         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
7379         args is not set. Fixes #78926.
7380
7381 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
7382
7383         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
7384
7385         * image.c (load_class_names): Move this to class.c, and rename it to 
7386         'mono_image_init_name_cache'.
7387         (load_modules): Fix a warning.
7388
7389         * class.c icall.c image.c: Initialize image->name_cache lazily.
7390
7391         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
7392         on its name using information in the AOT file.
7393
7394         * class.c (mono_class_from_name): Use the new hook function.
7395
7396 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
7397
7398         * reflection.c (mono_param_get_objects): Handle enum default parameter values
7399         correctly.
7400
7401         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
7402         Fixes #79289.
7403         
7404 2006-09-06  Martin Baulig  <martin@ximian.com>
7405
7406         * icall.c (mono_lookup_internal_call): Small fix.
7407
7408 2006-09-05  Raja R Harinath  <rharinath@novell.com>
7409
7410         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
7411         double g_free.
7412
7413 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
7414
7415         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
7416         when --debug is specified.
7417
7418 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
7419
7420         * class.c (setup_generic_array_ifaces): Fix a warning.
7421
7422 2006-09-04  Miguel de Icaza  <miguel@novell.com>
7423
7424         * Temporarily remove the patch to assemly.c that checks the
7425         assembly versions as it breaks our gacutil.
7426
7427 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
7428
7429         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
7430
7431         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
7432         a net 1.0 runtime.
7433
7434         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
7435         created using the default ctor. Fixes #79152.
7436         (mono_string_builder_to_utf16): Ditto.
7437
7438 2006-09-01  Martin Baulig  <martin@ximian.com>
7439
7440         Fix handling of the generic array interfaces.
7441
7442         * class-internals.h
7443         (MonoDefaults): Removed `generic_array_class' and added
7444         `generic_ilist' class.
7445
7446         * class.c
7447         (mono_bounded_array_class_get): Add the new generic array interfaces.
7448         (setup_generic_array_ifaces): New static method; create vtable
7449         entries for each method in the generic array interfaces.
7450
7451         * metadata.c
7452         (select_container): Allow "parent-less" generic methods.
7453
7454         * marshal.c
7455         (mono_marshal_get_generic_array_helper): New public method.
7456
7457         * icall.c
7458         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
7459         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
7460         moved the interncall into System.Array.
7461
7462 2006-09-01  Raja R Harinath  <rharinath@novell.com>
7463
7464         A few more cases of avoiding work on types with ->byref set.
7465         Has the real fix for #79238
7466         * icall.c (is_generic_parameter): New helper.
7467         (ves_icall_Type_GetGenericParameterPosition): Use it.
7468         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
7469         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7470         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
7471         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
7472         reference types.
7473         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
7474         reference types.
7475         (ves_icall_Type_get_IsGenericInstance): Likewise.
7476         (ves_icall_Type_get_IsGenericType): Likewise.
7477
7478 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
7479
7480         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
7481         class if possible.
7482
7483         * mempool.h (mono_mempool_get_allocated): New helper function.
7484
7485         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
7486         change.
7487
7488         * mempool.c: Fix warnings and the calculation of stats.
7489
7490         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
7491
7492         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
7493
7494         * loader.c (mono_get_method_from_token): Update method_count stat.
7495
7496         * class-internals.h (MonoStats): Add some stats.
7497
7498 2006-08-31 Robert Jordan  <robertj@gmx.net>
7499
7500         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
7501         with managed variants.
7502         All code is contributed under the MIT/X11 license.
7503         
7504 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
7505
7506         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
7507         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
7508
7509         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
7510
7511         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
7512         with cycles in classes.
7513
7514         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
7515
7516         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
7517         missing a [MarshalAs] directive. Fixes #79203.
7518
7519         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
7520         klass->marshal_info. Fixes #79217.
7521
7522 2006-08-30  Martin Baulig  <martin@ximian.com>
7523
7524         Committing a patch from Joachim Ante <joe@otee.dk>:
7525         Add support for binary data symbol stores.
7526
7527         * debug-mono-symfile.c
7528         (mono_debug_open_mono_symbol_file): Renamed into
7529         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
7530         arguments.
7531
7532         * mono-debug.c
7533         (mono_debug_open_image): Added `raw_contents' and `size' args.
7534         (mono_debug_init_2_memory): New public function.
7535
7536 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
7537
7538         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
7539
7540 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7541
7542         * appdomain.c: implement support for ShadowCopyFiles.
7543
7544 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
7545
7546         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
7547         when value is NULL (and should remove CID #51).
7548
7549 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7550
7551         * image.c: moved 2 functions to ../utils.
7552
7553 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
7554
7555         * gc.c: cope with the target object of a GC handle being NULL
7556         (bug #78877).
7557
7558 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
7559
7560         * class.c: recursively check parent's explicit implementations
7561         of interface methods (fixes bug #79125).
7562
7563 2006-08-19  Miguel de Icaza  <miguel@novell.com>
7564
7565         * filewatcher.c: Avoid warnings when building, do not redefine
7566         constants that are defined.
7567
7568         Remove warnings.
7569
7570 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7571
7572         * image.c: don't fail when the link points to an absolute path.
7573
7574 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
7575
7576         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
7577         Fix CID #3.
7578
7579 2006-08-17  Miguel de Icaza  <miguel@novell.com>
7580
7581         * image.c (full_path): A new method used to obtain the actual path
7582         of an assembly even in the presence of symbolic links.  
7583
7584         This is necessary for the case where we are running a binary that
7585         has been GACed, but we are using the "published" path name
7586         ($prefix/mono/1.0/blah.exe) which happens to point to the real
7587         file in the GAC.
7588
7589         This was the source of the failure for the `xsp' command with the
7590         recent AppDomain changes, as far as the runtime was concerned,
7591         there were two different assemblies: $prefix/mono/1.0/blah.exe and
7592         $prefix/mono/gac/blah/version/blah.exe.
7593
7594         (do_mono_image_open): use full path
7595
7596 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7597
7598         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
7599
7600 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
7601
7602         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
7603         domain_id is supplied. Fix CID #241 and corlib's unit tests.
7604
7605 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7606
7607         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
7608         small structures. Fixes #78990.
7609
7610 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
7611
7612         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
7613
7614         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
7615
7616 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7617
7618         * appdomain.c:
7619         * marshal.c: don't load all the assemblies from a domain into newly
7620         created ones. The new domains might have different rules and load
7621         assemblies from different locations. Fixes bug #76757.
7622
7623         Patch by Lluis. Conflicts resolved by Brian Crowell.
7624
7625 2006-08-16  Alp Toker  <alp@atoker.com>
7626
7627         * socket-io.c: First half of the fix for #79084.
7628         Set sa_size to the length of the content, not that of the struct.
7629         Don't add NULL suffix to the content, this should be done in
7630         managed code if needed.
7631
7632 2006-08-14  Raja R Harinath  <rharinath@novell.com>
7633
7634         Fix part of #79012
7635         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
7636         mono_metadata_parse_type returns NULL.
7637
7638 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
7639
7640         * normalization-tables.h : new file for string normalization data.
7641         * locales.c, locales.h, icall.c :
7642           added load_normalization_resource() for string normalization,
7643           and icall as well.
7644         * Makefile.am : added normalization-tables.h to the sources.
7645
7646 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
7647
7648         * marshal.c: Add more helper functions to reduce code duplication and use them
7649         everywhere.
7650
7651 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
7652
7653         * marshal.c: Fix non-x86 stdcall warnings.
7654         
7655         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
7656         them everywhere.
7657
7658 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
7659
7660         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
7661         type check on multi-dimensional arrays. Fixes #79000.
7662
7663 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
7664
7665         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
7666         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
7667         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
7668         * class-internals.h: add is_com_object to class structure.
7669         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
7670         null checks to COM object marshalling. Fix .ctor call on RCW.
7671         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
7672         
7673         All code is contributed under the MIT/X11 license.
7674
7675 2006-08-09  Dick Porter  <dick@ximian.com>
7676
7677         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
7678         racing mono_monitor_allocator_lock() somewhere, so don't delete
7679         the critical section for now.  Found by running and exiting
7680         monodevelop.
7681
7682 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
7683
7684         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
7685         (ves_icall_System_ComObject_FindInterface): Ditto.
7686         (ves_icall_System_ComObject_CacheInterface): Ditto.
7687
7688         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
7689         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
7690
7691 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7692
7693         * threadpool.c: treat pipes from process asynchronous reads as sockets
7694         when reading from them, so we get select/poll or epoll to wait for
7695         data.
7696
7697 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
7698
7699         * loader.c: Fix a typo (CID #233) in the null check.
7700
7701 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
7702
7703         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
7704         Hopefully fixes #78949.
7705         
7706         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
7707         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
7708         bytes. Fixes #78972.
7709
7710 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7711
7712         * filewatcher.c: we need to set errno here.
7713
7714 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7715
7716         * filewatcher.c: let Win32Exception get the error value.
7717
7718 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7719
7720         * filewatcher.c: translate errno into win32 errors for Win32Exception
7721         to know what happened.
7722
7723 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
7724
7725         * threadpool.c: Fix more warnings.
7726
7727         * assembly.c (search_loaded): Fix warnings.
7728
7729         * threadpool.c (mono_thread_pool_finish): Fix warnings.
7730         (mono_async_invoke): Ditto.
7731
7732 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
7733
7734         * object.c (mono_remote_class_vtable): Need to create proxy vtable
7735         entries for __ComObject type in addition to ComImport types.
7736         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
7737         about hash table.
7738         
7739         All code is contributed under the MIT/X11 license.
7740
7741 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
7742
7743         * image.c: avoid tentative loading of modulerefs that contain
7744         no metadata (P/Invoke library names).
7745
7746 2006-07-28  Dick Porter  <dick@ximian.com>
7747
7748         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
7749         mono_loader_lock() somewhere, so don't delete the critical section
7750         for now.  Found by running and exiting monodevelop.
7751
7752 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7753
7754         * filewatcher.c: define the inotify syscalls when we're building on
7755         linux and have sys/syscall.h. The build system might not have support
7756         for inotify but the target system might have it.
7757
7758 2006-07-26  Miguel de Icaza  <miguel@novell.com>
7759
7760         * domain.c: Documentation updates.
7761
7762         * loader.c (mono_free_method): Do not release the method
7763         information if we are being profiled, as profilers will use this
7764         information at shut down to present some data to the user.
7765
7766         This is needed so that the profiler does not crash, as the
7767         profiler tends to keep MonoMethods around, and they might become
7768         invalid if we free these.
7769
7770         (mono_get_method_constrained): Return the original CIL stream
7771         method as well, so verification can be performed against it.
7772
7773 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7774
7775         * filewatcher.[ch]: support for inotify file system watcher.
7776         * icall.c: add new internal calls for the inotify file system watcher.
7777
7778 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7779
7780         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
7781         #78888.
7782
7783 2006-07-20  Dick Porter  <dick@ximian.com>
7784
7785         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
7786         warning.
7787
7788 2006-07-20  Dick Porter  <dick@ximian.com>
7789
7790         * threads.c (start_wrapper): Do the thread cleanup while we still
7791         hold a reference to its object.  Fixes bug 78123.
7792
7793 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
7794
7795         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
7796         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
7797           "managed-to-managed".
7798         * icall.c: Redirect string constructors that take sbyte* to
7799           ves_icall_System_String_ctor_RedirectToCreateString.
7800         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
7801           to CreateString () methods with matching signature.
7802         * reflection.c: Use original security informations for
7803           MONO_WRAPPER_MANAGED_TO_MANAGED.
7804         * security-manager.c: Use original security informations for
7805           MONO_WRAPPER_MANAGED_TO_MANAGED.
7806         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
7807           that is a placeholder and only its address should be used.
7808         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
7809           that is a placeholder and only its address should be used.
7810
7811 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
7812
7813         Begin implementing COM Interop.
7814         * appdomain.c: Increment corlib version.
7815         * class.c: Set ComImport classes' parent to __ComObject.
7816         * loader.c: Mark cominterop methods as such.
7817         * domain.c: Add __ComObject class to MonoDefaults structure.
7818         * image.c: Add 2 hashtables to the image for COM Interop related methods
7819         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
7820         using the mempool allocator
7821         
7822         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
7823         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
7824         declaration for mono_metadata_type_dup_mp.
7825         
7826         * debug-helpers.c: Added strings for two additional wrapper types
7827         * object.c: Create proxy objects for ComImport classes
7828         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
7829         and added __ComObject class to MonoDefaults structure.
7830         
7831         * object-internals.h: Finish MonoRealProxy definition, and add definition of
7832         MonoComInteropProxy and MonoComObject.
7833         
7834         * marshal.c: Added support for COM Interop
7835         (signature_cominterop): Converts managed signature to corresponding
7836         unmanaged COM signature.
7837         (cominterop_get_function_pointer): gets unmanaged function pointer via
7838         COM object vtable
7839         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
7840         (cominterop_get_method_interface): returns interface type that method is defined on
7841         (mono_mb_emit_cominterop_call): emits native call to function pointer
7842         gotten from vtable
7843         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
7844         that matches signature of unmanaged function.
7845         (cominterop_get_native_wrapper): wrapper around adjusted method call.
7846         (cominterop_get_invoke): forwards call from proxy to __ComObject
7847         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
7848         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
7849         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
7850         
7851         * marshal.h: Added Marshal icall declarations.
7852         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
7853         so we can access them in finalizer
7854         
7855 2006-07-14  Dick Porter  <dick@ximian.com>
7856
7857         * object.c (mono_type_initialization_cleanup): Fix a race
7858         condition by temporarily commenting out the critical section
7859         deletion.
7860
7861 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
7862
7863         * reflection.c (create_custom_attr): Fix some warnings.
7864         (create_custom_attr_data): Ditto.
7865         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
7866         types. Fixes #78855.
7867
7868 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
7869
7870         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
7871
7872         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
7873
7874 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
7875
7876         * reflection.c (resolve_object): Add support for DynamicMethod.
7877
7878         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
7879         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
7880
7881 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
7882
7883         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
7884         don't leak GPtrArray's pdata has we have no use (nor free) for it.
7885
7886 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
7887
7888         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
7889         Fixes #77888.
7890
7891 2006-06-30  Raja R Harinath  <rharinath@novell.com>
7892
7893         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
7894         slightly: remove a shadow local variable.
7895
7896 2006-06-29  Raja R Harinath  <rharinath@novell.com>
7897
7898         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
7899         definition that introduces the virtual function slot.
7900         Also fix Coverity #105.
7901
7902 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
7903
7904         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
7905         for dynamic assemblies. Fixes #78724.
7906
7907 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
7908
7909         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
7910         Fixes #78722.
7911
7912 2006-06-21  Martin Baulig  <martin@ximian.com>
7913
7914         * reflection.c
7915         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
7916         fixes #76484.
7917
7918 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
7919
7920         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
7921
7922 2006-06-20  Raja R Harinath  <rharinath@novell.com>
7923
7924         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
7925         nor TYPEREFs.
7926         * class.c (mono_class_create_from_typespec): Add 'context' argument.
7927         Inflate result if necessary.
7928         (mono_class_get_full): Remove old version.  Rename from
7929         'mono_class_get' and add 'context' argument.  Pass it to
7930         ..._create_from_typespec.
7931         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
7932         (mono_ldtoken): Revert change below.
7933
7934 2006-06-20  Martin Baulig  <martin@ximian.com>
7935
7936         * class.c (mono_ldtoken): Don't pass the generic context to
7937         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
7938
7939 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
7940
7941         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
7942         and later freeing it. Fixes #78638.
7943
7944 2006-06-15  Miguel de Icaza  <miguel@novell.com>
7945
7946         * icall.c (mono_class_get_throw): Revert over-zealous error
7947         throwing, the caller for mono_class_get_throw will cope with
7948         errors when classes are not properly initialized already.
7949
7950         The code still copes with loader exceptions though.
7951
7952         Fixes the regression in reftype1 and reftype3 from the CAS tests.
7953         
7954 2006-06-14  Miguel de Icaza  <miguel@novell.com>
7955
7956         Fixes the `make run1' version of RuntimeAbort (to be commited,
7957         source is in Bugzilla).
7958         
7959         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
7960         FALSE on class loading failure instead of returning true.
7961
7962         * class.c (mono_class_create_from_typedef): It is possible for
7963         mono_metadata_interfaces_from_typedef_full to fail if a class is
7964         not found, cope with this.
7965         
7966
7967 2006-06-14  Dick Porter  <dick@ximian.com>
7968
7969         * socket-io.c: 
7970         * process.c: Fix a bunch of signed/unsigned warnings from gcc
7971         4.1.1
7972
7973 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
7974
7975         * culture-info-table.h : oops, forgot to make it nsync with r61548.
7976
7977 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7978
7979         * icall.c: Another fix for building mono in Visual Studio.
7980
7981 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7982
7983         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
7984         
7985 2006-06-09  Martin Baulig  <martin@ximian.com>
7986
7987         * debug-mono-symfile.c: Put this back and really fix it this
7988         time. Sorry for all the trouble.
7989
7990 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
7991
7992         * icall.c (mono_class_get_throw): Fix a warning.
7993         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
7994         ReflectionTypeLoadException if needed. Fixes #78606.
7995
7996         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
7997         (mono_class_init): Ditto.
7998
7999         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
8000         ref_only exceptions.
8001         (mono_loader_clear_error): Make this work even if there is no error.
8002
8003 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
8004
8005         * object-internals.h marshal.c marshal.h icall.c: Implement method 
8006         Marshal.GetComSlotForMethodInfo using internal call.
8007
8008 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
8009
8010         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
8011         a function for signalling it.
8012
8013         * class.c (mono_class_from_typeref): Use the new kind of loader error when
8014         a referenced assembly is not found.
8015
8016         * loader.c (mono_loader_error_prepare_exception): Add support for 
8017         LOADER_ERROR_ASSEMBLY. Fix formatting.
8018
8019 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8020
8021         * domain.c appdomain.c class-internals.h marshal.c: Add support 
8022         for VARIANT marshalling on windows and increment corlib version
8023         since Variant struct was added.
8024
8025 2006-06-03  Miguel de Icaza  <miguel@novell.com>
8026
8027         * debug-mono-symfile.c: Revert Martin's previous patch which broke
8028         stack trace line information:
8029
8030         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
8031         (Martin) when looking up B which is between A and C, return A not C.
8032
8033         Bug is #78573.
8034
8035         Thanks to Alexander Olk for tracking this down.
8036
8037 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
8038
8039         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
8040         
8041         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
8042         avoid clobbering its value.
8043         (mono_string_to_lpstr): Fix a warning on windows.
8044
8045 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8046
8047         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
8048
8049         * reflection.c loader.c: Removed references to 'dummy' flag.
8050
8051         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
8052
8053         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
8054         it gets GC tracking.
8055
8056         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
8057         GC tracking.
8058         
8059         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
8060
8061         * marshal.c threadpool.c: Update callers of mono_async_result_new.
8062
8063         * appdomain.c: Bump corlib version.
8064
8065 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
8066
8067         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
8068         CEE_STIND_REF when working with object references.
8069
8070 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
8071
8072         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
8073         Fixes #78539.
8074
8075 2006-05-30  Miguel de Icaza  <miguel@novell.com>
8076
8077         * loader.c (method_from_memberref): Fix argument value for
8078         mono_loader_set_error_method_load (I was passing the MonoClass
8079         instead of the class name char *).
8080
8081 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
8082
8083         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
8084         CEE_STIND_REF when working with object references.
8085
8086 2006-05-30  Martin Baulig  <martin@ximian.com>
8087
8088         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
8089         mono_method_full_name() change and replace the ':' with a '.'
8090         here.
8091
8092 2006-05-30  Martin Baulig  <martin@ximian.com>
8093
8094         * debug-mono-symfile.c
8095         (mono_debug_symfile_lookup_location): Fix the algorithm:
8096         when looking up B which is between A and C, return A not C.
8097
8098 2006-05-29  Martin Baulig  <martin@ximian.com>
8099
8100         * mono-debug.h
8101         (MonoDebugMethodInfo): Make the typedef public.
8102         (MonoDebugSourceLocation): New public struct.
8103
8104         * mono-debug.c
8105         (mono_debug_source_location_from_address): Removed.
8106         (mono_debug_source_location_from_il_offset): Removed.
8107         (mono_debug_il_offset_from_address): Removed.
8108         (mono_debug_address_from_il_offset): Removed.
8109         (mono_debug_lookup_method): New public function.
8110         (mono_debug_lookup_source_location): New public function; replaces
8111         the old mono_debug_source_location_from_*() functions; see the
8112         inline documentation.
8113         (mono_debug_free_source_location): New public function.
8114         (mono_debug_print_stack_frame): New public function; see the
8115         inline documentation.
8116
8117         * debug-mono-symfile.c
8118         (mono_debug_find_source_location): Renamed into
8119         mono_debug_symfile_lookup_location(); only take a
8120         `MonoDebugMethodInfo *' and an `offset' argument; added inline
8121         documentation.
8122         (mono_debug_find_method): Renamed into
8123         mono_debug_symfile_lookup_method().
8124
8125 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
8126
8127         * assembly.c (mono_assembly_open_full): Dont overwrite the status
8128         returned by mono_image_open_full ().
8129
8130         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
8131         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
8132         #78517.
8133
8134         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
8135         #78518.
8136
8137 2006-05-27  Miguel de Icaza  <miguel@novell.com>
8138
8139         * class.c (mono_class_from_typeref): handle missing images
8140         earlier, deals with bug #78418.   Refactor code; 
8141
8142         Fix a warning introduced in my previous commit (some stale code
8143         from before I revisited my patch).
8144
8145         * class.c (mono_class_create_from_typedef): On failure, remove the
8146         class from the MonoImage->class_cache as the class is not
8147         initialized;   Fixes the leak pointed out by Paolo.
8148
8149 2006-05-25  Dick Porter  <dick@ximian.com>
8150
8151         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
8152         DeleteCriticalSections until I figure out which one may still be
8153         sometimes locked when mono_thread_cleanup is called.
8154
8155 2006-05-24  Dick Porter  <dick@ximian.com>
8156
8157         * threads.c (mono_thread_cleanup): Move the threading cleanup out
8158         of mono_thread_manage and back into its own function, so it can be
8159         called after the finalizer thread has finished.
8160
8161         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
8162
8163 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
8164
8165         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
8166         Fixes #78495.
8167
8168         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
8169         with non-blittable elements.
8170         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
8171
8172 2006-05-24  Martin Baulig  <martin@ximian.com>
8173
8174         * mono-debug-debugger.h (MonoDebuggerEvent): Added
8175         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
8176
8177         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
8178         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
8179         `mono_debugger_event_handler' to NULL.
8180
8181 2006-05-24  Martin Baulig  <martin@ximian.com>
8182
8183         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
8184
8185 2006-05-24  Martin Baulig  <martin@ximian.com>
8186
8187         * mono-debug-debugger.h
8188         (mono_debugger_create_notification_function): Added
8189         `MonoCodeManager *' argument.
8190
8191 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
8192
8193         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
8194
8195 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
8196
8197         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
8198         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
8199         implementation.
8200
8201 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
8202
8203         * icall.c: precise GC support: objects can't be stored in unmanaged
8204         memory anymore, even if they are kept alive by other references: since
8205         they can move the GC needs to be able to always find them.
8206
8207 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8208
8209         * object.c: precise GC support for static fields. Support
8210         for moving GCs: write barriers and pinned allocation for interned
8211         strings.
8212
8213 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8214
8215         * domain.c, domain-internals.h: precise GC support for the MonoDomain
8216         structure.
8217
8218 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8219
8220         * class.c, gc.c: sgen and precise GC updates.
8221
8222 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
8223
8224         * marshal.h, marshal.c: added write barrier wrapper and precise type
8225         fixes.
8226
8227 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
8228
8229         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
8230         support.
8231
8232 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
8233
8234         * reflection.c: precise and sgen GC updates.
8235
8236 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
8237
8238         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
8239
8240 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
8241
8242         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
8243
8244 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
8245
8246         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
8247         MONO_TYPE_OBJECT. Fixes #78462.
8248
8249 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
8250
8251         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
8252         and blittable types.
8253
8254 2006-05-17  Miguel de Icaza  <miguel@novell.com>
8255
8256         * class.c (mono_class_get_exception_for_failure): Implement parts
8257         of a TODO: if the loader error is set (instead of the class
8258         error), we return a Loader exception that can be properly thrown
8259         elsewhere.
8260
8261         This was exposed by some Winforms 2.0 code that I tried to run
8262         (Atsushi pointed me to it).
8263
8264 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
8265
8266         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
8267         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
8268         
8269         * marshal.c (emit_marshal_vtype): Add limited support for 
8270         UnmanagedType.LPStruct. Fixes #78427.
8271
8272         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
8273         Applied a patch from kangaroo to fix #77523.
8274
8275 2006-05-17  Martin Baulig  <martin@ximian.com>
8276
8277         * threads.c
8278         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
8279         (debugger_thread_created): Removed.
8280         (debugger_thread_exited): Removed.
8281
8282 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
8283
8284         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8285
8286         * object-internals.h (MonoReflectionResource): Sync with managed version.
8287
8288 2006-05-12  Wade Berrier <wberrier@novell.com>
8289
8290         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
8291
8292 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
8293
8294         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
8295         functions try to allocate from the image mempool.
8296
8297 2006-05-12  Dick Porter  <dick@ximian.com>
8298
8299         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
8300
8301 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
8302
8303         * object.c: The FieldGetter and FieldSetter methods require the full
8304         name of the class, not only the name. Fixes bug #78277.
8305
8306 2006-05-11  Miguel de Icaza  <miguel@novell.com>
8307
8308         * loader.c (method_from_memberref): Do not pass the NULL klass to
8309         mono_loader_set_error_() methods.  Pass the non-NULL value
8310         (class). 
8311
8312 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
8313
8314         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
8315         (mono_assembly_close): Null out assembly->image->references after freeing it.
8316
8317         * image.c (mono_image_close): Free image->references.
8318         
8319         * reflection.c (mono_image_basic_init): Fix a small memory leak.
8320
8321 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
8322
8323         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
8324         before checking if it's NULL (g_assert).
8325
8326 2006-05-10  Martin Baulig  <martin@ximian.com>
8327
8328         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
8329         I thought I already killed that two months ago, but now it somehow reappeared.
8330
8331 2006-05-10  Martin Baulig  <martin@ximian.com>
8332
8333         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
8334
8335 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
8336
8337         * reflection.c: Allocate memory for dynamically created methods in the image
8338         mempools.
8339
8340 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
8341
8342         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
8343         don't use the ad pointer before checking if it's NULL (g_assert).
8344
8345 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
8346
8347         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
8348         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
8349
8350         * marshal.c: Allocate all signatures from mempools.
8351
8352         * marshal.c: Allocate some more signatures from mempools.
8353
8354 2006-05-09  Miguel de Icaza  <miguel@novell.com>
8355
8356         * object.c (mono_load_remote_field): The code used to provide a
8357         temporary variable for returning results if the user did not
8358         provide a result pointer.  But our temporary variable was allocted
8359         on the satck.
8360
8361         Fix calling code to always pass a result area.   Coverity ID 103.
8362
8363 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
8364
8365         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
8366         value, not the old. Fixes #78312.
8367         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
8368
8369         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
8370         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
8371         per-image cache.
8372
8373         * assembly.c (mono_assembly_close): Free image->references.
8374
8375         * assembly.c (mono_assembly_names_equal): Fix a warning.
8376         (mono_assemblies_cleanup): Cleanup more global data.
8377
8378         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
8379
8380         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
8381         ptr_cache and image->modules.
8382
8383         * image.c (mono_image_init): Allocate array_cache lazily.
8384         
8385 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8386
8387         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
8388         behavior was changed recently and has bad side effects.
8389
8390 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
8391
8392         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
8393         
8394         * assembly.c (mono_assembly_close): Remove a debug printf.
8395
8396         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
8397
8398         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
8399         to also allow for temporary references between mono_image_open ()/close ().
8400
8401         * domain.c (get_runtimes_from_exe): Add a FIXME.        
8402
8403 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
8404
8405         * marshal.c: Fix support for dynamic methods.
8406
8407         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
8408
8409         * marshal.c (mono_marshal_cleanup): New cleanup function.
8410
8411         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
8412         image mempools.
8413
8414         * class.c (mono_class_init): Fix leaking class->nested_classes.
8415
8416         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
8417
8418         * image.c (mono_image_init): Initialize the new cashes.
8419
8420         * image.c (mono_image_close): Destroy the new cashes.
8421
8422         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
8423
8424         * mempool.c (mono_mempool_strdup): New helper function.
8425
8426         * class-internals.h: Add prototype for mono_loader_unlock ().
8427
8428         * domain.c (mono_jit_info_table_find): Fix a warning.
8429         (mono_debugger_check_runtime_version): Ditto.
8430
8431         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
8432         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
8433         functions to these modules.
8434
8435         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
8436         metadata modules.
8437         
8438         * marshal.c (mono_free_bstr): Fix a warning.
8439
8440         * assembly.c (mono_assembly_open_full): Fix another small leak.
8441
8442         * object.c: Fix some unload leaks in the remoting code.
8443
8444         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
8445         function.
8446
8447         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
8448
8449         * reflection.c: Fix some unload leaks in dynamic assemblies.
8450
8451 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
8452
8453         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
8454         * marshal.h: Add BSTR support on Win32
8455         * icall.c: Add BSTR icalls
8456         * metadata.h: Add BSTR enums
8457
8458 2006-04-28  Miguel de Icaza  <miguel@novell.com>
8459
8460         Work to catch the crash from #76795 and turn it into an
8461         exception.   As I stubbed out pieces of the VisualBasic support,
8462         I found a number of places where the code was failing and I added
8463         checks to those places. 
8464         
8465         * metadata.c (do_mono_metadata_parse_generic_class): Make this
8466         function return a status code.  If we fail to parse the signature
8467         from mono_metadata_parse_generic_inst, return FALSE.
8468
8469         * loader.c (mono_get_method_from_token): If we fail to load the
8470         method (mono_class_get) return NULL.   
8471
8472         * (method_from_memberref): Return NULL if we are unable to parse
8473         the method signature
8474
8475         (mono_loader_error_prepare_exception): Since we now use the
8476         loader_error flag internally to stop processing, and obtaining
8477         exceptions that might be thrown will walk this code path the
8478         proper way of going from a MonoLoaderError into a
8479         MonoException was convoluted.   This new routine encapsulates the
8480         process of turning the error into an exception and *clearing* the
8481         error afterwards.
8482         
8483 2006-04-27  Miguel de Icaza  <miguel@novell.com>
8484
8485         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
8486         with missing assemblies), and to cope with:
8487
8488                 * Missing fieldref from a non-existing assembly.
8489                 * Missing methodref from a non-existing assembly.
8490
8491         The first batch of work to address *some* of the issues from 76661.
8492         
8493         * object.c (mono_class_create_runtime_vtable): If we fail to
8494         initialize the class raise the exception here. 
8495
8496         * metadata.c (mono_class_get_overrides_full): If any methods fail
8497         to load return the failure to the caller.
8498
8499         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
8500         flagging assemblies that failed to load.   
8501
8502         Do not crash if we are unable to load the assembly.
8503
8504         (mono_assembly_close): Do nothing with REFERENCE_MISSING
8505         assemblies. 
8506
8507         * loader.c (mono_loader_set_error_type_load): Change the
8508         convention to always pass unallocated strings, so we make our own
8509         copies (I know our own code had duplicated strings before, but
8510         this keeps the normal conventions).
8511         (method_from_memberref): Call mono_loader_set_error_method_load
8512         for all possible failures of loading the class. 
8513         Remove assert, turn into a loader error.
8514
8515         (mono_loader_error_to_exception): Move this routine from mini
8516         (mini_loader_error_to_exception) there was no need to have that in
8517         mini. 
8518
8519         * class.c (mono_class_from_typeref): If we were not able to load
8520         the assembly with mono_assembly_load_reference, call the
8521         mono_loader_set_error_type_load to register the problem.
8522
8523         (mono_class_setup_fields): If we fail to load the type from
8524         mono_metadata_parse_type_full, call mono_class_set_failure and
8525         break from the loop.
8526
8527         If class->exception_type is set, we do not layout the fields as
8528         that might crash the runtime, and instead return (from breaking
8529         from the previous loop).
8530
8531         (mono_class_setup_vtable): This now returns a boolean indicating
8532         whether the table was properly setup.   The decision is driven by
8533         mono_class_get_overrides_full which might run into non-existing
8534         methods. 
8535         
8536         (mono_class_init): Returns TRUE on success or FALSE if there was a
8537         problem in loading the type (incorrect assemblies, missing
8538         assemblies, methods, etc).
8539
8540         When we call mono_class_setup_fields we also check for a potential
8541         error inside this call (either a class exception or a general
8542         loader exception).
8543
8544         (mono_class_create_from_typedef): If the parent fails to load
8545         (calling mono_class_get_full) return NULL.
8546         
8547         ** Important **
8548
8549         calls to mono_metadata_parse_type_full should be checked
8550         everywhere and set the mono_class_set_failure
8551         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
8552
8553         The current patch checks the places where my manually constructed
8554         tests show the errors are showing up, but we should do it
8555         everywhere. 
8556
8557         ** Important2 **
8558
8559         mono_class_init return values should be tested everywhere, like
8560         the previous case this is something that we should audit
8561         everywhere and not only on the cases exposed by the tests I
8562         created. 
8563
8564 2006-04-26  Miguel de Icaza  <miguel@novell.com>
8565
8566         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
8567         boolean parameter and instead pass the information on `options'
8568         parameter (FileOptions).
8569
8570         * icall.c: Register the new signature for MonoIO.Open.
8571
8572         * debug-helpers.c (dis_one): Trying to understand how coverity
8573         works.  Fix Run 5, item 78.
8574
8575 2006-04-26  Dick Porter  <dick@ximian.com>
8576
8577         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
8578         dereference.
8579
8580 2006-04-25  Martin Baulig  <martin@ximian.com>
8581
8582         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
8583
8584         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
8585         debugger_thread_created().
8586         (debugger_gc_push_all_stacks): Don't handle the main thread in any
8587         special way.
8588         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
8589         (mono_debugger_finalize_threads): New function; undo the effects
8590         of mono_debugger_init_threads().
8591         (mono_debugger_create_all_threads): Removed.
8592
8593 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
8594
8595         * image.c (mono_image_close): Tidy up trace messages.
8596
8597         * assembly.c (mono_assembly_close): Ditto.
8598
8599         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
8600         no longer references an already freed assembly. Fixes #78168.
8601
8602 2006-04-21  Dick Porter  <dick@ximian.com>
8603
8604         * threads.c (mono_thread_detach): Fix reference counting when
8605         detaching threads.
8606
8607 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
8608
8609         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
8610         #78155.
8611
8612 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
8613
8614         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
8615         (mono_type_to_stind): Ditto.
8616
8617         * marshal.c: Use the new helper functions to simplify code.
8618
8619         * image.c (mono_image_close): Add some code for help debug assembly unloading
8620         problems.
8621
8622         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
8623         image mempool.
8624
8625         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
8626         assembly was already loaded in another appdomain. Fixes #78083.
8627
8628 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
8629
8630         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
8631         referenced assemblies.
8632         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
8633
8634         * domain.c (mono_domain_free): Add a trace message.
8635
8636         * appdomain.c (add_assemblies_to_domain): Ditto.        
8637
8638         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
8639         field.  
8640
8641 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8642
8643         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
8644
8645 2006-04-12  Martin Baulig  <martin@ximian.com>
8646
8647         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
8648         `USE_INCLUDED_LIBGC'.   
8649
8650 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
8651
8652         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
8653         the patch contains ../ and a small directory name later. Hopefully fixes
8654         #78035.
8655
8656 2006-04-10  Martin Baulig  <martin@ximian.com>
8657
8658         Clean up the debugger's thread-handling code.
8659
8660         The debugger's thread-handling code has been moved from
8661         ../mini/debug-debugger.c to threads.c.  We now iterate directly
8662         over the `threads' hash, keep track of exiting threads and also
8663         use proper locking.
8664
8665         We can now debug XSP and XSP based applications with the debugger.
8666
8667         * object-internals.h (MonoThread): Added `gpointer end_stack'.
8668
8669         * threads.h
8670         (MonoThreadCallbacks): Removed; this was only used by the debugger.
8671         (mono_install_thread_callbacks): Likewise.      
8672
8673         * threads.c (mono_thread_callbacks): Removed.
8674         (debugger_thread_created, debugger_thread_exited): New static functions.
8675         (start_wrapper): Call debugger_thread_created().
8676         (thread_cleanup): Call debugger_thread_exited().
8677         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
8678         (mono_debugger_init_threads): New public function.
8679         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
8680         iterate directly over the `threads' hash and also use proper locking.
8681
8682         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
8683
8684         * mono-debug-debugger.h
8685         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
8686
8687 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
8688
8689         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
8690         argument type=array. Fixes #78057.
8691
8692 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
8693
8694         * culture-info-table.h : regenerated. Fixed bug #69652.
8695
8696 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
8697
8698         * loader.c metadata.c: Reapply a variant r59116.
8699         
8700         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
8701
8702         * class.c (mono_class_setup_interface_offsets): New internal function.
8703
8704         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
8705         interfaces too. Fixes #77398.
8706
8707         * reflection.c (encode_cattr_value): Add support for 
8708         parameter type=object, argument type=array.
8709         (load_cattr_value): Ditto. Fixes #77916.
8710
8711         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
8712         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
8713
8714         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
8715         a byval char array and CharSet is Ansi.
8716
8717         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
8718
8719 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
8720
8721         * metadata.c: Add some locking comments.
8722         
8723         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
8724         mempool.
8725         (mono_metadata_free_method_signature): Don't free the signature itself.
8726
8727         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
8728
8729         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
8730         reference the same MonoImage.
8731         (mono_assembly_load_from_full): Add an assert.
8732
8733 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
8734
8735         * image.c (mono_image_close): Don't put the image we are about to free into the
8736         loaded_images_guid_hash.
8737
8738         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
8739         to reduce code duplication.
8740
8741         * marshal.c: Register the native functions called by this module as icalls, to
8742         somewhat centralize the creation of MonoMethodSignature's.
8743
8744         * loader.c (mono_method_signature): Add a cache for method signatures.
8745
8746         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
8747         the parameter attributes of a method.
8748         (mono_metadata_parse_method_signature_full): Refactored the computation of
8749         parameter attributes into a separate function. Also avoid one allocation in
8750         most cases.
8751
8752         * assembly.c (mono_assembly_close): Ditto.
8753
8754         * image.c (mono_image_close): Log trace messages with INFO level.
8755
8756         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
8757
8758         * image.c reflection.c: Correct reference counting of image modules.
8759         
8760         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
8761         of this function from the image mempool.
8762         
8763         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
8764         to allow more cached types to be used.
8765
8766         * mono-debug.c (mono_debug_add_method): Appled patch from
8767         David S. Miller  <davem@sunset.davemloft.net>: Access 
8768         minfo->lexical_blocks[] entry elements using read32().
8769
8770 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
8771
8772         * loader.c (mono_free_method): No longer free the method header for non-dynamic
8773         methods as it is allocated from the mempool.
8774
8775         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
8776         image mempool.
8777
8778         * metadata-internals.h: Add comments describing the reference counting scheme
8779         used for MonoImage and MonoAssembly.
8780
8781         * image.c assembly.c reflection.c: Rework reference counting of images and 
8782         assemblies so they are freed when the runtime is shut down. Free some 
8783         additional memory structures when an image is unloaded.
8784         
8785 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
8786
8787         * class.c loader.c reflection.c: Allocate more data structures in
8788         the image mempool.
8789
8790 2006-03-31  Miguel de Icaza  <miguel@novell.com>
8791
8792         * icall.c
8793         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
8794         build on pre glib 2.4 systems.
8795
8796 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
8797
8798         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
8799
8800         * icall.c: Fix some warnings.
8801
8802 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
8803
8804         * culture-info-table.h : regenerated.
8805
8806 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
8807
8808         * threads.c, object-internals.h, verify.c: changed the culture caching
8809         code to use a normal MonoArray for storage so the GC can keep track of
8810         them easily. Fixed bits of the cache logic, too and simplified the
8811         code.
8812
8813 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
8814
8815         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
8816         thread for non-Boehm GCs.
8817
8818 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8819
8820         * domain.c, object.c, domain-internals.h: reduce the amount of memory
8821         needed to keep track of the data for static fields.
8822
8823 2006-03-29  Raja R Harinath  <rharinath@novell.com>
8824
8825         Fix #75172
8826         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
8827         for interface classes.  Use 'num_methods' instead.
8828         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
8829         before using '->vtable_size' field.
8830
8831 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
8832
8833         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
8834         doesn't contain managed pointers, so use a normal hashtable.
8835
8836 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
8837
8838         * reflection.c, class-internals.h, domain.c: fixed handling of types
8839         used as values for objects in custom attributes (bug #77915):
8840
8841 2006-03-24  Martin Baulig  <martin@ximian.com>
8842
8843         * class.c (mono_class_setup_fields): Added support for generic
8844         instances; fixes #77580.
8845
8846 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8847
8848         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
8849
8850 2006-03-24  Dick Porter  <dick@ximian.com>
8851
8852         * file-io.c (get_file_attributes): More stat macro breakage.
8853         Fixes bug 77759.
8854
8855 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
8856
8857         * profiler.c: added the file=filename option in the default profiler
8858         to output the profile data to filename.
8859
8860 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8861
8862         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
8863         bug #77877.
8864
8865 2006-03-22  Martin Baulig  <martin@ximian.com>
8866
8867         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
8868         allocated `MonoClassField *' in `fb->handle'.
8869
8870 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
8871
8872         * class.c, image.c, metadata-internals.h: implemented new mechanism to
8873         allocate interface ID to save memory and allow better ID reuse on
8874         appdomain unload. setup_generic_vtable () removal from Martin.
8875
8876 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
8877
8878         * object.h, appdomain.c, domain.c, exception.c, icall.c,
8879         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
8880         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
8881         write barriers for reference stores with managed objects accessed with
8882         C structures in the runtime and in embedding programs.
8883
8884 2006-03-20  Raja R Harinath  <rharinath@novell.com>
8885
8886         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
8887         'interface_id' and 'max_interface_id' fields of MonoClasses
8888         representing open generic types.
8889
8890 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
8891
8892         * object.h, object.c, icall.c: added functions to deal with
8893         storing valuetypes that contain references in managed objects.
8894         * reflection.c, string-icalls.c, threads.c, marshal.c: small
8895         fixes and comments around uses of mono_array_addr ().
8896
8897 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
8898
8899         * object.h, icall.c, monitor.c: object.GetHashCode ()
8900         implementation that supports the moving garbage collector.
8901
8902 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
8903
8904         * icall.c, threads-types.h, threads.c: implemented finalizer for
8905         LocalDataStoreSlot.
8906
8907 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
8908
8909         * metadata.c (mono_type_size): Add a fixme.
8910         (mono_type_stack_size): Ditto.
8911
8912         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
8913         'type_forwarders' field.
8914
8915         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
8916         attribute from net 2.0.
8917
8918         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
8919         from class.c.
8920
8921         * class.c (mono_class_setup_fields): Fix a warning.
8922         
8923         * class.c (mono_class_from_name): Add support for assemblyref entries
8924         in the EXPORTEDTYPE table.
8925
8926         * reflection.c: Add support for handling type forwarders under net 2.0.
8927
8928         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
8929         
8930 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
8931
8932         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
8933         overwriting entries in ModuleBuild->types, also clean up the code
8934         a little. Fixes #77774.
8935
8936 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
8937
8938         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
8939         load friend assembly info when present.
8940
8941 2006-03-14  Raja R Harinath  <rharinath@novell.com>
8942
8943         Fix crasher on gtest-158.cs.
8944         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
8945         the return value if the MonoClass we want is yet in an
8946         inconsistent state.
8947         * class.c (mono_class_create_from_typedef): Add an comment
8948         explaining an order dependency between mono_class_setup_parent and
8949         mono_class_setup_mono_type.
8950
8951 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
8952
8953         * class.c: documentation updates and events bug fix.
8954
8955 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
8956
8957         * class.c: some cleanup, locking fixes.
8958
8959 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
8960
8961         * class.c: fix the generics code to setup nested
8962         type info to the instantiated type (bug #77770).
8963
8964 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
8965
8966         * marshal.c: fixed a few type correctness issues.
8967
8968 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
8969
8970         * loader.c: the Set/Get/Addrtess array methods should be public.
8971
8972 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
8973
8974         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
8975         
8976         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
8977         info->wrapper.
8978
8979 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
8980
8981         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
8982
8983         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
8984
8985         * mempool.c (mono_mempool_alloc): Speed this up a bit.
8986         (mono_mempool_alloc0): Ditto.
8987
8988 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8989
8990         * socket-io.c:
8991         (create_object_from_sockaddr): it was allocating 4 extra bytes
8992         for the AF_UNIX data. Fixes bug #77747.
8993
8994 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
8995
8996         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
8997
8998 2006-03-09  Dick Porter  <dick@ximian.com>
8999
9000         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
9001         Fixes bug 76966 again.
9002
9003 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
9004
9005         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
9006         names from r57532
9007         * appdomain.c: Bumped corlib version to 48 (due to r57532)
9008
9009 2006-03-07  Martin Baulig  <martin@ximian.com>
9010
9011         * object.c
9012         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
9013
9014 2006-03-07  Martin Baulig  <martin@ximian.com>
9015
9016         * class.c
9017         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
9018         regression introduced in r56970; see gtest-252.cs.
9019
9020         * loader.c (mono_get_method_constrained): Correctly handle generic
9021         methods; see gtest-253.cs.
9022
9023 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
9024
9025         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
9026
9027 2006-03-04  Martin Baulig  <martin@ximian.com>
9028
9029         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
9030         compute the parent type at runtime, just like we're already doing
9031         it for interfaces.
9032
9033         * reflection.c
9034         (mono_reflection_bind_generic_parameters): Don't compute the
9035         parent type anymore.
9036
9037         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
9038
9039 2006-03-04  Martin Baulig  <martin@ximian.com>
9040
9041         * mono-debug-debugger.h
9042         (mono_debugger_create_notification_function): Allocate memory at
9043         runtime and return a pointer to it.
9044
9045 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
9046
9047         * assembly.c: Fix windows build.
9048         
9049         * assembly.c: Fix build.
9050
9051         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
9052
9053         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
9054         
9055 2006-03-03  Dick Porter  <dick@ximian.com>
9056
9057         * process.c
9058         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
9059         Check parameters before dereferencing them.  Fixes Aaron's part of
9060         bug 77393.
9061
9062 2006-03-03  Raja R Harinath  <rharinath@novell.com>
9063
9064         Fix performance regression.
9065         * loader.c (find_method_in_class): Add 'from_class' argument.
9066         Rename 'klass' argument to 'in_class'.  The signature is compared
9067         against the method in 'in_class', and the corresponding method is
9068         returned from 'from_class'.
9069         (find_method): Walk both 'in_class' and 'from_class' in parallel.
9070         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
9071         type definition and generic instantiation in parallel.
9072         (mono_get_method_constrained): Update to changes.
9073
9074 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
9075
9076         * threads.c: make sure the domain is correct, too when doing
9077         mono_thread_attach ().
9078
9079 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
9080
9081         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
9082         windows. Fixes #77683.
9083
9084 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
9085
9086         * object.h, *: introduced specific way to set elements of an array
9087         of references to be used as write barrier. Still need to audit the
9088         uses of mono_array_addr.
9089
9090 2006-03-01  Miguel de Icaza  <miguel@novell.com>
9091
9092         * object-internals.h: New field to cache the assmebly name, patch
9093         from Tambet Ingo (tambet@ximian.com)
9094
9095 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
9096
9097         * decimal.h, class-internals.h, metadata-internals.h,
9098         file-io.h: mark a few function declarations as internal, to
9099         reduce the number of PLT entries.
9100
9101 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9102
9103         * file-io.c: fix typo in warning message.
9104
9105 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
9106
9107         * loader.c: on unix, lookup the "*A" version of a function
9108         if charset is auto as a second option before failing.
9109
9110 2006-02-28  Raja R Harinath  <rharinath@novell.com>
9111
9112         * class.h (mono_class_inflate_generic_method): Revert to two
9113         argument version.
9114         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
9115         (mono_class_inflate_generic_method_full): Add.
9116         * class.c (mono_class_inflate_generic_method_full): Rename from
9117         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
9118         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
9119         * loader.c, reflection.c: Update to changes.
9120
9121 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
9122
9123         * icall.c: const fixes and small improvements.
9124
9125 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9126
9127         * threadpool.c: for asynchronous connect(), enable the same workaround
9128         for BSD 6 as for the Mac. Fixes bug #77637.
9129
9130 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
9131
9132         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
9133         formatted classes. Fixes #77524.
9134
9135 2006-02-24  Raja R Harinath  <rharinath@novell.com>
9136
9137         * class.c (inflate_generic_type): Add a couple more
9138         micro-optimizations.
9139         (inflate_generic_context): Don't use the 'gmethod' from
9140         'inflate_with'.
9141         (mono_class_inflate_generic_method): If the method has generic
9142         parameters, but the passed-in context doesn't have a 'gmethod',
9143         create one.  Use the possibly simplified generic instantiation
9144         from the declaring class instead of the one passed in.
9145
9146 2006-02-24  Raja R Harinath  <harinath@gmail.com>
9147
9148         Make generic method signature and method header handling lazy.
9149         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
9150         (inflate_generic_header): Likewise.
9151         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
9152         parameter to avoid inflating types.
9153         (mono_get_inflated_method): Empty out.
9154         * class.h (mono_class_inflate_generic_method): Update to changes.
9155         * loader.c (mono_get_method_from_token): Don't parse signature for
9156         generic methods, nor methods of generic classes.
9157         (mono_method_signature): Rename from 'mono_method_signature'.
9158         Inflate signature on demand.
9159         (mono_method_get_header): Inflate method header on demand.
9160         * reflection.c: Update to changes.
9161
9162 2006-02-23  Raja R Harinath  <rharinath@novell.com>
9163
9164         * metadata.c (mono_metadata_inflate_generic_inst): If the
9165         instantiation is closed, don't bother expanding it in the new
9166         context.
9167         * class.c (inflate_generic_class): If the generic instantiation
9168         doesn't change after inflation, return the argument itself.
9169         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
9170         Add bounds checks.
9171         (inflate_generic_context): If neither the generic class nor the
9172         generic method instantiations change, return the original context.
9173         * reflection.c (mono_method_get_object): Do
9174         'mono_get_inflated_method' before accessing the ->klass field.
9175         (inflate_mono_method): Don't create a MonoGenericMethod unless
9176         necessary.
9177         (inflate_method): Don't pass a constructed type as the declaring
9178         type of a methodbuilder.
9179
9180 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
9181
9182         * object.c: fix memory overwrite.
9183
9184 2006-02-22  Dick Porter  <dick@ximian.com>
9185
9186         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
9187         it doesn't work any more.
9188         (mono_threads_request_thread_dump): Fix unused variable warnings.
9189
9190 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
9191
9192         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
9193         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
9194         the public header file.
9195
9196 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
9197
9198         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
9199
9200 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
9201
9202         * class-internals.h, object.c: reduce the size of MonoVTable
9203         and store the interface_offsets array at negative offsets.
9204
9205 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
9206
9207         * metadata.c: tweak table descriptors data structures to reduce
9208         size and runtime relocations.
9209
9210 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9211
9212         * marshal.c: fix some types and opcodes to be type-safe
9213         in marshaling wrappers.
9214
9215 2006-02-21  Ankit Jain  <jankit@novell.com>
9216
9217         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
9218
9219 2006-02-21  Raja R Harinath  <rharinath@novell.com>
9220
9221         * metadata.c (get_constraints): Relax debugging checks for monodis.
9222
9223 2006-02-21  Ankit Jain  <jankit@novell.com>
9224
9225         * metadata.c (mono_metadata_load_generic_params): Move the code
9226         checking for ambiguous generic params from here to mono/dis/get.c
9227         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
9228
9229 2006-02-21  Raja R Harinath  <harinath@gmail.com>
9230
9231         Fix assertion triggered when compiling nemerle.
9232         * class.c (mono_get_shared_generic_inst): Rename from
9233         get_shared_inst and make non-static.
9234         * loader.c (mono_get_shared_generic_method): New.  Used to create
9235         the MonoGenericContext-equivalent of a MonoGenericContainer.
9236         (mono_get_method_from_token): Initialize the 'context' field of
9237         the created MonoGenericContainer.
9238         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
9239         * metadata.c (get_constraints): Add sanity check.
9240         * class-internals.h: Add new internal methods.
9241
9242         * reflection.c (verify_safe_for_managed_space): New sanity check.
9243         Currently checks that owner-less generic parameters aren't allowed
9244         in managed space.
9245         (mono_type_get_object): Use it.
9246         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
9247         that are now in mono_type_get_object.
9248         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
9249
9250 2006-02-19  Raja R Harinath  <harinath@gmail.com>
9251
9252         * metadata.c (mono_type_create_from_typespec): Rename from
9253         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
9254         argument and caching of types in the generic container.
9255         (unwrap_arrays, find_generic_param): Remove.
9256         * metadata-internals.h: Update.
9257         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
9258
9259 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
9260
9261         * class.c (mono_class_get_exception_for_failure): Fix a warning.
9262
9263         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
9264         return values. Fixes #77581.
9265
9266         * class.c (mono_fnptr_class_get): Switch name and name_space.
9267
9268         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
9269         classes and add support for [In, Out] attributes.
9270         (mono_marshal_free_asany): Ditto. Fixes #77524.
9271
9272 2006-02-18  Raja R Harinath  <harinath@gmail.com>
9273
9274         * class.c (mono_class_from_generic_parameter): Make more robust to
9275         incomplete MonoGenericContainers from monodis.
9276
9277 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9278
9279         * class-internals.h: added some more exception types.
9280         * class.c, metadata.c: added a few checks to handle missing
9281         types.
9282
9283 2006-02-17  Raja R Harinath  <rharinath@novell.com>
9284
9285         Use owner-less generic-params some more.
9286         * class.c (my_mono_class_from_generic_parameter): Remove.
9287         (mono_class_from_generic_parameter): Handle null image,
9288         param->name and param->owner.
9289         (mono_class_from_mono_type): Update.
9290         (mono_class_create_from_typespec): Remove 'container' parameter.
9291         If that parameter is non-null, the result is always inflated by
9292         'mono_class_get_full' anyway.
9293         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
9294         parameter.
9295         (mono_class_get_full): Update.
9296
9297         * class.c (inflate_generic_type) [GENERICINST]: If the generic
9298         instance is not open, don't bother inflating.
9299         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
9300         parse metadata for inflated classes.
9301         (_mono_class_get): Change GenericContext* parameter to
9302         GenericContainer*.
9303         (mono_class_create_from_typespec): Likewise.  Simplify, and
9304         implement trivially.  All the cases are handled in
9305         mono_class_from_mono_type.  Don't inflate returned class.
9306         (mono_class_get_full): Delegate GENERICINST optimization to
9307         inflate_generic_type.
9308         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
9309
9310 2006-02-16  Dick Porter  <dick@ximian.com>
9311
9312         * socket-io.c (create_object_from_sockaddr): Fix typo.
9313         (create_sockaddr_from_object): Check array lengths before
9314         potentially accessing items off the end.
9315         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
9316         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
9317         (ves_icall_System_Net_Sockets_Socket_Send_internal)
9318         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
9319         length checks to avoid wraparound overflows.
9320         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
9321         contents of the array of sockets
9322         (hostent_to_IPHostEntry2)
9323         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
9324         Check return value of inet_ntop ().
9325         (addrinfo_to_IPHostEntry): Fix typo
9326
9327 2006-02-16  Raja R Harinath  <rharinath@novell.com>
9328
9329         Type metadata parsing doesn't use generic-instantiation information.
9330         * metadata.c (mono_metadata_parse_array_full): Change
9331         MonoGenericContext* parameter to MonoGenericContainer*.
9332         (mono_metadata_parse_type_full): Likewise.
9333         (mono_type_create_from_typespec_full): Likewise.
9334         (mono_metadata_parse_mh_full): Likewise.
9335         (mono_metadata_parse_generic_inst): Likewise.
9336         (do_mono_metadata_parse_generic_class): Likewise.
9337         (do_mono_metadata_parse_type): Likewise.
9338         * metadata-internals.h: Update to changes.
9339         * class.c (mono_class_find_enum_basetype): Likewise.
9340         (mono_class_setup_fields): Likewise.
9341         (mono_class_create_from_typespec): Likewise.
9342         * loader.c (method_from_methodspec): Likewise.
9343         (mono_get_method_from_token): Likewise.
9344         (mono_method_get_header): Likewise.
9345
9346 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9347
9348         * marshal.c: handle additional GENERICINST case (patch from
9349         Thong Nguyen <tum@veridicus.com>).
9350         Fix a few cases where LDIND_I/STIND_I was used for references.
9351
9352 2006-02-16  Raja R Harinath  <rharinath@novell.com>
9353
9354         * reflection.c (mono_reflection_get_token): Remove unused variable.
9355
9356 2006-02-16  Martin Baulig  <martin@ximian.com>
9357
9358         * reflection.c (mono_reflection_get_token): Add support for fields
9359         in instantiated generic types.
9360
9361         * icall.c
9362         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
9363
9364 2006-02-15  Martin Baulig  <martin@ximian.com>
9365
9366         * icall.c
9367         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
9368         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
9369         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
9370         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
9371
9372 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
9373
9374         * class.c, metadata.c, metadata.h, object.c, icall.c,
9375         marshal.c: changed mono_type_get_underlying_type () to do
9376         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
9377         Fixed handling of instantiated generic valuetypes (bug #75479).
9378
9379 2006-02-15  Raja R Harinath  <rharinath@novell.com>
9380
9381         * metadata.c (mono_metadata_decode_signed_value): Simplify.
9382         Delegate to mono_metadata_decode_value, and work on the returned value.
9383
9384         * icall.c (ves_icall_MonoType_GetGenericArguments):
9385         Add consistency check here too.
9386         
9387 2006-02-15  Ankit Jain  <jankit@novell.com>
9388
9389         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
9390         char/short etc.
9391
9392 2006-02-15  Ankit Jain  <jankit@novell.com>
9393
9394         * metadata.c (mono_metadata_decode_signed_value): New function to decode
9395         signed values, used only for representing lower bounds of arrays.
9396         (mono_metadata_parse_array_full): Use new
9397         mono_metadata_decode_signed_value to decode lower bounds.
9398
9399 2006-02-14  Martin Baulig  <martin@ximian.com>
9400
9401         * reflection.c
9402         (mono_reflection_get_token): Support "MonoGenericMethod" and
9403         "MonoGenericCMethod" and allow generic instances / methods.
9404
9405 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
9406
9407         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
9408         to obtain the terminal size using an ioctl.
9409
9410         * object.c (mono_nullable_init): Revert this as nullable reference
9411         types are not valid.
9412         (mono_nullable_box): Ditto.
9413
9414 2006-02-09  Dick Porter  <dick@ximian.com>
9415
9416         * threads.c (mono_thread_detach): Drop a reference to the thread
9417         we're detaching.
9418
9419 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
9420
9421         * object.c (mono_nullable_init): Handle nullable reference types.
9422         (mono_nullable_box): Ditto. Fixes #77446.
9423
9424 2006-02-07  Martin Baulig  <martin@ximian.com>
9425
9426         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
9427
9428 2006-02-07  Ankit Jain  <jankit@novell.com>
9429
9430         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
9431         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
9432         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
9433         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
9434         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
9435         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
9436
9437 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
9438
9439         * class.c (mono_class_create_generic): Set type_token as well.
9440
9441         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
9442         compatible with MS.
9443
9444 2006-02-02  Martin Baulig  <martin@ximian.com>
9445
9446         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
9447         has never been used so far.
9448
9449 2006-02-02  Martin Baulig  <martin@ximian.com>
9450
9451         * mono-debug-debugger.h: Changed comment at the top of this file;
9452         the header is not installed, but it's safe to #include it from
9453         within the JIT.
9454
9455         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
9456         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
9457
9458 2006-02-02  Martin Baulig  <martin@ximian.com>
9459
9460         * mono-debug.h
9461         (MonoSymbolTable): Removed the `metadata_info' field.
9462
9463         * mono-debug.c
9464         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
9465
9466         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
9467         (mono_debugger_add_builtin_types): Removed.
9468         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
9469         (mono_debugger_create_notification_function): We now operate on a
9470         pre-allocated area; take a `gpointer' and return `void'.
9471
9472         * mono-debug-debugger.c
9473         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
9474         (mono_debugger_add_builtin_types): Removed.
9475
9476 2006-02-02  Martin Baulig  <martin@ximian.com>
9477
9478         * threads.c (mono_debugger_create_all_threads): New public method.
9479
9480 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9481
9482         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
9483         breaks on several platforms.
9484
9485 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
9486
9487         * assembly.c: the VS.NET build doesn't supply default values for
9488         MONO_ASSEMBLIES and MONO_CFG_DIR.
9489
9490 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
9491
9492         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
9493         helper function.
9494
9495         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
9496
9497         * loader.c (method_from_memberref): Fix a warning.
9498
9499         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
9500
9501         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
9502         with explicit layout. Fixes #77433.
9503
9504 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
9505
9506         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
9507         max_interface_id is initialized before using it. Fixes #77398.
9508         (ves_icall_Type_GetInterfaces): Ditto.
9509
9510 2006-01-30  Raja R Harinath  <rharinath@novell.com>
9511
9512         * metadata.c (mono_metadata_parse_method_signature_full): Don't
9513         allocate memory for parameter attributes when parsing memberref
9514         signatures.
9515         * loader.c (mono_loader_set_error_method_load): Don't warn.
9516         (method_from_memberref): Ensure MissingMethodException gets thrown
9517         if method is not found.  Make warning more informative.
9518
9519 2006-01-29  Raja R Harinath  <harinath@gmail.com>
9520
9521         Fix #77397
9522         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
9523         return true if is byref.
9524         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
9525         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
9526         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9527
9528 2006-01-27  Raja R Harinath  <rharinath@novell.com>
9529
9530         Fix tests/find-method.2.il
9531         * loader.c (find_method, find_method_in_class): Remove is_inflated
9532         argument.  Revert 2006-01-18 change.
9533         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
9534         is generic, search for method in its generic definition.
9535         * class.c (mono_class_setup_vtable_general): Print generic
9536         arguments of generic types in debugging printf.
9537
9538 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
9539
9540         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
9541
9542         * threads.c (mono_threads_request_thread_dump): New helper function.
9543
9544 2006-01-25  Raja R Harinath  <rharinath@novell.com>
9545
9546         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
9547
9548 2006-01-25  Ankit Jain  <jankit@novell.com>
9549
9550         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
9551         move definition to ..
9552         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
9553         
9554 2006-01-25  Ankit Jain  <jankit@novell.com>
9555             Raja R Harinath  <rharinath@novell.com>
9556
9557         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
9558         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
9559         as necessary.
9560
9561 2006-01-25  Martin Baulig  <martin@ximian.com>
9562
9563         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
9564         `MonoDebuggerThread' into debug-debugger.c.
9565
9566 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
9567
9568         * profiler.c: fix printing of data.
9569
9570 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
9571
9572         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
9573           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
9574
9575 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
9576
9577         * object.c: fix deadlock related to string interning.
9578
9579 2006-01-23  Martin Baulig  <martin@ximian.com>
9580
9581         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
9582
9583         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
9584
9585 2006-01-23  Martin Baulig  <martin@ximian.com>
9586
9587         * mono-debug.h: Moved the prototypes of some functions which are
9588         used by the JIT here from mono-debug-debugger.h.
9589
9590 2006-01-21  Martin Baulig  <martin@ximian.com>
9591
9592         * Makefile.am: Don't install mono-debug-debugger.h.
9593
9594 2006-01-21  Martin Baulig  <martin@ximian.com>
9595
9596         * mono-debug-debugger.h: Enforce the private status of this header
9597         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
9598         Moved some stuff from mono-debugger-jit-wrapper.h here.
9599
9600 2006-01-20  Raja R Harinath  <rharinath@novell.com>
9601
9602         * class.c (mono_class_from_typeref): Add a sanity test to help
9603         catch lack of assembly load/search hooks.
9604
9605 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
9606
9607         * marshal.c (emit_struct_conv): Relax the fields with same offset
9608         check even more. Fixes #77230.
9609
9610 2006-01-18  Martin Baulig  <martin@ximian.com>
9611
9612         * loader.c (find_method_in_class): Added `gboolean is_inflated'
9613         argument; if false, we compare the uninstantiated signatures.
9614         (method_from_memberref): Compare the uninstantiated signatures;
9615         fixes #76417.
9616
9617 2006-01-18  Robert Jordan  <robertj@gmx.net>
9618
9619         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
9620         Clear the weak link. Fixes bug #77170.
9621
9622         * gc.c (mono_gchandle_free):
9623         Reflect *-gc.c changes (tiny optimization).
9624
9625 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
9626
9627         * metadata.c (mono_metadata_signature_dup): Applied patch from
9628         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
9629         Fixes #77288.
9630
9631 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
9632
9633         * marshal.c (emit_struct_conv): Allow fields with the same offset when
9634         marshalling from native to managed code. Fixes #77230.
9635
9636 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9637
9638         * threadpool.c: fix problem (Mac only) when more than one asynchronous
9639         connect. Fixes bug #77020.
9640
9641 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
9642
9643         * class.c: fixed id assignement for nested interfaces (bug #77275).
9644         Added also better info for --print-vtable debugging.
9645
9646 2006-01-12  Martin Baulig  <martin@ximian.com>
9647
9648         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
9649         interfaces on-the-fly; fixes #76625.
9650
9651         * class-internals.h
9652         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
9653         don't need that anymore.
9654
9655 2006-01-12  Miguel de Icaza  <miguel@novell.com>
9656
9657         * socket-io.c
9658         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
9659         To avoid initing the nested_classes when not needed I turned the
9660         PeerCredData as a toplevel internal class, as it has to be shared
9661         anyways. 
9662
9663         Fixes the CASA issue.
9664
9665 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
9666
9667         * domain.c: Accessors for MonoJitInfo
9668
9669         * profiler-private.h: Add jitinfo to the end jit hook
9670
9671         * profiler.[ch]: Define new hooks, called after jitting which give
9672         the MonoJitInfo that was compiled
9673
9674 2006-01-10  Martin Baulig  <martin@ximian.com>
9675
9676         * class.c (mono_class_setup_events): Add support for generic
9677         classes; fixes #76440.
9678
9679 2006-01-06  Raja R Harinath  <rharinath@novell.com>
9680
9681         Fix #77160.
9682         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
9683         on passed-in method.
9684
9685 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9686
9687         * object.c (mono_runtime_invoke_array): Add Nullable support.
9688
9689         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
9690
9691 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
9692
9693         * file-io.c: Don't consider sockets as directory and avoid an endless
9694         loop. Fix bug #76966.
9695
9696 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
9697
9698         * object.c (mono_nullable_init): New helper function.
9699         (mono_nullable_box): Ditto.
9700
9701         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
9702
9703         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
9704
9705         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
9706         
9707 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
9708
9709         * class.c (mono_class_is_assignable_from): Make T assignable to 
9710         Nullable<T>.
9711
9712 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
9713
9714         * appdomain.c: Bump corlib version to 46.
9715         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
9716         serialization purpose) and changed ves_icall_System_Reflection_
9717         Assembly_get_code_base signature to accept a boolean (to escape, or 
9718         not, the assembly code base).
9719
9720 2005-12-23  Dick Porter  <dick@ximian.com>
9721
9722         * icall.c: 
9723         * threads-types.h: 
9724         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
9725         CreateEvent icall now returns "created" boolean parameter.
9726
9727 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
9728
9729         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
9730         #76967.
9731
9732         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
9733         when attr_klass is an interface. Fixes #77045.
9734
9735 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
9736
9737         * marshal.c (emit_struct_conv): Fix previous patch.
9738         
9739         * marshal.c (emit_struct_conv): Add a check for fields with the same
9740         offset.
9741
9742 2005-12-20  Raja R Harinath  <rharinath@novell.com>
9743
9744         Fix regression in Mono.C5.
9745         * class.c (mono_class_create_generic): If 'klass' is an interface
9746         set up the interface offsets.
9747         (mono_class_is_assignable_from): Don't throw away generic arguments.
9748
9749 2005-12-19  Raja R Harinath  <rharinath@novell.com>
9750
9751         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
9752         type parameters.
9753
9754 2005-12-15  Raja R Harinath  <rharinath@novell.com>
9755
9756         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
9757         dead store.
9758         (do_mono_metadata_parse_generic_class): Don't pass the current
9759         generic context when parsing the type being instantiated: it
9760         cannot use it, anyway.
9761
9762         * loader.c (method_from_memberref): Don't inflate a signature if
9763         it doesn't contain any type parameters.
9764
9765 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
9766
9767         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
9768
9769 2005-12-14  Martin Baulig  <martin@ximian.com>
9770
9771         * class.c
9772         (mono_type_get_name_recurse): Don't return null for type
9773         parameters and open generic classes.
9774         (mono_class_setup_methods): Don't exclude generic instances.
9775         (mono_get_unique_iid): Use different IDs for different
9776         instantiations of the same generic type.
9777         (mono_class_setup_vtable): Only use setup_generic_vtable() for
9778         open generic instances; create a normal vtable for closed generic
9779         instances.
9780         (mono_class_setup_vtable_general): We're now also called for
9781         closed generic instances.
9782
9783         * reflection.c
9784         (mono_reflection_bind_generic_parameters): Correctly use
9785         mono_metadata_lookup_generic_inst() everywhere.
9786
9787 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
9788
9789         * object.c (mono_class_create_runtime_vtable): Call 
9790         mono_class_setup_vtable ().
9791
9792         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
9793         function.
9794         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
9795         #76959.
9796
9797         * loader.c (mono_loader_set_error_type_load): Print the type load
9798         warnings to the console so they are more visible to the user.
9799         (mono_loader_set_error_method_load): Ditto.
9800
9801         * reflection.c (ensure_runtime_vtable): Revert the last change as it
9802         is still broken.
9803         
9804         * reflection.c (ensure_runtime_vtable): Fix build.
9805
9806         * reflection.c (ensure_runtime_vtable): Disable an optimization which
9807         doesn't work in all cases.
9808
9809 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
9810
9811         * object.c (mono_array_new_full): Treat a single dimensional array
9812         with 0 lower bounds as an szarray. Fixes #76973.
9813
9814         * reflection.c (custom_attr_visible): Really fix this.
9815
9816 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
9817
9818         * reflection.c (custom_attr_visible): Allow nested public attributes
9819         as well.
9820
9821         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
9822         interface check.
9823
9824 2005-12-12  Raja R Harinath  <harinath@gmail.com>
9825
9826         * class.c (set_generic_param_owner): Delete.
9827         (mono_class_create_from_typedef): Don't set ->owner field of
9828         generic parameters to "param containers" of enclosing classes.
9829         * reflection.c (mono_reflection_initialize_generic_parameter):
9830         Likewise.
9831
9832 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
9833
9834         * reflection.c (custom_attr_visible): Fix build.
9835
9836 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
9837
9838         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
9839         private attributes.
9840         
9841         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
9842         handling of null parameter defaults.
9843
9844 2005-12-09  Raja R Harinath  <rharinath@novell.com>
9845
9846         * class.c (mono_class_from_generic_parameter): Don't set
9847         klass->generic_container.
9848         (my_mono_class_from_generic_parameter): Likewise.
9849
9850 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
9851
9852         * reflection.c (load_public_key): Fix a warning.
9853         (method_encode_code): Fix unaligned accesses.
9854
9855 2005-12-07  Martin Baulig  <martin@ximian.com>
9856
9857         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
9858
9859         * reflection.c
9860         (write_generic_param_entry): Encode our custom attrs.
9861
9862         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
9863
9864 2005-12-07  Martin Baulig  <martin@ximian.com>
9865
9866         * reflection.c (encode_new_constraint): Removed; we don't use the
9867         `NewConstraintAttribute' anymore.
9868
9869 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
9870
9871         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
9872         not fire a TypeResolve event when Assembly.GetType () is called.
9873
9874 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
9875
9876         Beginning of support for nullable types in the runtime. Parts of
9877         this patch are from Martin.
9878
9879         * appdomain.c (MONO_CORLIB_VERSION): Bump
9880
9881         * domain.c (mono_init_internal): get the nullable type
9882
9883         * class.c (mono_class_is_nullable): New method
9884         (mono_class_get_nullable_param): New mehod
9885         (mono_class_create_generic): In types T? set cast_class to T
9886
9887         * class-internals.h (MonoDefaults): new nullable default class
9888         (mono_class_get_nullable_param, mono_class_get_nullable_param):
9889         new methods.
9890
9891 2005-12-05  Raja R Harinath  <rharinath@novell.com>
9892
9893         * metadata.c (select_container): New.  Refactor code to select the
9894         appropriate GenericContainer given the type of generic parameter
9895         we are looking for.
9896         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
9897         not a MonoGenericContext.  Use select_container.  Update parameters.
9898         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
9899         and MONO_TYPE_MVAR.
9900         (unwrap_arrays): Remove duplicate tests.
9901         (find_generic_param): Rename from 'has_same_context'.  Now walks a
9902         generic instantiated class to find any arguments that are generic
9903         parameters.
9904         (mono_type_create_from_typespec_full): Use find_generic_param to
9905         avoid evicting some generic instantiations from the typespec
9906         cache.
9907
9908 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
9909
9910         * reflection.c: fixed writing of doubles on ARM FPA.
9911
9912 2005-12-02  Robert Jordan  <robertj@gmx.net>
9913
9914         * icall.c: Fixed EventInfo.ReflectedType (#76829).
9915
9916 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9917
9918         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
9919         least on SUSE 10 they are not the same (on debian, they are just the
9920         same thing).
9921
9922 2005-12-01  Raja R Harinath  <rharinath@novell.com>
9923
9924         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
9925         DeclaringType for VARs and MVARs.
9926         * class.c (set_generic_param_owner): Fix initialization of owner
9927         fields.
9928
9929 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
9930
9931         * icall.c: fixed Enum.ToObject() to correctly convert the values.
9932
9933 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9934
9935         * threadpool.c: workaround for a bug that shows up on the Mac:
9936         select()+connect() on a blocking socket is not like it should
9937         be, so we proceed to connect() in that case, wasting the I/O
9938         threadpool thread until connect succeedes. Fixes bug #75436.
9939
9940 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9941
9942         * threadpool.c: fix typo when setting file descriptor states.
9943
9944 2005-11-28  Raja R Harinath  <rharinath@novell.com>
9945
9946         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
9947         * metadata.c (mono_metadata_parse_method_signature_full): Don't
9948         create a temporary signature container.
9949         (mono_metadata_parse_generic_param): Update to changes.
9950         (mono_type_create_from_typespec_full): Update to changes.
9951         * loader.c (method_from_memberref): Don't use a
9952         MonoGenericContainer while parsing a memberref signature.
9953         (method_from_methodspec): Remove dead-store of the 'container'
9954         variable.  It's overwritten before use.
9955
9956         * metadata.c (mono_type_create_from_typespec_full): Make debugging
9957         checks tighter.
9958         (mono_metadata_parse_generic_param): Likewise.
9959         * loader.c (find_method_in_class): Does not need a
9960         MonoGenericContainer.  Use 'mono_method_signature' rather than
9961         'mono_method_signature_full'.
9962         (find_method, mono_get_method_constrained, method_from_memberref):
9963         Update to changes.
9964
9965         * metadata.c (mono_type_create_from_typespec_full): Ensure that
9966         owner-less generic-parameters are never evicted from the typespec
9967         cache.
9968
9969         * loader.c (method_from_memberref): Don't use the current context
9970         when parsing signatures.
9971         (method_from_methodspec, mono_get_method_from_token): Update to changes.
9972
9973         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
9974         side-effects in g_assert.
9975         * loader.c (mono_get_method_from_token): Resolve klass earlier so
9976         that we don't potentially lose information.
9977
9978 2005-11-26  Dick Porter  <dick@ximian.com>
9979
9980         * icall.c:
9981         * threads.c: icalls to implement basic (ie, not named)
9982         System.Threading.Semaphore.
9983
9984 2005-11-24  Dick Porter  <dick@ximian.com>
9985
9986         * process.c
9987         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
9988         Use GetProcessId() if it's available.
9989
9990 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
9991
9992         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
9993
9994 2005-11-23  Raja R Harinath  <rharinath@novell.com>
9995             Ankit Jain  <jankit@novell.com>
9996
9997         * loader.c (mono_get_method_from_token): Initialize 'method' field
9998         of all generic parameters before parsing the signature.  Remove
9999         code that "fixed"-up MVAR references.
10000
10001 2005-11-23  Ankit Jain  <jankit@novell.com>
10002
10003         * metadata.c (mono_metadata_has_generic_params):
10004         (mono_metadata_load_generic_param_constraints):
10005         (mono_metadata_load_generic_params): Move duplicate code ...
10006         (mono_metadata_get_generic_param_row): ... here. Returns the
10007         first row-id in GenericParam table for a given owner (token).
10008         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
10009         prototype.
10010
10011 2005-11-23  Raja R Harinath  <rharinath@novell.com>
10012             Ankit Jain  <jankit@novell.com>
10013
10014         * metadata.c (mono_metadata_class_equal): Pass signature_only when
10015         comparing VARs too.
10016         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
10017         type->data.generic_param only if the type is an MVAR.
10018         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
10019         leak owner-less VARs and MVARs into managed space.
10020
10021 2005-11-21  Martin Baulig  <martin@ximian.com>
10022
10023         * class-internals.h
10024         (MonoMethod): Moved the `generic_container' here from
10025         `MonoMethodNormal' since we now also need it for
10026         `MonoMethodPInvoke';
10027         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
10028         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
10029         an union containing both `MonoMethodNormal' and
10030         `MonoMethodPInvoke'.
10031
10032         * loader.c
10033         (mono_get_method_from_token): Allow implementing generic methods
10034         as interncalls.
10035
10036         * threads.c
10037         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
10038         icall.
10039
10040 2005-11-17  Dick Porter  <dick@ximian.com>
10041
10042         * icall.c: 
10043         * process.h: 
10044         * process.c: Split the Process Start_internal icall into
10045         ShellExecuteEx_internal and CreateProcess_internal, which are
10046         called depending on whether UseShellExecute is true.  Fixes bug
10047         76670.
10048
10049         * appdomain.c (MONO_CORLIB_VERSION): Incremented
10050
10051 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
10052
10053         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
10054         'msize' parameters, use the information in 'mspec' instead.
10055         (emit_object_to_ptr_conv): Ditto.
10056
10057         * marshal.c (emit_struct_conv): Handle explicit layout structs with
10058         fields out of order. Fixes #76733.
10059
10060 2005-11-17  Ankit Jain  <jankit@novell.com>
10061
10062         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
10063
10064 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
10065
10066         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
10067           bug #76575.
10068
10069 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
10070
10071         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
10072         for types with non-auto layout. Fixes #76717.
10073
10074 2005-11-16  Ankit Jain  <jankit@novell.com>
10075
10076         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
10077         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
10078         if generic_context is null.
10079           (mono_metadata_generic_param_equal): param->owner can be null.
10080           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
10081         null.
10082
10083 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
10084
10085         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
10086         the correct value.
10087
10088 2005-11-15  Martin Baulig  <martin@ximian.com>
10089
10090         * object.c (set_value): Use mono_class_from_mono_type() instead of
10091         the hack for generic instances; fixes #76136.
10092
10093 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
10094
10095         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
10096         fields.
10097
10098         * image.c (load_metadata_ptrs): Initialize the new fields.
10099
10100         * reflection.c (create_dynamic_mono_image): Ditto.
10101
10102         * reflection.c (build_compressed_metadata): Use the new fields.
10103
10104         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
10105         icall.
10106
10107         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
10108         icall.
10109         
10110 2005-11-15  Ankit Jain  <jankit@novell.com>
10111             Raja R Harinath  <harinath@gmail.com>
10112
10113         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
10114         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
10115         new per-generic_container cache if the cached MonoType's context matches
10116         the current context.
10117           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
10118         to the expected context.
10119           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
10120
10121 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10122
10123         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
10124         we changed the signature of an icall.
10125         * icall.c: Modify to mono_double_ParseImpl return true/false 
10126         depending on the success, instead of throwing the exception. This will
10127         help us in Double.TryParse methods.
10128         
10129 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
10130
10131         * marshal.c (emit_marshal_object): Throw an exception when
10132         marshalling 'object' instead of crashing. Fixes #76696.
10133
10134 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
10135
10136         * class-internals.h: Add prototype for mono_type_get_full_name ().
10137
10138 2005-11-11  Dick Porter  <dick@ximian.com>
10139
10140         * threads.c (mono_thread_manage): Make sure the main thread has
10141         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
10142
10143 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
10144
10145         * loader.c (mono_loader_set_error_type_load): Log a warning to the
10146         console about the missing type.
10147         (mono_loader_set_error_method_load): Ditto.
10148
10149 2005-11-09  Miguel de Icaza  <miguel@novell.com>
10150
10151         * mono-config.c (mono_get_config_dir): Set the system defaults if
10152         none is specified.
10153
10154         * assembly.c (mono_set_dirs): New API entry point to set the
10155         assembly and the config directory in one call
10156
10157 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
10158
10159         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
10160         the ftnptr was created from a delegate in a domain other than the
10161         current domain. Fixes #75377.
10162
10163         * exception.h exception.c: Add mono_get_exception_not_supported ().
10164
10165 2005-11-08  Martin Baulig  <martin@ximian.com>
10166
10167         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
10168
10169 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
10170
10171         * security-manager.h: Added definitions to deal with strongname key 
10172         pairs bigger (and smaller) than 1024 bits.
10173         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
10174         adjust wrt the public key length being used.
10175
10176 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
10177
10178         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
10179           Windows build (r51396-51397).
10180
10181 2005-11-03  Martin Baulig  <martin@ximian.com>
10182
10183         * class.c (mono_class_setup_vtable_general): Also add generic
10184         methods to the vtable; fixes #76581.
10185
10186 2005-11-01  Miguel de Icaza  <miguel@novell.com>
10187
10188         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
10189         sure that we lookup GetString method from the System.Text.Encoding
10190         class, not the derived class or we get an empty method.
10191
10192         Fixed class #76612.
10193
10194 2005-10-25  Miguel de Icaza  <miguel@novell.com>
10195
10196         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
10197         if it has been previously set (embedders). 
10198
10199         Make mono_set_rootdir available also on Unix.
10200
10201 005-10-24  Robert Jordan  <robertj@gmx.net>
10202
10203         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
10204
10205 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
10206
10207         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
10208         only calls which are made to native code use this flag.
10209
10210         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
10211
10212 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
10213
10214         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
10215         Add support for FieldBuilders.
10216
10217 2005-10-29  Martin Baulig  <martin@ximian.com>
10218
10219         * mono-debug.c
10220         (mono_debug_using_mono_debugger): New public method; returns
10221         whether we're running inside the debugger.
10222
10223 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
10224
10225         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
10226         for Method/Constructor/FieldBuilders.
10227
10228 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
10229
10230         * reflection.c (module_add_cattrs): Save custom attributes for global methods
10231         and fields as well.
10232
10233 2005-10-26  Martin Baulig  <martin@ximian.com>
10234
10235         * mono-debug-debugger.c
10236         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
10237
10238 2005-10-24  Raja R Harinath  <harinath@gmail.com>
10239
10240         * icall.c (base64_to_byte_array): Don't pass an out-of-range
10241         integer to isspace.
10242
10243 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
10244
10245         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
10246         when passing valuetypes byref. Fixes #76502.
10247
10248 2005-10-19  Jackson Harper  <jackson@ximian.com>
10249
10250         * profiler.c: Don't put a . in front of types that are not in a
10251         namespace.
10252
10253 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
10254
10255         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
10256
10257 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
10258
10259         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
10260         #76436.
10261         (mono_marshal_get_ldflda_wrapper): Fix a warning.
10262
10263 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10264
10265         * assembly.c metadata-internals.h icall.c: Define an additional
10266         parameter for mono_assembly_name_parse_full, so we can avoid creating
10267         S.R.AssemblyName.Version when no version info wasn't passed.
10268         
10269 2005-10-09  Miguel de Icaza  <miguel@novell.com>
10270
10271         * class.c (mono_type_get_full_name): Reimplement method that was
10272         removed. 
10273
10274         * image.c: Some docs
10275
10276 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
10277
10278         * profiler.c (output_newobj_profile): Fix printing of Total memory
10279         on x86.
10280
10281 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
10282
10283         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
10284
10285 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
10286
10287         * threads.c: remove debug output.
10288
10289 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
10290
10291         * threads.c (mono_thread_manage): Fix crashes if more than 64
10292         threads need to be aborted. Hopefully fixes #75899.
10293
10294         * assembly.c (mono_stringify_assembly_name): New helper function.
10295
10296         * class.c: Use mono_stringify_assembly_name instead of the similar
10297         static function.
10298
10299         * assembly.h assembly.c: Add support for calling a postload search 
10300         hook if an assembly cannot be loaded.
10301
10302         * appdomain.c: Register new search hooks which call the AssemblyResolve
10303         events in AppDomain. Fixes #75231
10304
10305 2005-10-07  Martin Baulig  <martin@ximian.com>
10306
10307         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
10308         methods without debug info.
10309
10310 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
10311
10312         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
10313         wrappers.
10314
10315 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10316
10317         * file-io.c: now that we return symlinks, use lstat and, when the file
10318         is a symbolic link, stat, to get the file attributes. Also avoid the
10319         conversion to/from utf16/external.
10320
10321 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
10322
10323         * class.c (mono_class_layout_fields): Compute klass->has_references
10324         correctly if an embedded valuetype is not yet initialized. Fixes
10325         #76331.
10326
10327 2005-10-04  Martin Baulig  <martin@ximian.com>
10328
10329         * metadata.c
10330         (mono_metadata_load_generic_param_constraints): New public
10331         function; splitted the constraints loading out from
10332         mono_metadata_load_generic_params().
10333
10334         * class.c (mono_class_create_from_typedef): Call
10335         mono_metadata_load_generic_param_constraints() after setting up
10336         the type and creating our parent; fixes #75329.
10337
10338 2005-10-04  Martin Baulig  <martin@ximian.com>
10339
10340         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
10341         non-dynamic parent classes.
10342
10343 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
10344
10345         * file-io.c : win32 build fix (ETXTBSY seems not found).
10346
10347 2005-10-04  Martin Baulig  <martin@ximian.com>
10348
10349         * reflection.c
10350         (mono_image_get_methodspec_token): Make the cache actually work;
10351         fixes #75974.
10352
10353 2005-10-04  Martin Baulig  <martin@ximian.com>
10354
10355         * class.c (mono_class_name_from_token): Removed the unneccessary
10356         `MonoGenericContext *' argument.
10357
10358 2005-10-04  Martin Baulig  <martin@ximian.com>
10359
10360         * loader.c
10361         (method_from_methodspec): Make the caching work again; fixes the
10362         performance regression from #76262.
10363
10364 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10365
10366         * file-io.c:
10367         * file-io.h:
10368         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
10369         GetFileSystemEntries that performs the same work but without going
10370         into io-layer, locking, etc.
10371
10372 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
10373
10374         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
10375         ThreadState_Stopped as well. Fixes #76047.
10376
10377 2005-09-29  Martin Baulig  <martin@ximian.com>
10378
10379         * class.c
10380         (inflate_generic_context): If the new context has a `gmethod', set
10381         its `container' that that gmethod's `container'.
10382
10383         * metadata.c
10384         (mono_metadata_parse_generic_param): Simplify things;
10385         `generic_container = generic_context->container;' is just fine.
10386
10387         * loader.c (method_from_methodspec): Code cleanups.
10388
10389 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
10390
10391         * decimal.c: fix warning (and let gcc generate correct
10392         code on ARM with optimizations).
10393
10394 2005-09-28  Martin Baulig  <martin@ximian.com>
10395
10396         * loader.c
10397         (method_from_memberref): Added `MonoGenericContext *class_context'
10398         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
10399         (method_from_methodspec): If we're a memberref, use the enclosing
10400         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
10401
10402 2005-09-28  Martin Baulig  <martin@ximian.com>
10403
10404         * object.c (mono_runtime_invoke_array): Added support for
10405         MONO_TYPE_GENERICINST; fixes #75917.
10406
10407 2005-09-27  Martin Baulig  <martin@ximian.com>
10408
10409         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
10410         `k->byval_arg.type' to determine the actual type.
10411
10412         * loader.c (method_from_methodspec): Removed some hacks.
10413
10414 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
10415
10416         * class-internals.h (mono_field_is_deleted): Do the test for
10417         rtspecialname before we check the actual name of the field. This
10418         prevents us from dereferencing a pointer into the string table,
10419         saving us from accessing a few pages
10420
10421         * *.c: Replace the use of {Enter,Leave}CriticalSection with
10422         macros. This will allow a deadlock debugger to easily be plugged
10423         in.
10424
10425 2005-09-27  Martin Baulig  <martin@ximian.com>
10426
10427         * loader.c (method_from_methodspec): Create a "signature"
10428         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
10429
10430 2005-09-27  Martin Baulig  <martin@ximian.com>
10431
10432         * class.c
10433         (inflate_generic_class): Correctly set the new context's
10434         container.
10435
10436         * loader.c
10437         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
10438         instead of a `MonoGenericContext *'.
10439         (mono_method_signature_full): Take a `MonoGenericContainer *'
10440         instead of a `MonoGenericContext *'.
10441
10442         * metadata.c
10443         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
10444         instead of a `MonoGenericContext *'.
10445         (mono_metadata_parse_method_signature_full): Likewise.
10446
10447 2005-09-26  Martin Baulig  <martin@ximian.com>
10448
10449         * class.c
10450         (mono_class_from_generic_parameter): Set `klass->generic_container'
10451         (mono_class_from_generic_parameter): Likewise.
10452         (mono_bounded_array_class_get): We inherit the generic container
10453         from the element class.
10454
10455         * loader.c
10456         (find_method, find_method_in_class): Take a `MonoGenericContext *'
10457         argument rather than computing it here.
10458         (method_from_memberref): Correctly set the generic context before
10459         parsing the signature.  Fixes #75681.
10460
10461 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
10462
10463         * object.c (mono_class_has_special_static_fields): Fix warnings.
10464
10465 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10466
10467         * assembly.c: Add parse_public_key function, to
10468         par the public keys. Also added mono_assembly_name_parse_full,
10469         to define it the parsed key should be freed or not.
10470         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
10471         to parse a long format assembly name.
10472         * metadata-internals.h: Keep mono_assembly_name_parse_full as
10473         private, since calling it to preserve the key requires
10474         freeing it manually.
10475         
10476 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
10477
10478         * locales.c : removed HAVE_ICU part.
10479
10480 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
10481
10482         * object.c (mono_class_create_runtime_vtable): Avoid calling 
10483         field_is_special_static if the klass has no special static fields.
10484
10485         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
10486         (MonoCachedClassInfo): Likewise.
10487
10488         * object.c (mono_class_has_special_static_fields): New helper function.
10489
10490 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10491
10492         * class.c (mono_class_create_from_typedef): Don't call 
10493         interfaces_from_typedef_full for enums.
10494         (mono_class_create_from_typedef): Compute the base types of enums directly
10495         without calling mono_class_setup_fields ().
10496         (mono_class_find_enum_basetype): New helper function.
10497
10498         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
10499         one place inside the string heap.
10500         
10501 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
10502
10503         * class.c: locking fixes, code cleanups, some docs added.
10504         Allocate some data structures in the image mempool.
10505
10506 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10507
10508         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
10509         the example code.
10510         
10511 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
10512
10513         * class-internals.h, class.c, reflection.c: reduce memory taken by
10514         MonoClass.
10515
10516 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
10517
10518         * metadata.c, metadata.h, loader.h: documentation updates, code and
10519         API cleanups.
10520
10521 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
10522
10523         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
10524         the example code.
10525
10526         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
10527         page faults caused by the runtime while reading metadata.
10528
10529 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10530
10531         * socket-io.c: the field names were changed 3 months ago and no one
10532         realized until bug #76077 got filed!
10533
10534 2005-09-20  Martin Baulig  <martin@ximian.com>
10535
10536         * icall.c (assembly_icalls): Removed some unused debugger icalls.
10537
10538 2005-09-20  Martin Baulig  <martin@ximian.com>
10539
10540         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
10541         write the rank into the class entry.
10542
10543 2005-09-20  Martin Baulig  <martin@ximian.com>
10544
10545         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
10546
10547 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
10548
10549         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10550
10551         * icall.c (custom_attrs_defined_internal): New icall.
10552
10553         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
10554         function.
10555         (mono_custom_attrs_construct_by_type): New helper function.
10556
10557 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
10558
10559         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
10560         terminate the resulting string. Fixes #76123.
10561
10562 2005-09-16  Martin Baulig  <martin@ximian.com>
10563
10564         * mono-debug.c
10565         (mono_debug_add_method): Ignore inflated methods for the moment.
10566
10567 2005-09-14  Martin Baulig  <martin@ximian.com>
10568
10569         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
10570
10571 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
10572
10573         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
10574         return a success/failure indication.
10575         (mono_metadata_interfaces_from_typedef_full): Ditto.
10576         (get_constraints): Ditto.
10577
10578 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
10579
10580         * marshal.c (emit_marshal_array): Fix handling of null arrays.
10581         
10582         * marshal.c (emit_marshal_array): Add support for returning string
10583         arrays from delegates. Fixes #76063.
10584
10585         * marshal.c: Use the emit_ldloc/stloc macros where possible.
10586
10587 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
10588
10589         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
10590         icall.
10591
10592 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
10593
10594         * reflection.c icall.c: Fix after mono_get_exception_type_load
10595         signature change.
10596
10597         * assembly.c (mono_assembly_get_assemblyref): New helper function.
10598         (mono_assembly_load_reference): Use the new helper.
10599
10600         * class-internals.h (MonoLoaderError): New structure containing 
10601         information about type loading errors.
10602
10603         * class-internals.h loader.c: Add APIs to store per-thread loader
10604         error information.
10605
10606         * loader.c class.c: Set the loader error if needed.
10607
10608         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
10609
10610 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
10611
10612         * decimal.c: fixed to handle the broken ARM fp format.
10613
10614 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
10615
10616         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
10617         broken.
10618
10619 2005-09-06  Martin Baulig  <martin@ximian.com>
10620
10621         * domain.c (supported_runtimes): Added v2.0.50727.
10622
10623 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
10624
10625         * culture-info.h: reduce the size of some structures.
10626
10627 2005-09-05  Martin Baulig  <martin@ximian.com>
10628
10629         Reflect latest API changes in the August CTP.
10630
10631         * icall.c
10632         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
10633         ("MonoType.HasGenericArguments"): Removed.
10634         ("MonoMethod.BindGenericParameters"): Renamed to
10635         "MakeGenericMethod".
10636         ("MethodBuilder.BindGenericParameters"): Renamed to
10637         "MakeGenericMethod".    
10638
10639 2005-09-05  Martin Baulig  <martin@ximian.com>
10640
10641         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
10642
10643 2005-09-05  Martin Baulig  <martin@ximian.com>
10644
10645         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10646
10647         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
10648         generic_container is non-NULL.
10649
10650 2005-09-05  Martin Baulig  <martin@ximian.com>
10651
10652         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10653
10654         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
10655
10656 2005-08-29  Michal Moskal  <malekith@nemerle.org>
10657
10658         * reflection.c (encode_locals,
10659         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
10660         for large generic types.
10661
10662 2005-09-05  Martin Baulig  <martin@ximian.com>
10663
10664         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10665
10666         * class.c (mono_dup_array_type): New public method.
10667         (mono_metadata_signature_deep_dup): New public method.
10668         (dup_type): Correctly duplicate array and function types.
10669
10670 2005-09-05  Martin Baulig  <martin@ximian.com>
10671
10672         Applying a patch from Michal Moskal <malekith@nemerle.org>.
10673
10674         * reflection.c (get_default_param_value_blobs): Handle generic types
10675         and generic methods.
10676
10677 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
10678
10679         * class.c: Fixed error reporting (method/class were inversed) for 
10680         inheritance demands.
10681         * security-manager.c|h: Added the AppDomain when calling the managed
10682         System.Security.SecurityManager.InheritanceDemand method.
10683
10684 2005-09-01  Raja R Harinath  <rharinath@novell.com>
10685
10686         * reflection.c (encode_marshal_blob): 'marshaltype' and
10687         'marshaltyperef' are alternate sources for the custom marshaler
10688         name.
10689
10690 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
10691
10692         * class.c: fix creation of array classes with rank == 1
10693         (patch by Ankit Jain <jankit@novell.com>).
10694
10695 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
10696
10697         * object.c: fix check for creating the bound data for arrays vs
10698         szarrays.
10699
10700 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10701
10702         * object.c: configuration file name is now based on the executable name,
10703         not the image name. Fixes bug #75931.
10704
10705 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
10706
10707         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
10708         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
10709
10710 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
10711
10712         * rand.c: Use wincrypt.h instead of WinCrypt.h.
10713
10714 2005-08-24  Ankit Jain  <jankit@novell.com>
10715             Raja R Harinath  <rharinath@novell.com>
10716
10717         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
10718           called by it recursively.
10719           (mono_class_init): Remove special case in pending_init handling, since it's
10720           superseded by the fix to mono_class_from_typeref.
10721
10722 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
10723
10724         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
10725         BROKEN_THREAD_START stuff.
10726
10727 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
10728
10729         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
10730         trampoline.
10731
10732         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
10733         
10734         * object.c (mono_delegate_ctor): Replace the original function address with
10735         a delegate trampoline.
10736
10737 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
10738
10739         * icall.c: add boolean argument to base64_to_byte_array and 
10740         InternalFromBase64String to control whether a whitespace-only string
10741         is allowed (or should casue a FormatException to be thrown). We need
10742         this as the behavior has changed between MS.NET 1.x and 2.0, and we
10743         to match the MS behaviour in both profiles.
10744         * appdomain.c: Bump corlib version.
10745
10746 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10747
10748         This patch implements a big portion of publisher policy
10749         support, used to bind assembly versions and redirect
10750         one assembly from version A to version B.
10751
10752         * assembly.c:
10753         New GSList loaded_assembly_bindings, for storing the cached
10754         assembly bindings.
10755         (assembly_binding_maps_name): New static function for checking if a 
10756         assembly binding information maps an assembly name.
10757         (mono_assembly_binding_info_free): New function for freeing
10758         assembly binding information resources.
10759         (get_publisher_policy_info): New static function for retrieving 
10760         assembly binding information from a MonoImage.
10761         (compare_versions): New static function for comparing an assembly
10762         binding information data and the version of an assembly name.
10763         (check_policy_versions): New static function for checking if an
10764         assembly binding info mapping an assembly name is valid for it.
10765         (mono_assembly_load_publisher_policy): New static function for
10766         loading the 'policy.major.minor.MyAssembly' image for an assembly
10767         with an assembly name 'aname'.
10768         (mono_assembly_bind_version): New static function for updating
10769         assembly redirection.
10770         (mono_assembly_apply_binding): New static function for applying
10771         assembly binding.
10772         (search_binding_loaded): New static function for searching 
10773         loaded assembly binding infos in the cache domain.
10774         (mono_assembly_load_full): Don't apply assembly binding for
10775         reflection only assemblies.
10776
10777         * metadata-internals.h: Add MonoAssemblyBindingInfo,
10778         which contains information about assembly binding. Also
10779         declare signature for mono_config_parse_publisher_policy ()
10780         function, used to retrieve pub policy info.
10781         
10782         * mono-config.c:
10783         (publisher_policy_start): New static function used to parse publisher 
10784         policy config files.
10785         (publisher_policy_parser): New static MonoParseHandler containing 
10786         the functions used when parsing config files.
10787         (mono_config_parse_publisher_policy): New function for parsing
10788         publisher policy files.
10789         
10790 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
10791
10792         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
10793
10794         * marshal.c (mono_delegate_free_ftnptr): Ditto.
10795
10796         * object.c (mono_get_addr_from_ftnptr): New helper function.
10797
10798         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
10799
10800         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10801
10802 2005-08-19  Dick Porter  <dick@ximian.com>
10803
10804         * threads.c, threads.h, appdomain.c, appdomain.h,
10805         profiler-private.h, monitor.c, object.c, object-internals.h,
10806         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
10807         store the thread ID, so it can hold a 64 bit value if needed.
10808
10809 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
10810
10811         * reflection.c (mono_reflection_create_dynamic_method): Store the
10812         handle class into the method references as well so ldtoken works in
10813         dynamic methods.
10814
10815         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
10816         types.
10817
10818 2005-08-19  Ankit Jain <jankit@novell.com>
10819
10820         Fix #75847.
10821         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
10822           here rather than using the method signature of a arbitrary function
10823           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
10824           two arguments.
10825           Hack done with Harinath.
10826
10827 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10828
10829         * threadpool.c: disable printing stack traces when we get a exception
10830         in a threadpool thread. I need to do more testing to figure out which
10831         cases actually print this. Fixes bug #75828.
10832
10833 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10834
10835         * icall.c: there might be ignored whitespace after the last '='. This
10836         fixes length computation and bug #75840.
10837
10838 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
10839
10840         * assembly.c (mono_assembly_load_full): Consider .exe extension as
10841         well. Fixes #75809.
10842
10843         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
10844         #75784.
10845         
10846         * reflection.c (create_custom_attr_data): Ditto.
10847
10848 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
10849
10850         * locales.c, culture-info.h : removed RegionLCIDMap.
10851         * culture-info-tables.h : regenerated.
10852
10853 2005-08-16  Martin Baulig  <martin@ximian.com>
10854
10855         * class.c (mono_type_get_name_recurse): Small fix.
10856
10857 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
10858
10859         * locales.c : indentation fixie.
10860
10861 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
10862
10863         * object-internals.h,
10864           locales.h,
10865           locales.c,
10866           culture-info.h,
10867           icall.c : added RegionInfo table support.
10868         * culture-info-table.h : regenerated for region support.
10869
10870 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
10871
10872         * reflection.c (resolve_object): handle all kinds of MonoMethod
10873         including generic ones
10874
10875 2005-08-12  Ankit Jain <jankit@novell.com>
10876
10877         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
10878           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
10879
10880 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
10881
10882         * process.c: Don't close a thread handle when it's NULL. This is a
10883         workaround for bug #75733.
10884
10885 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
10886
10887         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
10888
10889 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
10890
10891         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
10892
10893 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10894
10895         * threadpool.c: if a work item in the thread pool has a callback that
10896         catches a exception, don't propagate it after invoking the callback.
10897         Fixes bug #75336.
10898
10899 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
10900
10901         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
10902
10903         * class-internals.h (MonoCachedClassInfo): Add some new fields.
10904
10905         * class.c (mono_class_init): Load field info lazily in the AOT case.    
10906
10907         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
10908
10909 2005-08-03  Ankit Jain  <jankit@novell.com>
10910
10911         Fix #75683.
10912         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
10913           PInvoke calling convention is 0.
10914
10915 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
10916
10917         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
10918         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
10919
10920 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
10921
10922         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
10923         to handle threads not started by the GC (patch by Michael Meeks
10924         <michael.meeks@novell.com>).
10925
10926 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
10927
10928         * reflection.c: Make buffer used in emitting types larger for some
10929         big generic types (patch by Michal Moskal).
10930
10931 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
10932
10933         * mono-debug.c: Fix some (not all) alignment problems.
10934
10935 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10936
10937         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
10938         Invoke mono_image_load_from_data_full passing the refonly
10939         parameter.
10940
10941         * assembly.c
10942         (mono_assembly_open_from_bundle): Add the refonly argument, 
10943         in order to pass it to other methods it calls to.
10944         (do_mono_assembly_open): Add the refonly argument, in order 
10945         to pass it to other methods it calls to.
10946         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
10947         the refonly parameter to it.
10948
10949         * image.c: Add loaded_images_refonly_hash and
10950         loaded_images_refonly_guid_hash to cache the reflection
10951         only loaded images.
10952         (mono_images_init): Initialize the hash tables used for
10953         caching the reflection only images.
10954         (load_modules): Invoke mono_image_open_full passing the refonly
10955         parameter to load the modules the correct way.
10956         (build_guid_table): Add the refonly argument, to re-build the 
10957         correct hash table.
10958         (do_mono_image_open): Added the refonly argument, in order to
10959         define it for the loaded image.
10960         (mono_image_loaded_full): New function, which receives an
10961         additional parameter to look for the image in the refonly or
10962         non-refonly section.
10963         (mono_image_loaded): Updated, using mono_image_loaded_full.
10964         (mono_image_loaded_by_guid_full): The same case that happens
10965         with mono_image_loaded_full.
10966         (mono_image_loaded_by_guid): Likewise.
10967         (register_image): Use the ref_only variable inside MonoImage
10968         to decide in which hash table store the current image.
10969         (mono_image_open_from_data_full): Rename
10970         mono_image_open_from_data to mono_image_open_from_data_full,
10971         adding the refonly argument, to define the ref_only variable 
10972         inside MonoImage.
10973         (mono_image_open_from_data): Return 
10974         mono_image_open_from_data_full.
10975         (mono_image_open_full): Rename mono_image_open to
10976         mono_image_open_full, receiving the new refonly argument,
10977         to pass it to inner methods.
10978         (mono_pe_file_open): Update this function, to open
10979         a MonoImage as a non-refonly image.
10980         (mono_image_close): Use the refonly variable inside
10981         MonoImage to remove the image from the correct caches.
10982
10983         * image.h: Add the signatures of mono_image_open_full,
10984         mono_image_open_from_data_full, mono_image_loaded_full,
10985         mono_image_loaded_by_guid_full.
10986
10987         * metadata-internals.h: Add the ref_only field to 
10988         MonoImage.
10989         
10990 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10991
10992         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
10993         Fix the last behavior, which used to load the assemblies and
10994         extract MonoReflectionAssemblyName information, instead of
10995         extract it from the metadata tables. Needed for Reflection
10996         Only assemblies.
10997         
10998 2005-07-29  Martin Baulig  <martin@ximian.com>
10999
11000         * mono-debug-debugger.c
11001         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
11002         not initialized.
11003
11004         * mono-debug.c
11005         (mono_debug_address_from_il_offset): Check whether we have
11006         debugging support before attempting to take the lock.
11007         (mono_debug_source_location_from_address): Likewise.
11008         (mono_debug_source_location_from_il_offset): Likewise.
11009         (mono_debug_il_offset_from_address): Likewise.
11010         (mono_debug_address_from_il_offset): Likewise.
11011
11012 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
11013
11014         * class.c (mono_class_from_name_case): Add support for dynamic images.
11015         Fixes #75650.
11016
11017         * object.c (mono_class_compute_gc_descriptor): Add a workaround
11018         for #75479.
11019
11020 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
11021         
11022         * reflection.c (mono_method_get_object): Fix warning.
11023
11024 2005-07-28  Martin Baulig  <martin@ximian.com>
11025
11026         * mono-debug.c
11027         (mono_debug_add_wrapper): Also write the wrapper type.
11028
11029 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
11030
11031         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
11032         
11033         * class.c (mono_class_init): Avoid reading nested classes if the AOT
11034         data indicates the class has none.
11035
11036 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
11037
11038         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
11039         loader lock with the debugger lock. Prevents deadlocks for beagle.
11040
11041         Beagle can now run on an smp box for a weekend without any
11042         issues. Woohoo!
11043
11044 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
11045
11046         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
11047         in a module. Fixes #75629.
11048
11049 2005-07-26  Martin Baulig  <martin@ximian.com>
11050
11051         * mono-debug.c (mono_debug_add_wrapper): New static method.
11052         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
11053         interncall or a wrapper.
11054
11055         * mono-debug.h (MonoDebugWrapperData): New public typedef.
11056         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
11057         (MONO_DEBUGGER_VERSION): Bump to 51.
11058
11059         * mono-debug-debugger.c
11060         (mono_debugger_add_type): Removed this empty function.
11061         (mono_debugger_add_method): Likewise.
11062
11063 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
11064
11065         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
11066         before accessing method->slot.
11067
11068 2005-07-21  Jb Evain  <jbevain@gmail.com>
11069
11070         * reflection.c (method_encode_clauses/class): Handle filters clauses.
11071         Fixes #75010.
11072
11073 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
11076         #75587.
11077
11078 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
11079
11080         * image.h image.c: Add mono_image_get_guid () API function.
11081
11082 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
11083
11084         There were issues when multiple threads tried to load
11085         assemblies. A deadlock was created between assemblies_mutex and
11086         mono_domain_assemblies_lock. This fixes the issue by making the
11087         assembly ref counting be lock free. See bug 75586.
11088         
11089         * image.c (mono_image_close): The add ref function here was using
11090         Interlocked operations while the unref was using a mutex and a
11091         --. I don't think this was ever a bug that would be exposed in a
11092         non-pendantic way (ie, by an embedder doing a ref on one thread
11093         and an unref on another), but for the sake of correctness, this is
11094         now Interlocked.
11095
11096         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
11097         (mono_assembly_load_reference): Call mono_assembly_addref rather
11098         than touching the refcount ourselves.
11099         (mono_assembly_close): Use InterlockedDecrement to unref the
11100         assembly. Don't acquire the lock unless it is actually needed.
11101
11102 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
11103
11104         * class.c (mono_class_layout_fields): Fix calculation of has_references
11105         for generic types.
11106
11107 2005-07-12  Martin Baulig  <martin@ximian.com>
11108
11109         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11110
11111         * metadata.c
11112         (mono_type_hash): Provide better hashing for generic instances.
11113         (mono_generic_inst_hash): Improve hashing.
11114         (mono_generic_class_hash): Likewise.
11115
11116         * reflection.c (mymono_metadata_type_hash): Improve hashing for
11117         generic instances.
11118
11119 2005-07-12  Martin Baulig  <martin@ximian.com>
11120
11121         * reflection.c (mono_reflection_create_runtime_class): Remove the
11122         hack for generic type definitions and non-`Run' assemblies.
11123         (mono_reflection_bind_generic_parameters): Also use
11124         `klass->wastypebuilder' to check for TypeBuilders.
11125
11126 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
11127
11128         * class.c (mono_class_layout_fields): Fix calculation of has_references
11129         for generic types.
11130
11131         * class.c (inflate_generic_class): Fix a leak.
11132         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
11133         for generic types.
11134
11135 2005-07-11  Martin Baulig  <martin@ximian.com>
11136
11137         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
11138         on error.
11139
11140 2005-07-11  Martin Baulig  <martin@ximian.com>
11141
11142         * loader.c (find_method): Also lookup in
11143         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
11144
11145 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11146
11147         * appdomain.c (mono_domain_unload): Don't free the error message
11148         before passing it to mono_get_exception_...
11149
11150         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
11151         
11152 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
11153
11154         * threads.c: try to better guess an available RT signal (bug #75387).
11155
11156 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11157
11158         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
11159         and CACHE_OBJECT.
11160
11161 2005-07-07  Martin Baulig  <martin@ximian.com>
11162
11163         * class.c (mono_type_get_name_full): Return NULL for
11164         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
11165         fixes #75408.
11166
11167 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
11168
11169         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
11170         exit the appdomain as well being aborted.
11171
11172         * threadpool.c: Create all threadpool threads inside the root appdomain, and
11173         change back to the root domain after calling managed code. This enables
11174         appdomains using threadpools to be unloaded.
11175
11176 2005-07-07  Martin Baulig  <martin@ximian.com>
11177
11178         * class-internals.h
11179         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
11180         into `MonoDynamicGenericClass' since we only need it for dynamic
11181         types.
11182
11183         * reflection.c (mono_class_bind_generic_parameters): We don't need
11184         to compute the `parent' here.
11185
11186 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
11187
11188         * culture-info-table.h : regenerated.
11189
11190 2005-07-06  Martin Baulig  <martin@ximian.com>
11191
11192         * icall.c
11193         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
11194
11195         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
11196
11197 2005-07-06  Martin Baulig  <martin@ximian.com>
11198
11199         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
11200         we're doing a signature-only comparision; fixes #74945.
11201
11202 2005-07-06  Martin Baulig  <martin@ximian.com>
11203
11204         * class-internals.h (MonoGenericClass): Moved some things out into
11205         a new `MonoInflatedGenericClass' type.  
11206         (MonoInflatedGenericClass): New type; the `klass' of a
11207         `MonoGenericClass' is now computed lazyly in
11208         mono_get_inflated_generic_class().      
11209
11210         * class.c (mono_get_inflated_generic_class): New public function.
11211         (mono_class_inflate_generic_method): Removed the unused
11212         `MonoClass *' argument.
11213         (setup_generic_vtable): Don't call mono_get_inflated_method() on
11214         all the methods.
11215         (mono_class_create_generic): Make this static and merge it with
11216         mono_class_create_generic_2(); we're now called automatically from
11217         mono_get_inflated_generic_class().
11218
11219         * loader.c (mono_method_signature): Call
11220         mono_get_inflated_method() here.
11221
11222 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
11223
11224         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
11225         type of fields with RVA.
11226
11227         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
11228         for this pseudo class.
11229         (my_mono_class_from_generic_parameter): Likewise.
11230         (mono_class_init): Allow interfaces to have cctors.
11231
11232 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
11233
11234         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
11235         lazily for AOT methods.
11236
11237 2005-07-05  Martin Baulig  <martin@ximian.com>
11238
11239         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
11240         returns FALSE for a successful match, not TRUE.
11241
11242 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
11243
11244         * loader.c (mono_method_get_index): Optimize this a bit.
11245
11246 2005-07-04  Martin Baulig  <martin@ximian.com>
11247
11248         * class.c
11249         (class_compute_field_layout): Move the check for generic type
11250         definitions into mono_class_layout_fields().  Fixes #74684.
11251         (mono_class_from_generic_parameter): Correctly compute
11252         `klass->parent'; fixes #75457.
11253
11254         * reflection.c (register_assembly, register_module): Make sure
11255         `domain->rejobject_hash' is already created.
11256
11257 2005-07-02  Martin Baulig  <martin@ximian.com>
11258
11259         * class-internals.h
11260         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
11261         `MonoDynamicGenericClass'.      
11262
11263 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
11264
11265         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
11266         returned by a field getter is null, since null is a valid value.
11267
11268 2005-07-01  Martin Baulig  <martin@ximian.com>
11269
11270         * reflection.c (mono_reflection_generic_class_initialize): Update
11271         the `dgclass->fields [i].parent' to the correct class.
11272         (mono_image_get_fieldref_token): Use the declaring type, not the
11273         reflected type.
11274
11275 2005-07-01  Martin Baulig  <martin@ximian.com>
11276
11277         * loader.c (find_method): Also look in the interfaces; fixes #75429.
11278
11279 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
11280
11281         * threads.c (thread_cleanup): assert that thread != NULL
11282         (wait_for_tids_or_state_change): We were using the wrong variable
11283         when accessing wait->threads. `i' was always out of the bounds of
11284         the array.
11285
11286 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11287
11288         * loader.c: map user32 and kernel32 to libMonoSupportW
11289
11290 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
11291
11292         * appdomain.c (unload_thread_main): Mark this as WINAPI.
11293
11294 2005-06-28  Martin Baulig  <martin@ximian.com>
11295
11296         * loader.c (method_from_methodspec): Fix #75334.
11297
11298 2005-06-28  Martin Baulig  <martin@ximian.com>
11299
11300         Fix #74953 - Arrays now implement the generic IList<T> interface
11301         on the 2.0 platform.
11302
11303         * class-internals.h (MonoDefaults): Added `generic_array_class'.
11304
11305         * reflection.c (mono_class_bind_generic_parameters): New public
11306         function; similar to mono_reflection_bind_generic_parameters(),
11307         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
11308
11309         * domain.c (mono_init_internal): Try to initialize.
11310         `mono_defaults.generic_array_class' here; this'll only succeed if
11311         we're using the 2.0 corlib.
11312
11313         * icall.c
11314         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
11315         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
11316         (mono_lookup_internal_call): Added support for nested classes.
11317
11318         * loader.c
11319         (mono_get_method_from_token): Set `result->signature->pinvoke' if
11320         we're an interncall and have generic arguments.
11321
11322         * class.c
11323         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
11324         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
11325         instance of System.Array.InternalArray<T> for arrays, so they
11326         implement the generic IList<T> interface.
11327
11328 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
11329
11330         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
11331         (chastamar@yahoo.com). Fixes #75374.    
11332
11333 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
11334
11335         * culture-info-table.h: regenerated.
11336
11337 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11338
11339         * icall.c: handle spaces correctly for base64 strings.
11340
11341 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
11342
11343         * *.c: Kill some warnings.
11344
11345 2005-06-23  Duncan Mak  <duncan@novell.com>
11346
11347         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
11348         that this builds on Solaris 10 (x86).
11349
11350 2005-06-23  Martin Baulig  <martin@ximian.com>
11351
11352         * class.c
11353         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
11354         generic type definitions.
11355
11356 2005-06-23  Martin Baulig  <martin@ximian.com>
11357
11358         Fix #75331.
11359
11360         * metadata.c (mono_class_get_overrides): Renamed to
11361         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
11362         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
11363         pass it to mono_get_method_full().
11364
11365 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
11366
11367         * reflection.c (mono_reflection_create_runtime_class): take the
11368         mono_domain_lock in this method. Prevents deadlocks
11369
11370 2005-06-22  Martin Baulig  <martin@ximian.com>
11371
11372         * loader.c (method_from_methodspec): Fix #75330.
11373
11374 2005-06-22  Martin Baulig  <martin@ximian.com>
11375
11376         * reflection.c (type_get_qualified_name): Use
11377         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
11378         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
11379         argument; use it if we don't have an assembly name.
11380
11381 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
11382
11383         * object.c: In mono_message_init, set "copy out" flag for in
11384         parameters with the [Out] flag.
11385
11386 2005-06-21  Martin Baulig  <martin@ximian.com>
11387
11388         * class.c
11389         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
11390         and MONO_TYPE_PTR.
11391
11392 2005-06-21  Martin Baulig  <martin@ximian.com>
11393
11394         * class.c (mono_class_init): Don't initialize `class->fields' for
11395         generic instances since they're initialized again in
11396         compute_field_layout(). 
11397         (compute_field_layout): Set the field's `generic_info' here; fix
11398         #75320. 
11399
11400 2005-06-21  Martin Baulig  <martin@ximian.com>
11401
11402         * class-internals.h
11403         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
11404
11405         * metadata.c (mono_metadata_generic_method_equal): Also
11406         distinguish the `generic_class'; fixes #75334.
11407
11408 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11409
11410         * domain.c:
11411         * appdomain.c:
11412         * domain-internals.h:
11413         * reflection.c: 'domain_assemblies' field is now protected by its own
11414         lock. Don't call into managed code to run the AssemblyLoad event if we
11415         now there are no registered delegates for it.
11416
11417 2005-06-20  Martin Baulig  <martin@ximian.com>
11418
11419         * class.c (mono_class_is_assignable_from): Use a custom version of
11420         mono_class_has_parent() to make things work for generic instances;
11421         fix #75300.
11422
11423 2005-06-20  Martin Baulig  <martin@ximian.com>
11424
11425         * loader.c (method_from_methodspec): Apply a patch from
11426         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
11427
11428 2005-06-20  Martin Baulig  <martin@ximian.com>
11429
11430         * class.c (mono_class_init): Reverted Zoltan's last change; it
11431         breaks generics.
11432
11433 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
11434
11435         * threads.c (wait_for_tids_or_state_change): Add missing locking.
11436
11437 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11438
11439         * socket-io.c: fix the index in the socket array for writable/error
11440         sockets. Fixes bug #75306.
11441
11442 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
11443
11444         * class.c (mono_class_init): Allow interfaces to have static ctors.
11445
11446 2005-06-17  Martin Baulig  <martin@ximian.com>
11447
11448         * loader.c (method_from_methodspec): Use `context->container' when
11449         parsing the `gmethod->inst'.
11450
11451 2005-06-17  Martin Baulig  <martin@ximian.com>
11452
11453         * class.c (mono_type_get_name_recurse): Don't add the assembly
11454         name for type arguments.
11455
11456 2005-06-15  Martin Baulig  <martin@ximian.com>
11457
11458         * reflection.c (mono_image_get_inflated_method_token): Encode
11459         correct klass; fixes #75260.
11460
11461 2005-06-13 Michal Moskal <malekith@nemerle.org>
11462
11463         * icall.c: Make GetCorrespondingMethod/Constructor take
11464         MonoReflectionMethod method not MonoMethod. Removed
11465         MonoType.GetCorrespondingField, and make
11466         MonoGenericType.GetCorrespondingField take name not
11467         MonoClassField.
11468
11469 2005-06-13  Michal Moskal <malekith@nemerle.org>
11470
11471         * reflection.c (field_encode_signature, encode_locals):
11472          Make sizes of buffers for types larger (for big generic types).
11473          (create_generic_typespec,
11474          mono_reflection_sighelper_get_signature_local,
11475          mono_reflection_sighelper_get_signature_field):
11476          Add asserts for too small buffers.
11477
11478 2005-06-15  Martin Baulig  <martin@ximian.com>
11479
11480         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
11481         if our parent is not a dynamic type.
11482
11483 2005-06-15  Martin Baulig  <martin@ximian.com>
11484
11485         * class-internals.h (MonoTypeNameFormat): New enum.
11486
11487         * class.c
11488         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
11489         (mono_type_get_full_name): Removed.
11490         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
11491         argument instead of the boolean's.
11492
11493         * icall.c (ves_icall_System_MonoType_getFullName):
11494         Added `gboolean assembly_qualified'.    
11495
11496         * reflection.h
11497         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
11498
11499         * reflection.c (mono_reflection_parse_type): Parse the new type
11500         name format.
11501
11502 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11503
11504         * icall.c: no need to convert from utf16 to utf8 and then back again
11505         after the call to GetLogicalDrives.
11506
11507 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11508
11509         * icall.c: frombase64. Fix problems exposed by new tests.
11510
11511 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11512
11513         * icall.c: added internal calls for converting char [] and strings in
11514         base64 into byte [].
11515
11516 2005-06-10  Martin Baulig  <martin@ximian.com>
11517
11518         * class.c (mono_class_create_generic_2): Read the nested classes
11519         from the metadata rather than from `gklass->nested_classes' since
11520         `gklass' might not be initialized yet.
11521
11522 2005-06-09  Duncan Mak  <duncan@novell.com>
11523
11524         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
11525         all public headers. Fixes #74919.
11526
11527 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
11528
11529         * domain.c: The key for proxy_vtable_hash is now a pointer
11530         array. Added new GHashFunc and GCompareFunc functions for this.
11531
11532         * class.h: The list of interfaces in MonoRemoteClass is known in
11533         advance and can't grow (we create a new MonoRemoteClass if needed),
11534         so now the interface array can be allocated together with
11535         MonoRemoteClass.
11536         
11537         * object.c: Added a new method create_remote_class_key.
11538         Fixed mono_remote_class so it does not depend on
11539         mono_upgrade_remote_class.
11540         Removed extend_interface_array.
11541         Added new method clone_remote_class(), which makes a copy of a remote
11542         class and adds a new interface or class to it.
11543         mono_upgrade_remote_class() now creates a new remote class (or gets
11544         it from the cache) if an vtable upgrade is needed. In this way
11545         we make sure that other objects sharing the same remote class
11546         don't get the new vtable with unwanted interfaces.
11547         
11548         * object-internals.h:
11549         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
11550         
11551         * marshal.c: Track changes in mono_upgrade_remote_class().
11552
11553 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
11554         * icall.c: Add runtime methods for obtaining members of inflated
11555         class, which were created from supplied non-inflated members. It
11556         is used in internal Get{Method,Constructor,Field} methods in
11557         System.Type
11558
11559 2005-06-09  Martin Baulig  <martin@ximian.com>
11560
11561         * reflection.c
11562         (mono_reflection_bind_generic_method_parameters): Fix #75169.
11563
11564 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11565         * reflection.c (mono_image_basic_init): Define
11566         Version in MonoDynamicAssembly. 
11567         
11568 2005-06-08  Martin Baulig  <martin@ximian.com>
11569
11570         Fix #75136.
11571
11572         * loader.c
11573         (mono_method_signature_full): New public method; takes a
11574         `MonoGenericContext *'.
11575         (find_method): Use mono_method_signature_full() and pass the
11576         klass'es context to it.
11577
11578         * class.c (mono_class_is_inflated_method): Use
11579         mono_method_signature_full() and pass the context to it.
11580
11581 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
11582
11583         * object.c: add proper locking in mono_remote_class_vtable(),
11584         fixes possible memory corruption.
11585
11586 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
11587
11588         * marshal.c (mono_remoting_marshal_init): set
11589         initialized after initialization.
11590
11591 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11592
11593         * locales.c : hush.
11594
11595 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
11596
11597         * object.c (extend_interface_array): fix really silly
11598         memory corrupting / comparison bug.
11599
11600 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11601
11602         * reflection.c: Functions added to support the creation
11603         of CustomAttributeData, which includes Attribute data
11604         used by ReflectionOnly methods.
11605
11606         * reflection.h:  mono_reflection_get_custom_attrs_data and
11607          mono_custom_attrs_data_construct added (functions exposed).
11608
11609          * icall.c: Added mono_reflection_get_custom_attrs_data
11610          as icall.
11611         
11612 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
11613
11614         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
11615         lupus's request.
11616
11617 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
11618
11619         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
11620
11621         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
11622         dynamic DllImportAttribute.
11623
11624         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
11625         dynamic DllImportAttribute.
11626
11627         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
11628         Fixes #75162.
11629
11630 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11631
11632         * threads.c: avoid segfault when an unstarted thread is aborted.
11633
11634 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
11635
11636         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
11637         Returns the name and version of the runtime for reporting.
11638
11639 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11640
11641         * appdomain.c: bump corlib version.
11642         * object-internals.h: new field in MonoReflectionAssembly.
11643
11644 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11645
11646         * object-internals.h: Carlos forgot to add this field.
11647
11648 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11649
11650         * icall.c: Added create_version to create instances
11651         of Version of MonoReflectionAssemblyName. This change helps
11652         the AssemblyName tests to keep running fine.
11653         
11654 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
11655   
11656         * object.c (mono_method_return_message_restore): A somehow less
11657         intrusive fix for #75138.
11658
11659 2005-06-03  Raja R Harinath  <rharinath@novell.com>
11660
11661         * object.c (mono_method_return_message_restore): Fix computation
11662         of expected number of out args.
11663
11664 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11665
11666         * reflection.c (mono_image_get_method_info): Fix the case when the
11667         charset is empty.
11668
11669 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
11670
11671         * object.c: Added missing null check in
11672           mono_method_return_message_restore.
11673
11674 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
11675
11676         * reflection.c (mono_image_get_method_info): Handle the case when
11677         dllentry is empty.
11678
11679 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
11680
11681         * object.c: When creating the vtable for a proxy, take into account
11682         all inherited interfaces, not only the ones registered in
11683         iclass->interfaces. This fixs bug #74996.
11684         Also, in mono_method_return_message_restore, verify that the array
11685         of out args has the expected lengh.
11686
11687 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11688
11689         * socket-io.c: update the timeout in Poll when the call is interrupte.
11690
11691 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11692
11693         * socket-io.c: support abort/suspend in Select_internal after last
11694         change.
11695
11696 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11697
11698         * threadpool.c: remove warning.
11699
11700 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11701
11702         * icall.c:
11703         * socket-io.[ch]: Select_internal uses poll() now when available, thus
11704         removing the 1024 limit from select(). Runtime part of the fix for
11705         bug #71203.
11706
11707 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11708
11709         * socket-io.c: when resolving the addresses for the same
11710         host returned by gethostname(), get the local IPs from the interface
11711         list. Loopback addresses are discarded if the are interfaces up with
11712         non-loopback ones. Fixes bug #63265.
11713
11714 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
11715
11716         * appdomain.c, verify.c, object-internals.h, reflection.c:
11717         bumped corlib number to 36, and added new extra_flags field
11718         to ReflectionMethodBuilder and friends.  Fixes #75060.
11719
11720 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
11721
11722         * gc.c: register a new weak link only if the object is non-null
11723         (fixes bug#75047).
11724
11725 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11726
11727         * culture-info.h : short time pattern too.
11728
11729 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11730
11731         * culture-info.h : expand long time pattern string length.
11732
11733 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11734
11735         * culture-info-table.h : update (more French date format; #72788).
11736
11737 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
11738
11739         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
11740         the method is static. Fixes #75029.
11741
11742 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
11743
11744         * reflection.c: Update the table_idx field of method builders after
11745         saving the module, since it can change. This is a workaround for
11746         bug #74914. 
11747
11748 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11749
11750         * culture-info-table.h : update (additional French date format).
11751
11752 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
11753
11754         * icall.c (ves_icall_type_Equals): Revert last change.
11755         
11756         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
11757
11758         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
11759
11760 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
11761
11762         * class-internals.h: Added executioncontext_class field to 
11763         MonoDefaults structure.
11764         * domain.c: Cache System.Threading.ExecutionContext class in 
11765         mono_defaults.
11766         * object.c: Capture the ExecutionContext for asynchroneous calls in
11767          mono_async_result_new.
11768         * object-internals.h: Added execution_context and original_context 
11769         fields to MonoAsyncResult. Added execution_context to MonoThread.
11770         * security-manager.c|.h: Added mono_get_context_capture_method to 
11771         return the capture method (if required by the security manager or by
11772         the framework version used).
11773         * threadpool.c: Apply capture (if present) ExecutionContext in 
11774         mono_async_invoke and revert to original context after it completes.
11775
11776 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
11777
11778         * culture-info-table.h : updated (real hacky solution for zh-CHT).
11779
11780 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
11781
11782         * culture-info-table.h : zh-CHT related workaround.
11783
11784 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11785
11786         * marshal.c (emit_marshal_custom): Add some error checking and call the
11787         methods in the ICustomMarshaler interface. Fixes #74875.
11788         
11789         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
11790         native->managed wrappers.
11791
11792 2005-05-12  Martin Baulig  <martin@ximian.com>
11793
11794         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
11795         here and use the loader lock.
11796
11797         * mono-debug.c: Properly lock when the debugger is not attached.
11798         (mono_debug_init): Release the initial lock if we're not running
11799         in the debugger.
11800
11801 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         * marshal.c (emit_marshal_custom): Pass through NULL values without
11804         calling the custom marshalling routines.
11805
11806         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
11807         conversion in structures. Fixes #74882.
11808
11809 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
11810
11811         * culture-info-table.h : zh-* cultures were missing.
11812
11813 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
11814
11815         * threads.c: Added a new event background_change_event which is signaled
11816         when a thread changes its background mode.
11817         Moved here several checks previously done in managed code. The checks
11818         require the thread lock, and using the thread lock in managed code
11819         can result in deadlocks.
11820         Merged Start_internal and Thread_internal into a single method. Now 
11821         Thread_internal does all work of creating and starting a thread.
11822         Added icalls for setting and getting the state of the object. Moved from
11823         managed code to avoid locking there.
11824         Added wait_for_tids_or_state_change() which is called instad of
11825         wait_for_tids when waiting for non-backround threads to end. This method
11826         will return if one of the threads ends or the background_change_event
11827         is signaled.
11828         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
11829         the background mode. This method signals the background_change_event
11830         event.
11831         * icall.c:
11832         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
11833         removed Start_internal.
11834         
11835 2005-05-11  Martin Baulig  <martin@ximian.com>
11836
11837         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
11838         to order of some fields to get proper alignment on 64-bit machines.
11839
11840 2005-05-11  Martin Baulig  <martin@ximian.com>
11841
11842         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
11843         changes as they're broken and completely fuck up the debugger.
11844
11845         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
11846
11847 2005-05-10  Martin Baulig  <martin@ximian.com>
11848
11849         * reflection.c (mono_reflection_generic_class_initialize): Don't
11850         call mono_class_setup_parent() here.
11851
11852 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11853
11854         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
11855         send/receive timeout use an integer in milliseconds. We were using a
11856         struct timeval.
11857
11858 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11859
11860         * locales.c:
11861         (internal_get_cultures): reserve the first slot of the array for the
11862         InvariantCulture, which will be filled in managed code.
11863
11864 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
11865
11866         * reflection.c (mono_image_fill_module_table): Initialize the
11867         GENERATION field as well.
11868
11869 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11870
11871         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
11872         Monitor.Enter on the object.
11873
11874 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
11875
11876         * threads.c: Enable the wait for running threads when exiting.
11877         * icall.c: Suspend all threads before exiting.
11878
11879 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
11880
11881         * assembly.c (mono_assembly_load_reference): Fix warning.
11882
11883 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11884
11885         * threadpool.c: changed the default number of threads per cpu. From now
11886         on, the default will be 20 + (5 * number of cpus) instead of 50.
11887
11888 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
11889
11890         * loader.c (mono_method_get_signature_full): Add locking here.
11891
11892 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
11893
11894         * appdomain.c: Moved methods for parsing and freeing assembly
11895         names to assembly.c.
11896         * assembly.c, domain-internals.h: Created public methods for parsing
11897         assembly names. Fixed mono_assembly_load_with_partial_name:
11898         it now finds the best match, taking into account the version,
11899         token and culture specified in the partial name. Also return
11900         the latest version if no version information is specified.
11901
11902 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
11903
11904         * threadpool.c: replace check for SocketAsyncCall class.
11905
11906 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11907
11908         * threadpool-internals.h:
11909         * Makefile.am: added threadpool-internals.h
11910
11911         * threadpool.c: call mono_unhandled_exception on exceptions not handled
11912         that happen in threadpool threads (tested on MS).
11913         (mono_thread_pool_remove_socket): new function that dispatch any pending
11914         AIO call on a socket that is closing. By now only epoll really needs it,
11915         as select/poll wake up when the socket closes.
11916
11917
11918         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
11919
11920 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
11921
11922         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
11923
11924 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
11925
11926         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
11927
11928 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
11929
11930         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
11931         has an abort request, convert it into a suspend request.
11932
11933 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
11934
11935         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
11936         warning for the usage of `UnmanagedFunctionPointerAttribute' which
11937         is not supported yet.
11938
11939 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11940
11941         * image.c: register assemblies loaded from data (bundles) in the loaded
11942         assemblies hash. Fixes bug #74772.
11943
11944 2005-04-29  Martin Baulig  <martin@ximian.com>
11945
11946         * class.c (mono_type_get_name_recurse): Update to the new naming
11947         schema from the latest .NET 2.x beta2.
11948         (mono_class_setup_vtable_general): If we're a generic instance,
11949         copy the vtable from our generic type definition and inflate all
11950         the methods in it.
11951
11952         * loader.c (find_method): Update to the new naming schema from the
11953         latest .NET 2.x beta2.
11954
11955 2005-04-29  Raja R Harinath  <harinath@gmail.com>
11956
11957         * class.c (mono_class_init): Add a mono_loader_unlock to the
11958         #74734 fix.
11959
11960 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
11961
11962         * icall.c (ves_icall_System_Environment_Exit): Remove the 
11963         suspend_all_other_threads () call for the time being, since it can hang.
11964
11965         * threads.c (mono_thread_manage): Similarly, disable the waiting for
11966         the background threads to exit, since it can also hang.
11967
11968         * class.c (mono_class_init): Applied patch from Ankit Jain 
11969         (radical@gmail.com). Avoid pending init errors when a field refers
11970         to a nested class using a typeref. Fixes #74734.
11971
11972         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
11973         this for dynamic modules.
11974
11975 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11976
11977         * threads.c: don't wait for threads that are in the process of aborting
11978         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
11979         and waiting for background threads to finish. This makes xsp and
11980         mod-mono-server exit without random length delays and/or hangs.
11981
11982 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11983
11984         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
11985
11986 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
11987
11988         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
11989         dynamic types to prevent infinite loops. Fixes #74727.
11990
11991         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
11992         ..._is_assignable_to.
11993
11994 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
11995
11996         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
11997
11998 2005-04-25  Martin Baulig  <martin@ximian.com>
11999
12000         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
12001
12002         * domain.c
12003         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
12004
12005         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
12006
12007         * reflection.c (build_compressed_metadata): Set metadata header
12008         version to 2.0.
12009
12010 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
12011
12012         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
12013         number into an integral and a decimal part. Fixes #70473.
12014
12015         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
12016
12017 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
12018
12019         * culture-info-table.h : reflected the latest locale-builder output.
12020
12021 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12022
12023         * threadpool.c: check for SuspendRequested too when deciding if
12024         mono_thread_interruption_checkpoint should be called.
12025
12026 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12027
12028         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
12029         * threads.c: remove interruption_mutex and use Interlocked instead. When
12030         suspending all the threads, wait for all the suspended events at once.
12031         If we're shutting down and get an APC that is going to be queued,
12032         call mono_thread_execute_interruption immediately, as the thread might
12033         be sleeping on a pthread condition or mutex.
12034
12035         * icall.c: call mono_runtime_set_shutting_down before suspending the
12036         threads.
12037
12038         Fixes bug #74693. And now xsp is happier when exiting.
12039
12040 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
12041
12042         * loader.c (mono_stack_walk): Fix #74690.
12043
12044 2005-04-22  Martin Baulig  <martin@ximian.com>
12045
12046         * mono-debug.h (MonoDebugMethodJitInfo): Added
12047         `MonoDebugMethodJitInfo *jit'.
12048
12049         * mono-debug.c (mono_debug_read_method): Cache the
12050         MonoDebugMethodJitInfo in `address->jit'.
12051         (mono_debug_free_method_jit_info): New public method.
12052
12053 2005-04-22  Martin Baulig  <martin@ximian.com>
12054
12055         * class.c (mono_class_is_assignable_from): Disallow
12056         type parameter -> interface.
12057
12058 2005-04-21  Dick Porter  <dick@ximian.com>
12059
12060         * threads.c (mono_thread_create): Turn an assertion into an error.
12061
12062 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
12063
12064         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
12065         
12066         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
12067         Fix some gcc 4.0 warnings.
12068
12069 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
12070
12071         * file-io.c: fix alt dir separator char on unix systems
12072         and cleanup (fixes bug #71214).
12073
12074 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
12075
12076         * marshal.c: Use CALLVIRT instead of CALL when dispatching
12077         a call to a remote domain, since the method may be an
12078         interface method in the client domain. This fixes bug #74192.
12079
12080 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12081
12082         * threadpool.c: recv/send are now performed before going back to managed
12083         code to save one transition.
12084
12085 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12086
12087         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
12088
12089         * metadata/threadpool.c: removed hack to workaround the bug above.
12090
12091         Fixes bug #74618.
12092
12093 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
12094
12095         * reflection.c reflection.h: Fix handling of parameter defaults in
12096         dynamic methods. Also fixes handling of parameter attributes.
12097         Fixes #74609.
12098
12099         * mono-debug.c (mono_debug_close_image): Fix warning.
12100
12101 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12102
12103         * socket-io.h: replaced old unused field with new 'blocking'.
12104         * threadpool.c: restore socket blocking state on windows(tm).
12105
12106 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
12107
12108         * icall.c: don't return the codebase in the AssemblyName[] returned by
12109         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
12110         * object-internals.h: Removed FIXME (fields were presents) and fixed
12111         versioncompat declaration.
12112
12113 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12114
12115         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
12116         not closed, so don't cleanup when it happens.
12117
12118 2005-04-13  Chris Toshok  <toshok@ximian.com>
12119
12120         * mono-debug-debugger.h: change prototype for
12121         mono_debugger_lookup_type.
12122
12123         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
12124         this function, although it should probably be named
12125         mono_debugger_init_type.
12126
12127 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12128
12129         * threadpool.c: fix non-AIO case.
12130
12131 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
12132
12133         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
12134         the built-in profiler to measure just JIT compilation times.
12135
12136 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12137
12138         * threadpool.c: the epollfd might be closed by another thread at
12139         any time, so ignore EBADF at treat it as a "we're closing" sign.
12140
12141 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12142
12143         * threadpool.c: release the semaphores with a count equals to the number
12144         of working threads in both IO and regular pools. Fixed typo that messed
12145         up the count of IO pool threads. Don't initialize the pipe handles if
12146         we're using epoll.
12147
12148 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12149
12150         * threadpool.c: some systems don't like a NULL when deleting the socket
12151         from epoll.
12152
12153 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12154
12155         * threadpool.c: fix semaphore allocation.
12156
12157 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12158
12159         * threadpool.c: added epoll() based implementation for asynchronous IO
12160         that is used instead of the default poll() when available.
12161         It can be disabled by setting MONO_DISABLE_AIO.
12162
12163 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12164
12165         * threadpool.c: windows needs 'closesocket' and instead of returning
12166         0 when the stream is closed while in select, it returns -1. Fixes bug
12167         #74573.
12168
12169 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
12170
12171         * class.c (class_compute_field_layout): Fix the regression caused by
12172         the previous try.
12173
12174 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12175
12176         * threadpool.c: separate pool for socket async. IO.
12177         * threadpool.h: mono_max_worker_threads is not a global any more.
12178
12179 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
12180
12181         * class.c (class_compute_field_layout): Fix #74549.
12182
12183 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12184
12185         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
12186         use 2 connected sockets instead.
12187
12188 2005-04-08  Miguel de Icaza  <miguel@novell.com>
12189
12190         * mono-config.c: Add new entry point for mkbundle
12191         mono_config_parse_memory. 
12192
12193 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12194
12195         * threadpool.c: removed another unused function.
12196
12197 2005-04-08  Ankit Jain  <radical@corewars.org>
12198
12199         * reflection.c (get_default_param_value_blobs): Add 'types'
12200         parameter to get the types encoded in the constant table.
12201         (mono_param_get_objects): Use the type from the constant table,
12202         not the type of the parameter, when creating default values.
12203         Handle null default values correctly.
12204
12205 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12206
12207         * file-io.c:
12208         * file-io.h:
12209         * threadpool.c:
12210         * threadpool.h:
12211         * icall.c:
12212         * socket-io.c: removed dead code for async IO.
12213
12214 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12215
12216         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
12217
12218         * threadpool.c: intercept socket async. calls and pass them to a thread
12219         that is polling and dispatching the job items to the threadpool as
12220         socket become ready. Fixes bugs #71217, #71933.
12221
12222         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
12223         between char and short/ushort arrays.
12224
12225         * socket-io.c: remove dead code.
12226
12227 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
12228
12229         * locales.c,
12230           icall.c : removed InternalToUpper_Comp() and
12231           InternalToLower_Comp().
12232
12233 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
12234
12235         * char-conversions.h : The tables were incorrectly generated. Should
12236           be generated against invariant culture.
12237
12238 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
12239
12240         * object.c (mono_runtime_invoke_array): Fix return value when 
12241         passing pre-created valuetype objects to ctors.
12242
12243         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
12244         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
12245         Fixes #74338.
12246
12247 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
12248
12249         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
12250         only used with --security and hides the wrong corlib version error.
12251
12252 2005-03-30  Joshua Tauberer  <tauberer@for.net>
12253
12254         * class.c: Changed mono_class_name_from_token so that types
12255         outside of a namespace don't have an initial period.  Improved
12256         the g_warning message used in _mono_class_get when loading
12257         fails.
12258         * assembly.c: In mono_assembly_load_reference, when an assembly
12259         can't be found, "No such file or directory" is misleading and
12260         unhelpful because a few paths were checked for the presence of
12261         the assembly.  When that happens (ENOENT), display a nicer
12262         message indicating the directories that were searched.  In all
12263         cases, the warning is made easier to read for non-hackers.
12264
12265 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
12266
12267         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
12268         project/solution.
12269         * appdomain.h|domain.c: Removed inline from functions.
12270         * appdomain.c: Reduced warnings when compiling on windows.
12271         * icall.c: Fixed output_debug declaration to gunichar2*.
12272         * mono-config.c: Reduced warnings when compiling on windows.
12273         * rand.c: Added missing "windows.h". Added missing return value.
12274         * rawbuffer.c: Added missing winsock2.h for windows.
12275         * sysmath.h: Added mono-compiler.h header to allow/ease 
12276         compilation with non-GCC compilers.
12277         * threads.c: Fixed declarations to compile with VS.NET C compiler.
12278         Removed cast warnings.
12279
12280         Adapted from the work of J Lothian (for VC6).
12281
12282 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
12283
12284         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
12285         from default_path.
12286
12287 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
12288
12289         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
12290         the 2.0 profile.
12291
12292 2005-03-27  Raja R Harinath  <harinath@gmail.com>
12293
12294         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
12295         has to be in $(exec_prefix).  $(prefix) is for arch-independent
12296         stuff, and it would probably use $(prefix)/share rather than
12297         $(prefix)/lib.
12298
12299 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12300
12301         * console-io.c: added 2 includes that might be missing.
12302
12303 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
12304
12305         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
12306         profile.
12307
12308         * reflection.c (create_custom_attr): Allocate the params array using
12309         alloca so it gets GC tracking.
12310
12311 2005-03-23  Chris Toshok  <toshok@ximian.com>
12312
12313         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
12314         out some spew.
12315
12316 2005-03-24  Raja R Harinath  <rharinath@novell.com>
12317
12318         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
12319         changes to pick up any changes in prefix, etc.
12320
12321 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
12322
12323         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
12324         
12325         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
12326         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
12327
12328 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
12329
12330         * class-internals.h object-internals.h class.c reflection.c: Extend the
12331         mono_lookup_dynamic_token () function to return the class of the
12332         token as well. 
12333
12334         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
12335         well. Fixes #73848.
12336
12337 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
12338
12339         * security-manager.c: Skip inheritance checks for intra-corlib
12340         class inheritance and method overrides. This skips a lot of checks
12341         and (anyway) permissions cannot work until corlib is loaded.
12342
12343 2005-03-23  Martin Baulig  <martin@ximian.com>
12344
12345         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
12346         MONO_TYPE_GENERICINST.  
12347
12348 2005-03-23  Martin Baulig  <martin@ximian.com>
12349
12350         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
12351
12352 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12353
12354         * class.c: added locking comments to some functions.
12355         Cache the interface offsets arrays (saves about 20 KB
12356         of runtime memory in a typical app).
12357         Reduce the time overhead in mono_class_setup_supertypes ().
12358
12359 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
12360
12361         * icall.c: speedup and fix leaks in GetMethodsByName and
12362         GetPropertiesByName.
12363
12364 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12365
12366         * reflection.c: some locking fixes.
12367
12368 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
12369
12370         * metadata.c: added missing break in case statement.
12371
12372 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
12373
12374         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12375         typedbyref return values. Fixes #73941.
12376
12377 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
12378
12379         * security-manager.c|h: Added demandunmanaged method and 
12380         suppressunmanagedcodesecurity class to MonoSecurityManager.
12381         Renamed aptc class to allowpartiallytrustedcallers.
12382
12383 2005-03-17  Martin Baulig  <martin@ximian.com>
12384
12385         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
12386
12387 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12388
12389         * file-io.c: disabled file async. IO using aio_*. It uses the
12390         threadpool now. Workaround for bug #73718.
12391
12392 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12393
12394         * assembly.h, mono-config.c: added code to deal with bundled configs
12395         for bundled assemblies.
12396
12397 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
12398
12399         * *.c, private.h: cleanup, removing old private.h header file.
12400
12401 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
12402
12403         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
12404         and throw_on_unmappable_char attributes.
12405
12406 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
12407
12408         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
12409         _ProcessName_internal.
12410
12411 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
12412
12413         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
12414         #73631.
12415
12416         * icall.c threads.c threads-types.h: Remove slothash icalls as they
12417         are no longer used.
12418
12419 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
12420
12421         * object.c (compute_class_bitmap): Add support for generics. Fixes
12422         #73527.
12423
12424 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
12425
12426         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
12427
12428 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12429
12430         * filewatcher.c: commented out the code for windows watcher, as we don't
12431         use it (we use the managed implementation instead).
12432
12433 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
12434
12435         * object-internals.h (MonoThread): Remove 'unused1' field.
12436
12437         * appdomain.c: Bump corlib version.
12438
12439         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
12440
12441         * reflection.c (mono_reflection_create_runtime_class): Remove the
12442         AssemblyBuilder.Save optimization since it causes too many problems.
12443
12444 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
12445
12446         * exception.c|h: Added mono_get_exception_reflection_type_load to
12447         create a ReflectionTypeLoadException object.
12448         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
12449         to return NULL is a InheritanceDemand fails during reflection. Updated
12450         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
12451         ReflectionTypeLoadException if an InheritanceDemand fails during 
12452         reflection. Added icall mapping for GetLinkDemandSecurity.
12453         * security-manager.c|h: Added ves_icall_System_Security_
12454         SecurityManager_GetLinkDemandSecurity internal call to return the
12455         class and methods permissions set for a LinkDemand. Removed unused
12456         fields in MonoSecurityManager.
12457
12458 2005-03-10  Martin Baulig  <martin@ximian.com>
12459
12460         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
12461         it's a generic instance.
12462
12463 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
12464
12465         * reflection.c (mono_get_object_from_blob): Applied patch from
12466         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
12467
12468         * class.c (mono_class_is_assignable_from): Another try at fixing 
12469         #73469 without breaking anything.
12470
12471 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
12472
12473         * class.c: (mono_class_is_assignable_from): Revert the last changes
12474         since they don't work with generics.
12475         
12476         * class.c (mono_class_is_assignable_from): Fix build bustage.
12477
12478         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
12479         the managed IsAssignableFrom method. Fixes #73469.
12480
12481         * reflection.c (mono_reflection_call_is_assignable_from): New helper
12482         function.
12483
12484 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
12485
12486         * object.c (mono_load_remote_field_new): Fix returning uninitialized
12487         memory when the remoting callback does not sets the out arguments.
12488         Fixes #73007.
12489
12490         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
12491         by mistake.
12492
12493         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
12494
12495         * object-internals.h (MonoStackFrame): Sync with managed object layout.
12496
12497         * appdomain.c: Bump corlib version.
12498
12499 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
12500
12501         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
12502         function.
12503
12504         * threads.c (mono_thread_attach): Detect threads which are not started
12505         by the GC pthread wrappers.
12506
12507 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
12508
12509         * icall.c: Added new icall for RNG.
12510         * rand.c|h: Added new icall to open the RNG. This allows to share a 
12511         single handle on Linux to access /dev/urandom and fix #73183.
12512
12513 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
12514
12515         * object.c: setting the new vtable in a transparent proxy object must
12516         not change the GC descriptor.
12517
12518 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12519
12520         * object.c: fixed compilation without GCJ support.
12521         * reflection.c: for runtime-created types ensure klass->has_references
12522         is correct (bug #73215).
12523
12524 2005-03-02  Martin Baulig  <martin@ximian.com>
12525
12526         * class.c (mono_class_is_assignable_from): Make this work if
12527         `oklass' is a generic instance; fixes #72831.
12528
12529 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
12530
12531         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
12532         with hasthis set.
12533         
12534         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
12535
12536         * marshal.c: Reorganize native->managed marshalling code to also use
12537         the emit_marshal_... functions.
12538
12539 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
12540
12541         * object.c: typed allocs have issues with bitmap sizes > 30,
12542         so check for max_set >= 30.
12543
12544 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
12545
12546         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
12547         managed code. Fixes #73012.
12548
12549         * metadata.h (MonoMarshalSpec): Add elem_mult field.
12550
12551         * metadata.c reflection.c: Load/Emit elem_mult as well.
12552         
12553         * metadata.h (MonoMarshalSpec): Add comment.
12554
12555         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
12556
12557         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
12558         num_elem to -1 if not given.
12559
12560         * object-internals.h (MonoReflectionMarshal): Add has_size field.
12561
12562         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
12563         given values.
12564
12565 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
12566
12567         * null-gc.c (mono_gc_free_fixed): Was not compilable.
12568
12569 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
12570
12571         * reflection.c (encode_marshal_blob): Encode param_num field as well.
12572
12573         * object-internals.h (MonoReflectionMarshal): Add param_num field.
12574
12575 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
12576
12577         * object.c: generalized the reference bitmap creation
12578         and added hooks for the new GC.
12579         * class-internals.c: removed the gc_bitmap field from MonoClass.
12580
12581 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12582
12583         * domain.c: help the compiler to produce better code
12584         in mono_jit_info_table_find ().
12585
12586 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12587
12588         * object.c: make all allocations look typed.
12589
12590 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12591
12592         * socket-io.c: load Mono.Posix if it's not loaded already
12593         (fixes bug#73033).
12594
12595 2005-02-24  Martin Baulig  <martin@ximian.com>
12596
12597         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
12598         * reflection.c (dup_type): Likewise.
12599
12600 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
12601
12602         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
12603         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
12604
12605 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12606
12607         * domain.c, threads.c, object-internals.h: make the critical thread
12608         local vars use the fast access mode (even when we're compiled in
12609         a lib). Provide accessors to be used by the jit during codegen.
12610
12611 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12612
12613         * appdomain.c: Changed hook functios behavior to include
12614         support for the reflection only assemblies. Some icalls were changed
12615         to support the mentioned assemblies too. Signatures of static methods
12616         try_assembly_resolve and real_load now have an additional parameter:
12617         refonly.
12618
12619         * assembly.c: General changes to mono_assembly_ methods to support
12620         reflection only api. Functions mono_assembly_open, mono_assembly_load,
12621         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
12622         suffix, to support an additional gbool parameter to specify whether
12623         the assembli is reflection only or not. Created some new hook functions 
12624         to add support for reflection only assemblies. Signatures of static 
12625         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
12626         have now an additional parameter: refonly.
12627
12628         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
12629         indicating whether the assembly is reflection only or not.
12630
12631         * exception.c: Add mono_get_exception_invalid_operation.
12632
12633         * icall.c: Throw an InvalidOperationException when trying to invoke
12634         a property/method/event, or trying to set/get the value of a field.
12635         Also add an icall to retrieve the ref_only flag to the
12636         MonoReflectionAssembly.
12637
12638 2005-02-23  Chris Toshok  <toshok@ximian.com>
12639
12640         Part of fix for #72827.
12641         * mono-debug.c (mono_debug_add_method): add lexical block data to
12642         the info we write.  Kind of a hack at the moment - we copy the
12643         lexical block info from the MonoDebugMethodInfo to the
12644         MonoDebugMethodJitInfo here, before writing it.
12645         (mono_debug_read_method): read the lexical block info.
12646
12647         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
12648
12649         * debug-mono-symfile.h: add lexical block support.
12650
12651         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
12652         support.
12653
12654 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12655
12656         * loader.c (mono_lookup_pinvoke_call): Fix warning.
12657
12658         * object.c (mono_runtime_free_method): Call mono_free_method () and
12659         put the TODOs there.
12660
12661         * loader.c (mono_free_method): Free up most memory allocated for 
12662         dynamic methods.
12663
12664 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
12665
12666         * reflection.c: properly flag a Type argument to a
12667         named custom attr value (bug #72248).
12668
12669 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
12670
12671         * reflection.c: reduce code duplication in named custom
12672         attribute encoding.
12673
12674 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
12675
12676         * reflection.c: properly encode custom attrs of type object
12677         (bug #72649).
12678
12679 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
12680
12681         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
12682
12683 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
12684
12685         * socket-io.c: load System.dll if it's not loaded already
12686         (bug #72850 and #70477).
12687
12688 2005-02-21  Martin Baulig  <martin@ximian.com>
12689
12690         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
12691         generic instances.
12692
12693 2005-02-21  Martin Baulig  <martin@ximian.com>
12694
12695         * reflection.c (mono_image_build_metadata): We also need to
12696         "fixup" the MethodImpl table after we computed the final method
12697         indices.  Call fixup_methodimpl() to do that.
12698         (fixup_methodimpl): New private method.
12699
12700 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
12701
12702         * assembly.c: special case mscorlib.dll (bug#72536),
12703         patch from Carlos Alberto Cortez.
12704
12705 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * threads-types.h threads.c: Fix build bustage.
12708
12709         * threads.c: Use a union for long<->double conversions.
12710
12711         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
12712         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
12713
12714         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
12715         containing the checkpoint call with NOT_TAKEN.
12716         
12717         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
12718         checkpoint before pushing the arguments, so they won't have to be
12719         spilled to stack.
12720
12721 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12722
12723         * domain.c, assembly.c, domain-internals.h: make some data
12724         const and relocation-free.
12725
12726 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
12727
12728         * object.c, appdomain.c, class-internals.h: introduce the
12729         MonoClassRuntimeInfo structure to hold the info needed to
12730         use a class at runtime. Made mono_class_vtable() lock-free
12731         for all the appdomains.
12732
12733 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
12734
12735         * metadata-internals.h, image.c: introduce a per-image mempool to
12736         be used for memory that has the same lifetime as the image.
12737
12738 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
12739
12740         * domain.c: In mono_init_internal(), instead of selecting the first
12741         runtime version supported by an executable, get a list of all
12742         supported versions and select the one for which an mscorlib exists
12743         (since even if the runtime supports a given version, it doesn't mean
12744         that the framework for that version is installed).
12745         Modified get_runtimes_from_exe to support this behavior.
12746         In supported_runtimes, added information about additional system
12747         assembly versions.
12748         
12749         * assembly.c: Added support for more than one system assembly version
12750         per runtime version. Updated the assembly list.
12751         In mono_assembly_remap_version, removed the initial version check,
12752         since we don't know to which version we need to compare until we
12753         get the version set on which the assembly is based.
12754         Moved the code for loading corlib into the new method
12755         mono_assembly_load_corlib(), so it can be used by the initialization
12756         code.
12757         
12758         * domain-internals.h: Updated data structures and added declaration
12759         for mono_assembly_load_corlib.
12760
12761 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12762
12763         * reflection.c (resolve_object): Fix the creation of the signature in 
12764         the SignatureHelper case.
12765
12766         * assembly.c (mono_assembly_remap_version): Fix binary search.
12767         
12768 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
12769  
12770         * class.c: Added inheritance check when a method is overloaded (from a
12771         virtual method or when implementing an interface) and when a class is
12772         inherited. Added functions to set a failure for a class and to 
12773         retreive the exception from a failure.
12774         * class-internals.h: Added fields to MonoClass to keep the exception
12775         information status for inheritance (or other exceptions) to be thrown
12776         later (i.e. not at load time).
12777         * object.c: Throw the inheritance SecurityException when a type is to 
12778         be created with either class or method inheritance violations.
12779         * reflection.c|h: Fix when getting declsec from a class. Removed 
12780         unrequired code for class. Improved sanity in parameter naming.
12781         * security-manager.c|h: Added functions to check for class and method
12782         inheritance.
12783
12784 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
12785
12786         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
12787         and has_finalize in dynamic types as well.
12788
12789 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
12790
12791         * culture-info-table.h : fixed currency format for en-GB (and so on).
12792
12793 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
12794
12795         * gc.c: ensure the GC handles never have 0 as a value.
12796
12797 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12798
12799         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
12800         a pointer to a struct to unmanaged code. Fixes #72625.
12801
12802 2005-02-16  Martin Baulig  <martin@ximian.com>
12803
12804         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
12805
12806 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
12807
12808         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
12809
12810 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12811
12812         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
12813
12814         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
12815         UnmanagedFunctionPointerAttribute, use it for determining calling convention
12816         etc. Fixes #71471.
12817
12818         * reflection.c (mono_custom_attrs_get_attr): New helper function.
12819
12820         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
12821
12822 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
12823
12824         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
12825         changes to make the current context a field in MonoThread.
12826
12827 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
12828
12829         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
12830         the last change.
12831         
12832         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
12833         extracted from mono_marshal_get_native_wrapper.
12834
12835         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
12836         to create wrappers around native functions.
12837
12838         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
12839         delegates for arbitrary function pointers. Fixes #71472.
12840
12841 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
12842
12843         * threads.c: cleaned up the code a little.
12844
12845 2005-02-15  Martin Baulig  <martin@ximian.com>
12846
12847         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
12848         the data table.
12849
12850         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
12851         allocate larger chunks if needed.
12852
12853 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12854
12855         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
12856         in by mistake.
12857
12858 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
12859
12860         * domain.c: keep the domains in an array and ensure the domain ids
12861         are kept small, so they can be used as indexes to domain-specific data
12862         with a small memory overhead.
12863
12864 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
12865
12866         * icall.c: Handle byref types in Type icalls. Fixes #72544.
12867
12868 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
12869
12870         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
12871
12872 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
12873
12874         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
12875
12876         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
12877         values.
12878
12879         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
12880         
12881 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
12882
12883         * domain-internals.h: add the hashtable here.
12884
12885         * class-internals.h: Remove `info' from MonoMethod
12886
12887         * domain.c: Add a new hashtable, jit_trampoline_hash
12888
12889 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
12890
12891         * object.c: don't set the value of static fields
12892         (fixes bug#72494).
12893
12894 2005-02-11  Martin Baulig  <martin@ximian.com>
12895
12896         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
12897         (mono_debug_add_method): Silently ignore the method if it's too big.
12898         (mono_debug_add_type): Likewise.
12899
12900 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
12901
12902         * threads.c, appdomain.c: remove #ifdefs from the code.
12903
12904 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
12905
12906         * metadata-internals.h: Added flags to MonoAssembly to cache the most
12907         common security informations. This allows us to stay in unmanaged code
12908         when doing LinkDemand and it's special cases (except for the first 
12909         time for initialization). The flags a very much used with --security.
12910         * reflection.c|h: Added code to get declarative security attributes 
12911         for LinkDemand and InheritanceDemand. This required to refactor the
12912         existing code for Demand.
12913         * security-manager.c|h: Added new method fields for the special cases
12914         of LinkDemand.
12915
12916 2005-02-10  Martin Baulig  <martin@ximian.com>
12917
12918         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
12919         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
12920
12921 2005-02-10  Martin Baulig  <martin@ximian.com>
12922
12923         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
12924         debugging code; this is almost a complete rewrite.
12925
12926         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
12927
12928 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
12929
12930         * domain.c, object.h: expose mono_string_equal () and 
12931         mono_string_hash ().
12932         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
12933         it's implemented in managed code.
12934
12935 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
12936
12937         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
12938         lo leak objects between appdomains.
12939
12940 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
12941
12942         * assembly.c: old compilers compilation fix from 
12943         robertj@gmx.net (Robert Jordan).
12944
12945 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
12946
12947         * class-internals.h: Little reminder for the future.
12948
12949         * debug-helpers.c: Fix up wrapper_type_names
12950
12951 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
12952
12953         * image.c, metadata-internals.h: when loading an image from a file,
12954         mmap all of it and use the same codepaths as when using a
12955         in-memory image: the code is simpler and we use less memory
12956         (both writable and readonly).
12957
12958 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
12959
12960         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
12961         API to alloc runtime data structures that need to be tracked by the
12962         GC and contain pointers.
12963         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
12964         make the code more readable and eventually use a different GC.
12965
12966 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
12967
12968         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
12969         for out arguments.
12970         
12971 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
12972
12973         * object.c: In release_type_locks(), don't release the cctor lock
12974         if it has already been released. This fixes a crash in the
12975         thread5 test.
12976
12977 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
12978
12979         * gc.c, marshal.c, icall.c: register a delegate for finalization
12980         only when the native function pointer has been allocated for it.
12981
12982 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
12983
12984         * object.c: cleaned up some code, allocate objects that are
12985         pointer free with the atomic malloc variant. Allocate memory
12986         for static data from the mempool if it's pointer-free.
12987         Allocate the bounds array at the end of the array data, when needed.
12988         * object-internals.h, object.h: move a private function in a private
12989         header.
12990         * class.c: handle missing case in tracking references in fields.
12991
12992 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
12993
12994         * class.c, class-internals.h: keep track if a type has
12995         reference fields in either the instance or static fields.
12996
12997 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
12998
12999         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
13000         and renamed to MonoRuntimeInfo. Added fields to store the expected
13001         framework assembly version. Changed mono_get_framework_version and
13002         mono_get_runtime_version for a single mono_get_runtime_info method.
13003         
13004         * assembly.c: Added method to remap system assembly versions to the
13005         current executing runtime version. Removed old mapping code.
13006         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
13007         
13008         * icall.c, reflection.c: Track api changes.
13009
13010 2005-02-06  Miguel de Icaza  <miguel@novell.com>
13011
13012         * loader.c (method_from_memberref): Improve error reporting,
13013         produce the class name instead of the typeref/typedef index. 
13014
13015 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
13016
13017         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
13018
13019 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13020
13021         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
13022         stdcall and charset name mangling.  Reorganize the code and add
13023         some tracing stuff.
13024
13025 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
13026
13027         * monodiet.c: More iters!
13028
13029         * marshal.c: Iter usage.
13030
13031         * icall.c: Iter usage.
13032
13033         * object.c: Use iters.
13034
13035         * debug-helpers.c: More iters
13036
13037 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13038
13039         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
13040         under win32.
13041
13042 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
13043
13044         * mono-debug-debugger.c: use iters
13045
13046         * class.c, class-internals.h: mono_class_setup_events is static
13047         now
13048
13049         * All callers: use iters
13050
13051 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
13052
13053         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
13054         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
13055
13056 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
13057
13058         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
13059
13060         * marshal.h: Add prototypes for ldfld/stfld_remote.
13061
13062         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
13063         this is called during startup.
13064         
13065 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
13066
13067         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
13068         MonoThreadsSync struct private in monitor.c. Changed the way
13069         MonoThreadsSync is allocated so it's faster and there is no
13070         need to keep track of it with a finalizer and it uses less memory.
13071         This also finally allows us to allocate mono objects as ptrfree when
13072         there are no reference fields.
13073
13074 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
13075
13076         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
13077         disappearing link to the GC interface and use them to simplify
13078         the gchandles code.
13079
13080 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
13081
13082         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
13083         stfld_remote which call mono_load/store_field_new. This allows methods
13084         calling ldfld/stfld wrappers to be AOTed.
13085
13086         * console-io.c: Include sys/filio.h under solaris.
13087         
13088         * console-io.c: Include curses.h if needed correctly.
13089
13090 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
13091         
13092         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
13093         method->klass as well.
13094
13095         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
13096
13097         * class.c (mono_class_init): Switch on lazy initialization of 
13098         methods.
13099
13100         * class.c (mono_class_get_finalizer): Handle the case when the 
13101         finalizer is inherited.
13102
13103 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13104
13105         * console-io.c: <curses.h> is needed by term.h on solaris.
13106
13107 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
13108
13109         * icall.c, class-internals.h, monodiet.c, class.c: Remove
13110         mono_class_setup_properties where possible. Remove this ftn from
13111         the header file, and make it static.
13112
13113 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
13114
13115         * loader.c: Add missing setup_... call.
13116
13117         * class.c: Add missing setup_... calls.
13118
13119         * class.c (mono_class_init): Switch on lazy initialization of 
13120         the generic vtable.
13121         
13122         * class.c (mono_class_init): Fix generics broken by the recent changes.
13123
13124         * monodiet.c (handle_type): Add missing setup_... calls.
13125
13126         * class.c: Back out garbage in previous patch.
13127         
13128         * class.c: Add missing setup_... calls.
13129
13130         * class.c (mono_class_get_method_from_name_flags): Avoid calling
13131         mono_class_setup_methods () if possible.
13132
13133         * class-internals.h (MonoClass): Add 'has_cctor' flag.
13134
13135         * class-internals.h (MonoCachedClassInfo): New structure.
13136
13137         * class.c: Initialize properties and events fields of MonoClass lazily.
13138
13139         * class.c: Add infrastructure for lazily initializing the methods and
13140         vtable fields of MonoClass. Not yet used.
13141
13142         * class.c (mono_class_get_finalizer): New helper function.
13143
13144         * class.c: Add infrastructure for loading some class related data from
13145         an AOT file.
13146
13147         * object.c: Add infrastructure for initializing the vtable from data
13148         in the AOT file.
13149
13150         * gc.c (run_finalize): Use mono_class_get_finalizer ().
13151
13152         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
13153         appropriate initialization function before accessing parts of the
13154         MonoClass structure.
13155
13156         * marshal.c: Fix warnings.
13157         
13158         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
13159
13160         * mono-debug-debugger.c (get_exception_message): Use 
13161         mono_class_get_method_from_name_flags ().
13162
13163 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
13164
13165         * reflection.c, appdomain.c: Replace a few manual searches that
13166         Zoltan missed. (Paolo approved this part of my initial patch).
13167
13168 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
13169
13170         * profiler.c: disable recording statistical events at report time.
13171
13172 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13173
13174         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
13175         to byteswap arrays of enum values, too (bug #72080).
13176
13177 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
13178
13179         * appdomain.c (set_domain_search_path): Allow this to be called if
13180         domain->setup is not yet set.
13181
13182         * loader.c (mono_method_get_index): New helper function.
13183
13184         * loader.c reflection.c: Use mono_method_get_index ().
13185
13186         * class.c (mono_class_get_method_from_name_flags): New helper method.
13187
13188         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
13189         this.
13190
13191         * class.c (mono_class_get_cctor): New helper method.
13192
13193         * string-icalls.c object.c class.c marshal.c reflection.c: Use
13194         mono_class_get_method () to look up methods.
13195
13196 2005-02-01  Miguel de Icaza  <miguel@novell.com>
13197
13198         * console-io.c: Fix the build, this should work on Windows.
13199
13200 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
13201
13202         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
13203         be set to null to keep things valid
13204
13205 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13206
13207         * icall.c: added Console 2.0 icalls.
13208         * Makefile.am: added console-io.[ch]
13209         * console-io.[ch]: internal calls for Console 2.0 API.
13210
13211 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13212
13213         * class.c: make sure we consider all the interfaces
13214         when calculating max_interface_id (bug found by
13215         Jeroen Frijters running ikvm).
13216
13217 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
13218
13219         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
13220         valuetype fields to null.
13221
13222         * object.c (set_value): Ditto. Fixes #71669.    
13223
13224 2005-01-31  Martin Baulig  <martin@ximian.com>
13225
13226         * metadata.c (mono_metadata_has_generic_params): New public
13227         function; checks whether something is a generic method.
13228
13229 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
13230
13231         * appdomain.c: fix infinite recursion when adding assemblies.
13232
13233 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
13234
13235         * object.c: Fix small typo to return all items for Environment.
13236         GetCommandLineArgs.
13237
13238 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13239
13240         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
13241         reflection.c: more domain and assembly-unload related fixes
13242         and memory leaks plugs.
13243
13244 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
13245
13246         * 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.
13247
13248 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
13249
13250         * loader.c (mono_method_signature): Make this method lazy
13251         (mono_get_method_from_token): Don't computate the signature here.
13252
13253         Doing this saves quite a bit of memory. I got 90 kb on starting up
13254         monodoc. It should also save some disk reads on startup.
13255
13256         * *: MonoMethod->signature might be NULL now. You *MUST* use
13257         mono_method_signature.
13258
13259 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
13260
13261         * object.c (mono_runtime_get_main_args): Return an array from the
13262         current domain here. Fixes #71938.
13263
13264 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
13265
13266         * monitor.c: formatting changes to comply with the
13267         mono coding style and remove #ifdefs from the code.
13268
13269 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13270
13271         * metadata.c, private.h: remove some unneeded data
13272         and use a more compact representation for table schemas.
13273
13274 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
13275
13276         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
13277         to get a better distribution in hash tables.
13278         * *.c: use mono_aligned_addr_hash() where appropriate.
13279         * assembly.c: make var static.
13280
13281 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
13282
13283         * domain-internals.h: Put MonoJitInfo on a diet.
13284
13285         * domain.c: Fix a warning.
13286
13287 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13288
13289         * gc.c: rework the gc handles code to reuse handles
13290         when freed.
13291
13292 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
13293
13294         * domain.c: fixed long standing bug in mono_string_equal() which
13295         was brought to light with the ldstr changes.
13296
13297 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
13298
13299         * reflection.c: Remove warning by adding missing include for marshal.h
13300
13301 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13302
13303         * domain.c, object.c: change the ldstr_table to hold
13304         MonoString* as keys: makes the runtime isinterned lookup
13305         faster and simplifies memory management.
13306
13307 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
13308  
13309         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
13310         possible to add imperative security checks before calling the icall.
13311         * reflection.c: Return security attributes on the original MonoMethod
13312         (and not the wrapped one). This fix permissions on icalls.
13313
13314 2005-01-25  Dick Porter  <dick@ximian.com>
13315
13316         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
13317         the check for mktime() support actually test the mktime() return
13318         value.  "Fixes" bug 71682, though the output is still different to
13319         MS.
13320
13321 2005-01-25  Martin Baulig  <martin@ximian.com>
13322
13323         * class.c (mono_class_is_assignable_from): Make this work for
13324         generic instances.
13325
13326 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
13327
13328         * marshal.c (mono_string_utf8_to_builder)
13329         (mono_string_builder_to_utf16): We might not have ownership of the
13330         string. In thise case, we need to create a new buffer.
13331
13332         * object-internals.h (mono_stringbuilder_capacity): sb->str might
13333         be null, in which case, use the default capacity.
13334
13335 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13336
13337         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
13338         GC events to the profiler.
13339
13340 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13341
13342         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
13343         if you don't want the GC to run.
13344
13345 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
13346
13347         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
13348         start providing a GC API and keeping different implementations in
13349         their own file.
13350         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
13351
13352 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
13353
13354         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
13355         mmap rather than allocating a huge buffer.
13356         (mono_debug_close_mono_symbol_file): Free the buffer allocated
13357         above.
13358
13359 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
13360
13361         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
13362         and CheckExecutionRights.
13363         * reflection.c|h: Keep the index of the declarative security to be 
13364         used, instead of the pointer, when AOT compiler is used. Also add 
13365         class initialization when requesting demands.
13366         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
13367         CheckExecutionRights. Both properties are now FALSE by default, and
13368         unmodifiable, unless the --security option is used.
13369
13370 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13371
13372         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
13373         reflection.c: properly refcount images and assemblies, many leaks fixed.
13374
13375 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13376
13377         * threadpool.c: increase the timeout for threads in the thread pool to
13378         10s.  Fixes bug #67159.
13379
13380 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13381
13382         * class-internals.h: Sun's compiler insists on explicit
13383         signed on bit fields to handle then correctly.
13384
13385 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
13386
13387         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
13388         Make the size of the array fit only the number of invalid path
13389         chars that we have.
13390
13391         * class.c (_mono_class_get): Improve the error reporting when a
13392         class referenced is not found, to assist debugging. 
13393
13394 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
13395
13396         * threads.c: fix off-by-one error.
13397         * domain.c: free data allocated in the domain.
13398
13399 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
13400
13401         * reflection.c (mono_method_body_get_object): Fill out exception info
13402         as well.
13403
13404         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
13405         structure.
13406         
13407 2005-01-19  Martin Baulig  <martin@ximian.com>
13408
13409         * loader.c (mono_get_method_constrained): Make this work again.
13410
13411 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
13412
13413         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
13414         guint16 to match the managed side.
13415
13416         * reflection.c (mono_reflection_body_get_object): Fill out local
13417         variables array.
13418
13419         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
13420         as well.
13421
13422         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
13423         'local_var_sig_token'.
13424
13425 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
13426
13427         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
13428         System.Drawing.
13429
13430         * reflection.c (mono_method_body_get_object): Handle abstract and
13431         runtime methods.
13432
13433 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
13434
13435         * marshal.c, loader.c, class-internals.h, reflection.c:
13436         store the emthod data for a wrapper in an array instead of a list.
13437
13438 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
13439
13440         * marshal.c: change the code to allocate memory more
13441         conservatively for method wrappers.
13442
13443 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
13444
13445         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
13446         fields from MonoClass to the marshal info structure where they belong.
13447
13448 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13449
13450         * class.c, object.c, class-internals.h, marshal.c: rearrange
13451         some fields and tweak some types to lower memory usage.
13452
13453 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
13454
13455         * threads.c (signal_thread_state_change): Handle the case when the
13456         target thread is the current thread.
13457
13458         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
13459
13460         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
13461         emit_ptr_to_object_conv. 
13462
13463         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
13464         marshalling. Fixes #71352.
13465
13466 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
13467
13468         * metadata.h, blob.h: move table enum to blob.h so it can be included
13469         in any header.
13470         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
13471         cut the size of MonoImage/MonoDynamicImage.
13472
13473 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
13474
13475         * profiler.c (mono_profiler_install_simple): Fix default arguments.
13476
13477 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
13478
13479         * reflection.c, reflection.h, icall.c: add a function to check
13480         if an attribute type is defined for a metadata object.
13481
13482 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
13483
13484         * object-internals.h: Added some needed fields from StringBuilder class.
13485         * marshal.c: Set the maxCapacity when creating a StringBuilder.
13486
13487 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
13488
13489         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
13490         threads before shutting down the runtime.
13491
13492         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
13493
13494 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13495
13496         * object-internal.h, threads.c: implement stacksize and 
13497         parameterized thread start functionality (requires
13498         matching corlib). Marked broken code for later removal.
13499
13500 2005-01-12  Martin Baulig  <martin@ximian.com>
13501
13502         * class-internals.h (MonoGenericClass): Moved the `initialized'
13503         flag to MonoDynamicGenericClass, removed `init_pending'.
13504         (MonoGenericInst): Added `is_reference' flag.
13505
13506 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
13507
13508         * reflection.c (mono_image_create_pefile): Only set the pe_offset
13509         inside the MSDOS header. Fixes #71201.
13510
13511         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
13512         gc thread.
13513         (mono_domain_finalize): Ditto.
13514
13515 2005-01-12  Martin Baulig  <martin@ximian.com>
13516
13517         * class.c (mono_get_shared_generic_class): Use the cache for
13518         non-dynamic generic classes.
13519
13520         * class-internals.h (mono_class_create_generic_2): Removed
13521         function prototype, this function is now static inside class.c.
13522
13523         * class.c (mono_class_create_generic_2): Made this static, only
13524         call it from mono_class_init() and mono_class_setup_parent().
13525         (collect_implemented_interfaces_aux): Call mono_class_init() on
13526         the interfaces we collect.
13527         (mono_class_setup_vtable): Call mono_class_init (class->parent).
13528
13529 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13530
13531         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
13532         it a real thread handle.
13533
13534         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
13535         MonoJitExceptionInfo, since each catch clause needs its own variable.
13536         
13537 2005-01-11  Dick Porter  <dick@ximian.com>
13538
13539         * image.c (mono_pe_file_open): New variant on mono_image_open()
13540         that does not set up the CLI metadata; used for FileVersionInfo so
13541         it can get the data for windows binaries too.
13542         
13543         * process.c (process_read_string_block): Don't read off the end of
13544         the StringTable block.
13545
13546         These both fix bug 70766.
13547
13548 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
13549
13550         * gc.c: set some fields to NULL at GC cleanup time.
13551         * threads.c: if we quit the main thread, call exit ().
13552
13553 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
13554
13555         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
13556
13557 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
13558
13559         * threads.h, threads.c, object.c: added accessor and settor for
13560         main_thread. Handle it specially when exiting from it: wait
13561         for other foreground threads to exit.
13562
13563 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
13564
13565         * process.c, verify.c: remove some bloat.
13566
13567 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
13568
13569         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
13570         the calling convention to cdecl under win32.
13571
13572 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
13573
13574         * object.c (mono_object_get_size): New function to get the size of
13575         an object instance.
13576
13577         * profiler.c (simple_allocation): Use above.
13578
13579 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
13580
13581         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
13582         ves_icall_System_AppDomain_getRootDomain (as it's not required to
13583         get an appdomain by it's id and we can't assume the root's id is 0).
13584         * domain-internals.h: Change the function prototype to match.
13585         * icall.c: Change the icall table for AppDomain.
13586
13587 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
13588
13589         * locales.c (string_invariant_compare_char): Only compute
13590         GUnicodeTypes in the case where we need them.  Test for ordinality
13591         first and return if so.
13592
13593         From the commit:
13594
13595                 /*
13596                  * FIXME: here we must use the information from c1type and c2type
13597                  * to find out the proper collation, even on the InvariantCulture, the
13598                  * sorting is not done by computing the unicode values, but their
13599                  * actual sort order.
13600                  */
13601
13602 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
13603
13604         * loader.c: for P/Invoke methods, allow the "Internal" shared
13605         library name to refer to the calling process symbol namespace.
13606
13607 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
13608
13609         * Makefile.am: Add the security manager to the build.
13610         * security-manager.c|h: New. Initialization of the security manager.
13611
13612 2005-01-07  Dick Porter  <dick@ximian.com>
13613
13614         * threads.c: 
13615         * monitor.c: Update thread state during Monitor and WaitHandle
13616         waits.  Fixes bug 71031.
13617
13618 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
13619
13620         * reflection.c (property_encode_signature): Correctly handle when the
13621         property has no methods.
13622
13623 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
13624
13625         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
13626         
13627         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
13628         fields from mb, not rmb. Fixes #71017.
13629
13630         * marshal.c (emit_ptr_to_str_conv): Add support for 
13631         ByValTStr -> string conversion. Fixes #71015.
13632
13633         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
13634
13635         * mempool.c (mono_mempool_contains_addr): New helper function.
13636
13637 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13638
13639         * metadata.c (mono_metadata_compute_size): Fix size calculation of
13640         HasSematics encoded fields.
13641         
13642         * metadata.c (mono_type_to_unmanaged): Improve error message for 
13643         invalid string marshalling.
13644
13645         * metadata.c: Fix warnings.
13646         
13647 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
13648
13649         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
13650         profiler support.
13651
13652 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
13653
13654         * domain.c object.c domain-internals.h: Revert part of r38077 since the
13655         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
13656         tests.
13657
13658 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
13659
13660         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
13661         so methods containing these can be AOTed.
13662
13663 2005-01-03  Martin Baulig  <martin@ximian.com>
13664
13665         * loader.c (find_method): Removed the hack for generic instances.
13666         (method_from_memberref): If our parent is a generic instance, pass
13667         its generic type definition to find_method() and then inflate the
13668         method.
13669         (mono_get_method_constrained): Pass the generic type definition to
13670         find_method() and inflate the method later.
13671
13672         * class-internals.h (MonoStats): Added `generic_class_count'.
13673
13674         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
13675         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
13676
13677         * reflection.c (mono_custom_attrs_from_params): Don't ignore
13678         generic type definitions.
13679
13680 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
13681
13682         * loader.c icall.c: Fix warnings.
13683
13684 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
13685
13686         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
13687         blittable types. Fixes #70864.
13688
13689 2004-12-29  Martin Baulig  <martin@ximian.com>
13690
13691         * icall.c
13692         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
13693
13694         * reflection.c (mono_method_get_object): Create a
13695         "System.Reflection.MonoGenericMethod" for inflated methods; don't
13696         call mono_get_inflated_method().
13697
13698         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
13699
13700 2004-12-27  Martin Baulig  <martin@ximian.com>
13701
13702         * class-internals.h (MonoMethod): Added `is_inflated' flag.
13703         (MonoMethodInflated): Added `inflated' field.
13704
13705         * class.c (mono_class_inflate_generic_method): Don't really
13706         inflate the method here; just set the `is_inflated' flag in the
13707         MonoMethod.
13708         (mono_class_get_inflated_method): Actually inflate the method here
13709         if it's not already inflated; we use the MonoMethodInflated's new
13710         `inflated' field as a cache.
13711
13712 2004-12-26  Martin Baulig  <martin@ximian.com>
13713
13714         * class.c
13715         (inflate_generic_class): Moved some code out of inflate_generic_type().
13716         (mono_class_inflate_generic_method): If we're already inflated,
13717         inflate the context and use the declaring method; ie. make sure
13718         the declaring method of an inflated method is always the generic
13719         method definition.
13720         (mono_class_create_from_typedef): Create
13721         `class->generic_container->context->gclass'.
13722
13723 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
13724
13725         * metadata-internals.h, marshal.c, reflection.c: More
13726         MonoGHashTable->GHashTable.
13727
13728         * domain-internals.h, class.c: Change MonoGHashTable's into
13729         GHashTables for some cases where no gc stuff is used
13730
13731         All users: update apis
13732
13733 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
13734
13735         * metadata.c (builtin_types): Make this `const'. Makes this get
13736         put into the shareable section.
13737         (mono_metadata_init): Casts to make gcc happy.
13738
13739 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
13740
13741         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
13742
13743 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
13744
13745         * icall.c: Added an internal call to retrieve the position and length
13746         of assembly-level declarative security attributes (RequestMinimum, 
13747         RequestOptional and RequestRefuse). This is used by the Assembly class
13748         to re-create the corresponding permission sets.
13749
13750 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
13751
13752         * marshal.c: fix the stelemref wrapper to be type correct
13753         (and faster).
13754
13755 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
13756
13757         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
13758         to do key & 0x7fffffff. Hashtable already does this. It just
13759         results in longer code.
13760
13761 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
13762
13763         * appdomain.c: Bump corlib version.
13764         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
13765         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
13766         * reflection.c|h: Add functions to get declarative security infos
13767         (blob position and length) for assemblies, classes and methods.
13768
13769 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
13770
13771         * reflection.c: sort the constant table (bug #70693).
13772
13773 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
13774
13775         * object-internals.h, threads.c, domain.c: add accessors for
13776         the MonoThread and MonoDomain tls keys.
13777
13778 2004-12-18  Martin Baulig  <martin@ximian.com>
13779
13780         * class.c (inflate_generic_type): If we're inflating a generic
13781         instance, set `ngclass->context->container = context->container';
13782         ie. the container we inflated into.
13783
13784         * metadata.c (mono_metadata_parse_generic_param): Reflect above
13785         inflate_generic_type() changes.
13786
13787 2004-12-17  Martin Baulig  <martin@ximian.com>
13788
13789         * class-internals.h
13790         (MonoGenericClass): Replaced `MonoType *generic_type' with
13791         `MonoClass *generic_class'.  Removed `dynamic_info'; if
13792         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
13793         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
13794
13795 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
13796
13797         * exception.c (mono_exception_from_token): New helper function.
13798
13799 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
13800
13801         * assembly.c (mono_assembly_load_with_partial_name): Call 
13802         mono_assembly_loaded before invoking the preload hooks. Fixes
13803         #70564.
13804
13805         * object-internals.h (MonoThread): Change culture_info and 
13806         ui_culture_info into an array.
13807
13808         * threads.c: Cache culture info objects from more than one appdomain.
13809
13810         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
13811         current UI culture.
13812
13813 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
13814
13815         * threads.h threads.c appdomain.c: Clear the culture_info field of
13816         all threads during unloading if they point to an object in the dying
13817         appdomain.
13818
13819 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
13820
13821         * culture-info.h (TextInfoEntry): New struct
13822         * object-internals.h: sync with managed
13823         * locales.c: fill the `text_info_data' field
13824         * culture-info-tables.h: update
13825
13826 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
13827
13828         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
13829         collector.
13830
13831 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
13832
13833         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
13834         (ves_icall_ModuleBuilder_getMethodToken): Ditto
13835
13836 2004-12-12  Martin Baulig  <martin@ximian.com>
13837
13838         * mono-debug-debugger.c (write_type): If we're an enum and the
13839         builtin types have already been initialized, call mono_class_init().
13840
13841 2004-12-11  Martin Baulig  <martin@ximian.com>
13842
13843         * metadata.c (mono_metadata_load_generic_params): Added
13844         `MonoGenericContainer *parent_container' argument; automatically
13845         compute `container->is_method'; pass the correct owner to
13846         get_constraints().      
13847
13848         * reflection.c (compare_genericparam): Sort the GenericParam table
13849         according to increasing owners. 
13850
13851 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
13852
13853         * profiler.c: allow disabling the default profiler.
13854
13855 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
13856
13857         * decimal.c, icall.c: allow disabling System.Decimal support.
13858
13859 2004-12-09  Marek Safar <marek.safar@seznam.cz>
13860
13861         * reflection.c: Add support for null attribute arguments.
13862
13863 2004-12-09  Martin Baulig  <martin@ximian.com>
13864
13865         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
13866         names to get rid of compiler warnings.
13867
13868 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13869
13870         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
13871         mono_marshal_load_type_info (). Fixes #69625.
13872         (mono_marshal_get_ptr_to_struct): Likewise.
13873
13874 2004-12-08  Martin Baulig  <martin@ximian.com>
13875
13876         * mono-debug.h: Bumped version number to 47.
13877
13878         * mono-debug-debugger.c
13879         (mono_debugger_event_handler, mono_debugger_event): Take two
13880         guint64 arguments insteed of a gpointer and a guint32.  
13881
13882 2004-12-08  Martin Baulig  <martin@ximian.com>
13883
13884         * debug-mono-symfile.h
13885         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
13886         `address' to `native_offset'.
13887
13888 2004-12-08  Martin Baulig  <martin@ximian.com>
13889
13890         * class.c (mono_class_create_from_typespec): Only inflate if we
13891         either have `context->gclass' or `context->gmethod'.
13892
13893 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
13894
13895         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
13896
13897         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
13898
13899         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
13900
13901         * reflection.c (mono_assembly_get_object): Remove the workaround put
13902         in for the release.
13903         
13904         * appdomain.c: Use the corlib_internal field from MonoAssembly.
13905
13906         * appdomain.c: Bump corlib version.
13907
13908         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
13909         be visible in other appdomains.
13910
13911 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
13912
13913         * threads.c: Interlocked inc and dec for longs were messed up,
13914         use a KISS based impl for this. Fixes 70234
13915
13916 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
13917
13918         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
13919
13920 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13921
13922         * icall.c: fix to follow policy not to allow struct
13923         arguments in icalls.
13924
13925 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13926
13927         * process.c: make the patch that handles spaces in file paths work
13928         on mono/windows too.
13929
13930 2004-12-06  Martin Baulig  <martin@ximian.com>
13931
13932         * class.c (mono_class_create_generic): Call
13933         mono_class_setup_supertypes() if we're dynamic.
13934         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
13935
13936 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
13937
13938         * object-internals.h: Add new fields to MonoThread.
13939
13940         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13941
13942         * icall.c threads-types.h threads.c: Add new icalls.
13943
13944         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
13945
13946         * object-internals.h (MonoReflectionAssembly): Sync object layout with
13947         managed side.
13948
13949         * appdomain.c: Bump corlib version.
13950
13951         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
13952         internal assemblies. Fixes #69181.
13953
13954 2004-12-05  Martin Baulig  <martin@ximian.com>
13955
13956         * class.c (mono_class_inflate_generic_signature): Make this a
13957         no-op if `context' is NULL or we don't have any type parameters;
13958         also copy `sentinelpos'.        
13959
13960 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
13961
13962         * image.c: Add unbox_wrapper_cache.
13963
13964         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
13965
13966         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
13967         function generator.
13968         
13969         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
13970         Fixes #70173.
13971
13972         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
13973         
13974 2004-12-04  Martin Baulig  <martin@ximian.com>
13975
13976         * loader.c (mono_method_get_signature_full): New public function;
13977         like mono_method_get_signature(), but with an additional
13978         `MonoGenericContext *' argument.
13979
13980         * class.c (mono_class_inflate_generic_signature): Formerly known
13981         as inflate_generic_signature(); make this public.
13982
13983 2004-12-04  Martin Baulig  <martin@ximian.com>
13984
13985         * metadata.c
13986         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
13987         instead of a `MonoGenericContainer *'.  
13988         (mono_metadata_parse_array_full): Likewise.
13989         (mono_metadata_parse_signature_full): Likewise.
13990         (mono_metadata_parse_method_signature_full): Likewise.
13991         (mono_metadata_parse_generic_inst): Likewise.
13992         (mono_metadata_parse_generic_param): Likewise.
13993         (mono_metadata_parse_mh_full): Likewise.
13994         (mono_type_create_from_typespec_full): Likewise.
13995
13996 2004-12-03  Martin Baulig  <martin@ximian.com>
13997
13998         * class-internals.h (MonoGenericContainer): Replaced the
13999         `MonoGenericContext * pointer with a `MonoGenericContext'
14000         structure and made it the first element.
14001
14002 2004-12-03  Martin Baulig  <martin@ximian.com>
14003
14004         * class.c
14005         (inflate_generic_type): Set the `context->container' when creating
14006         a new MonoGenericContext.
14007         (mono_class_inflate_generic_method): Likewise.
14008         (mono_class_create_from_typespec): Just use `context->container'
14009         to get the container.
14010
14011         * loader.c (method_from_methodspec): Set `context->parent' from
14012         `context->container' - and if that's a method container, use its
14013         parent.  Also set the `context->container' when creating a new
14014         MonoGenericContext.
14015         (mono_get_method_from_token): Use just `context->container' to get
14016         the container.
14017
14018         * metadata.c (do_mono_metadata_parse_generic_class): Also set
14019         `gclass->context->container'.
14020
14021         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
14022         the `context->container' when creating a new MonoGenericContext.
14023
14024 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
14025
14026         * reflection.c (compare_genericparam): Sort params with identical
14027         owner by their number. Fixes gen-111 on sparc.
14028
14029 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
14030
14031         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
14032         around the domain changes.
14033
14034         * appdomain.c (mono_domain_unload): Handle the case when the thread
14035         calling Unload is itself being aborted during unloading. Fixes #70022.
14036
14037         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
14038
14039         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
14040         checkpoint_func as an icall so it gets a wrapper.
14041         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
14042         in the cross-appdomain wrappers too.
14043
14044         * threads.c (mono_thread_has_appdomain_ref): Make this public.
14045
14046         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
14047
14048         * reflection.c: Fix some memory leaks.
14049         
14050 2004-12-02  Martin Baulig  <martin@ximian.com>
14051
14052         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
14053
14054         * metadata.c (generic_class_cache): New static hashtable.
14055         (mono_metadata_lookup_generic_class): New public method.
14056
14057 2004-12-02  Martin Baulig  <martin@ximian.com>
14058
14059         * class.c (mono_class_create_from_typedef): Call
14060         mono_class_setup_parent() and mono_class_create_mono_type() before
14061         parsing the interfaces.
14062
14063 2004-12-02  Martin Baulig  <martin@ximian.com>
14064
14065         * metadata.c (generic_inst_cache): New static hashtable.
14066         (mono_metadata_lookup_generic_inst): New public function.
14067         (mono_metadata_inflate_generic_inst): New public function.
14068         (mono_metadata_parse_generic_inst): New public function.
14069         (do_mono_metadata_parse_generic_class): Use the new
14070         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
14071         since this'll also use the cache.
14072
14073         * reflection.c (mono_reflection_bind_generic_method_parameters):
14074         Use mono_metadata_lookup_generic_inst() to use the new cache.
14075
14076         * class.c (inflate_mono_type): Use
14077         mono_metadata_inflate_generic_inst() to inflate a generic
14078         instance; this'll also use the new cache.
14079
14080         * loader.c (method_from_methodspec): Use
14081         mono_metadata_parse_generic_inst() and
14082         mono_metadata_inflate_generic_inst() rather than parsing it
14083         manually, so we can use the new cache.
14084
14085 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
14086
14087         * threads.c (wait_for_tids): Do not incorrectly free threads when 
14088         the wait times out.
14089
14090 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
14091
14092         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
14093         iter->args based on whether parameters are passed in registers (i.e.
14094         MONO_ARCH_REGPARMS is defined)
14095
14096 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
14097
14098         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
14099         the exception message. Fixes #70070.
14100         (method_from_methodspec): Fix warnings.
14101
14102 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14103
14104         * process.c: (complete_path) return the path quoted
14105
14106 2004-12-01  Martin Baulig  <martin@ximian.com>
14107
14108         * class-internals.h (MonoGenericInst): New structure.
14109         (MonoGenericClass): Replaced `type_argc', `type_argv' and
14110         `is_open' with `MonoGenericInst *inst'.
14111         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
14112         `is_open' with `MonoGenericInst *inst'.
14113
14114 2004-11-30  Martin Baulig  <martin@ximian.com>
14115
14116         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
14117
14118         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
14119         to `generic_class_cache'.
14120
14121         * metadata.c
14122         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
14123         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
14124         (mono_generic_inst_is_valuetype): Renamed to
14125         mono_generic_class_is_valuetype().
14126
14127         * class-internals.h
14128         (MonoGenericInst): Renamed to MonoGenericClass.
14129         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
14130         (MonoClass): Renamed `generic_inst' to `generic_class'.
14131         (MonoGenericContext): Renamed `ginst' to `gclass'.
14132
14133         * object-internals.h
14134         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
14135
14136         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
14137         mono_reflection_generic_class_initialize().
14138
14139         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
14140         now known as "System.Reflection.MonoGenericClass".
14141         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
14142
14143 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
14144
14145         * class-internals.h: Added a flag field to MonoClass to cache the
14146         declarative security attributes actions associated with the class.
14147         * domain-internals.h: Added booleans to MonoJitInfo to cache the
14148         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
14149         applicable to the JITted method.
14150         * reflection.c|h: Added functions to extract (as flags) which security
14151         actions are available (declaratively) for a method, class or assembly.
14152         * metadata.c|h: Added functions to search the declarative security
14153         table in the metadata.
14154         
14155 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
14156
14157         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
14158         EXPORTEDTYPES are already in the class name cache, so there is no
14159         need to add extra code here to look at them. Just removes a bit of
14160         cruft.
14161
14162         (ves_icall_System_Environment_get_TickCount): No need for #if
14163         WINDOWS. We already have the code in io-layer.
14164
14165 2004-11-28  Martin Baulig  <martin@ximian.com>
14166
14167         * loader.c
14168         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
14169         Fixes gen-112.cs.
14170
14171 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
14172
14173         * assembly.c (do_mono_assembly_open): Instead of having a
14174         conditional WITH_BUNDLE, incorporate support for bundles here, by
14175         having a global `bundles' variable holding a pointer to the actual
14176         bundles. 
14177
14178         (mono_register_bundled_assemblies): New API call used by the
14179         bundle code. 
14180
14181         See mkbundle.1 for details.
14182         
14183 2004-11-27  Martin Baulig  <martin@ximian.com>
14184
14185         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
14186         the vtable for generic methods.
14187
14188 2004-11-26  Martin Baulig  <martin@ximian.com>
14189
14190         * metadata.c
14191         (mono_metadata_generic_method_hash): New public function.
14192         (mono_metadata_generic_method_equal): Likewise.
14193
14194         * class-internals.h
14195         (MonoGenericContainer): Added `GHashTable *method_hash'.
14196
14197         * reflection.c (ReflectionMethodBuilder): Added
14198         `MonoGenericContainer *generic_container'.
14199         (reflection_methodbuilder_to_mono_method): Don't create a new
14200         MonoGenericContainer each time we're called.
14201         (mono_reflection_bind_generic_method_parameters): Use
14202         `container->method_hash' to cache the results so we don't create a
14203         different method if we're called several times with the same
14204         arguments.
14205
14206         * loader.c (method_from_methodspec): Use the new
14207         `container->method_hash' here, too.
14208
14209 2004-11-26  Martin Baulig  <martin@ximian.com>
14210
14211         * class.c (inflate_generic_signature): Correctly compute
14212         `res->has_type_parameters'.
14213         (mono_class_vtable): Use the `has_type_parameters' flag to
14214         determine whether we're a generic method.
14215
14216         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
14217
14218 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
14219
14220         * object.c (mono_runtime_run_main): Fix a small memory leak.
14221
14222 2004-11-25  Martin Baulig  <martin@ximian.com>
14223
14224         * class.c (set_generic_param_owner): Fixed the loop.
14225
14226 2004-11-25  Martin Baulig  <martin@ximian.com>
14227
14228         * object.c (mono_class_vtable): Don't create any JIT wrappers for
14229         generic methods.
14230
14231 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
14232
14233         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
14234         names. Fixes #69787.
14235
14236 2004-11-24  Martin Baulig  <martin@ximian.com>
14237
14238         * class.c (mono_class_create_generic_2): If we don't have a
14239         `ginst->parent', inflate `gklass->parent' to get our parent.
14240
14241 2004-11-24  Martin Baulig  <martin@ximian.com>
14242
14243         * reflection.c (compare_genericparam): Correctly sort the
14244         GenericParam table; fixes #69779.
14245
14246 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
14247
14248         * reflection.c: When writing a PE file, don't create a huge
14249         buffer in memory. Just write the arrays we have to the file.
14250         This reduces memory usage.
14251
14252         * metadata-internals.h: MonoDynamicStream pefile is no longer used
14253         globally.
14254
14255 2004-11-17  Martin Baulig  <martin@ximian.com>
14256
14257         * class.c (mono_class_init): Don't setup `class->parent' for
14258         dynamic instances; moved this to mono_class_generic_2().
14259         (mono_class_create_generic): Also set `klass->inited' for dynamic
14260         generic instances.
14261         (mono_class_create_generic_2): Don't do anything for dynamic
14262         generic instances.  Set `klass->parent' here and also call
14263         mono_class_setup_parent() here. 
14264
14265         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
14266         `MonoType *parent' argument; set `ginst->parent' before calling
14267         mono_class_create_generic_2(), so we set the correct parent.
14268
14269 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
14270
14271         * reflection.c: allow getting attributes from ModuleBuilder
14272         (used by ikvm).
14273
14274 2004-11-17  Martin Baulig  <martin@ximian.com>
14275
14276         * class.c (mono_class_create_from_typedef): If a type parameter is
14277         inherited from an outer class, set its owner to that class.
14278
14279 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
14280
14281         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
14282           for (int*) written size. This fixes bug #69592.
14283
14284 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
14285
14286         * icall.c: Added IsAuthenticodePresnet internal call.
14287         * image.c|h: New function that check a MonoImage for an Authenticode
14288         signature in the certificate PE data directory.
14289         * security.c|h: New internal call to ask the runtime if an 
14290         Authenticode signature seems referenced in the PE header.
14291
14292 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
14293
14294         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
14295
14296         * reflection.c (mono_image_create_pefile): Free the assembly streams
14297         after writing out the assembly file.
14298
14299         * object.c (mono_runtime_run_main): Fix small memory leak.
14300
14301         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
14302         property access modifiers. Fixes #69389.
14303
14304 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
14305
14306         * domain.c, object.c, object-internals.h, domain-internals.h,
14307         object.h, marshal.c: keep dynamic code info per domain.
14308
14309 2004-11-15  Martin Baulig  <martin@ximian.com>
14310
14311         * class.c (mono_type_get_name_recurse): Put type arguments in
14312         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
14313         see bug #68387.
14314
14315 2004-11-15  Martin Baulig  <martin@ximian.com>
14316
14317         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
14318         (mono_class_setup_vtable): When computing `the_cname' for a
14319         generic instance, don't include the namespace since we'd otherwise
14320         add it twice.
14321
14322 2004-11-15  Martin Baulig  <martin@ximian.com>
14323
14324         * class.c (mono_class_create_generic): Changed return type to void.
14325         (mono_class_create_generic_2): New public function; setup
14326         `class->method', `class->field' and `class->interfaces' here
14327         instead of in mono_class_init().
14328
14329         * class.h (mono_class_create_generic): Moved to class-internals.h.
14330
14331 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
14332
14333         * reflection.c (mono_image_create_pefile): take a file HANDLE.
14334         rather than writing to memory, write to this file. Right now,
14335         we are just writting into a buffer, and copying that. However
14336         we can avoid the buffer later.
14337
14338         (mono_dynamic_stream_reset): new function
14339
14340         * icall.c, object-internals.h: update for the above.
14341
14342 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
14343
14344         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
14345         have been using gc'd memory. First it is slower, unlikely
14346         the comment in the source code said, secondly, it increases
14347         our footprint to do it in the gc.
14348
14349         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
14350         the method so that it does not have to copy to managed code.
14351
14352 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
14353
14354         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
14355
14356 2004-11-12  Martin Baulig  <martin@localhost>
14357
14358         * reflection.c (mono_image_create_token): Allow generic method
14359         definitions here, since they may appear in an `.override'; see
14360         gen-98/gen-99 for an example.
14361
14362 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
14363
14364         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
14365         #69365.
14366
14367         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
14368         descriptive.
14369
14370 2004-11-11  Martin Baulig  <martin@ximian.com>
14371
14372         * class.c (mono_class_setup_vtable): In an explicit interface
14373         implementation, the method name now includes the arity.
14374
14375 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
14376
14377         * object.c (mono_array_full_copy): Fix warning.
14378
14379 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
14380
14381         * appdomain.c: Removed look_for_method_by_name(). Use the new method
14382         mono_class_get_method_from_name() instead.
14383         
14384         * class-internals.h: Added two new types of wrappers. 
14385         Added MonoRemotingTarget enum. Added new trampoline function type, which
14386         takes an additional MonoRemotingTarget value as parameter, so it is
14387         possible to request a trampoline for a specific target.
14388         
14389         * class.c: Added new mono_class_get_method_from_name() method.
14390         
14391         * class.h: In MonoRemoteClass, we can have now to vtables, one for
14392         general remoting sinks and one specific for cross domain calls.
14393         
14394         * debug-helpers.c: Added new wrapper names.
14395         
14396         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
14397         of a remote class.
14398         
14399         * image.c: Porperly delete value objects form the remoting invoke hashtable.
14400         
14401         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
14402         with several other methods (mono_marshal_get_xappdomain_dispatch,
14403         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
14404         and others) can generate a fast remoting wrapper for cross domain calls.
14405         More information can be found in docs/remoting.
14406         Other changes: Removed mono_find_method_by_name, and used
14407         mono_class_get_method_from_name instead.
14408         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
14409         is stored in the remoting invoke hashtable.
14410         
14411         * marshal.h: published the new method for getting the xdomain wrapper,
14412         and also added a method for getting the adequate wrapper for a given
14413         method and target.
14414         
14415         * object-internals.h, object.c: Added a couple of methods for capying and
14416         cloning arrays.
14417         Modified mono_install_remoting_trampoline, which takes the new remoting
14418         trampoline that has a remoting target as parameter.
14419         mono_class_proxy_vtable now also takes a remoting target as parameter, and
14420         will return the most suitable vtable for the target.
14421         Added mono_remote_class_vtable, which returns the vtable of a remote class
14422         (which can be the normal remoting vtable or the xdomain vtable).
14423         
14424         * threads.c: the xdomain invoke and dispatch wrappers must also be
14425         protected against interruptions.
14426
14427 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14428
14429         * icall.c: use memmove in BlockCopyInternal when the source and
14430         destination arrays are the same.
14431
14432 2004-11-09  Martin Baulig  <martin@ximian.com>
14433
14434         * class-internals.h (MonoGenericContainer): Removed `method' and
14435         `signature', replaced them with `is_method' and `is_signature'
14436         flags.  Added `context'.
14437
14438         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
14439         instead of a `MonoGenericContainer *'.
14440
14441         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
14442         for dynamic type parameters.
14443         (mono_metadata_load_generic_params): Setup `container->context'.
14444
14445         * reflection.c (mono_reflection_setup_generic_class): Setup
14446         `tb->generic_container->context'.
14447         (do_mono_reflection_bind_generic_parameters): Use
14448         mono_class_inflate_generic_type() to correctly inflate types,
14449         rather than using our own hack just for MONO_TYPE_VAR.
14450
14451 2004-11-09  Martin Baulig  <martin@ximian.com>
14452
14453         * class.c (mono_class_inflate_generic_method): Small fix; don't
14454         crash here.
14455
14456         * icall.c
14457         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
14458         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
14459         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
14460         (ves_icall_Type_BindGenericParameters): Likewise.
14461         (ves_icall_Type_get_IsGenericInstance): Likewise.
14462         (ves_icall_Type_GetGenericParameterPosition): Likewise.
14463         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
14464         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
14465         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
14466
14467 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
14468
14469         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
14470         assembly versions and public key tokens. Fixes #69113.
14471
14472 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
14473
14474         * metadata.c: fix bug introduced with the type cache changes
14475         on 2004-11-06.
14476
14477 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
14478
14479         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
14480         the MonoClass pointer instead of the token in exception clauses.
14481         * reflection.c: updates for the above and make the code not depend
14482         on the structure of MonoExceptionClause.
14483
14484 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
14485
14486         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14487         Add support for dynamic assemblies. Fixes #69114.
14488
14489         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
14490
14491 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
14492
14493         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
14494         since most only those methods use it. the code member of
14495         MonoMethodPInvoke was dead, so that can be removed too. Also,
14496         remove inline_count (again, not used), and move slot so that it
14497         can share bits with some other flags. This saves 8 bytes in the
14498         structure and gives us about 50 kb back for mcs helloworld.cs
14499
14500         * *.[ch]: Do naming changes for the above.
14501
14502         * loader.c (mono_method_get_header): Lazily init the header
14503         on first access.
14504         (mono_get_method_from_token): don't init the header here
14505         (mono_free_method): the header may never be allocated
14506
14507         Overall, this saves 150 kb of unmanaged allocations
14508         for mcs helloworld.cs. That accounts for 10% of the unmanaged
14509         memory at runtime.
14510         
14511         * loader.c, loader.h (mono_method_get_header): new accessor.
14512
14513         * *.[ch]: use the above method. Prepares us to lazily load
14514         the header.
14515
14516         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
14517         three warnings, which are actual bugs (see 69206).
14518
14519         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
14520         unused. Saves a cool 4 bytes / method.
14521
14522 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
14523
14524         * metadata.c (builtin_types): Add types for System.Object here.
14525         (mono_metadata_parse_type_full): Cache MonoType*'s that are
14526         for a class or valuetype from klass->this_arg or klass->byval_arg.
14527
14528         On mcs for a hello world, this gets us down from 21836 MonoType's
14529         to 14560.
14530
14531         (mono_metadata_free_type): Account for the above change.
14532
14533 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
14534
14535         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
14536         exception instead of asserting if name is null.
14537         (ves_icall_System_AppDomain_GetData): Ditto.
14538
14539 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
14540
14541         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
14542         EnumBuilder.
14543
14544         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
14545         Return NULL when the domain does not have entry_assembly set.
14546
14547         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
14548         Add a 'resource_modules' argument.
14549         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
14550
14551         * reflection.c (mono_reflection_create_runtime_class): Move setting
14552         of wastypebuilder here, so mono_get_type_object () returns a MonoType
14553         for enums too.
14554
14555         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
14556         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
14557         Throw an ArgumentNullException if 'ptr' is null.
14558
14559         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
14560         assemblies here. Fixes #69020.
14561
14562 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
14563
14564         * reflection.c (build_compressed_metadata): Fix the previous patch for
14565         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
14566         the stack.
14567
14568 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
14569
14570         * assembly.c (mono_assembly_names_equal): Allow a match if one of
14571         the cultures is false. Fixes #69090.
14572
14573         * reflection.c (build_compressed_metadata): Fix invalid memory read 
14574         detected by valgrind.
14575         
14576         * reflection.c (mono_reflection_get_type): Avoid triggering a 
14577         TypeResolve multiple times for the same type. Fixes #65577.
14578
14579 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
14580
14581         * marshal.c: Avoid using ldftn to call managed functions. It is
14582         much slower than just a call.
14583
14584         * reflection.c (mono_module_get_object): free the basename we
14585         allocate here from glib.
14586         
14587         * reflection.c (ensure_runtime_vtable): make sure to free
14588         overrides.  Also, we were allocating an array of MonoMethod not an
14589         array of MonoMethod*.
14590
14591         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
14592
14593         * image.c (mono_image_close): free image->guid here.
14594
14595 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
14596
14597         * reflection.c: Fix some spec conformance issues with the PE file
14598         structures so mcs compiled apps run on the Net 2.0 beta.
14599
14600 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
14601
14602         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
14603         Implement this. Fixes #67264.
14604
14605         * debug-helpers.h debug-helpers.c marshal.c: Move 
14606         mono_find_method_by_name to debug-helpers.c.
14607
14608 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
14609
14610         * object.c (mono_release_type_locks): type_initialization_hash is
14611         a GHashTable.
14612
14613         * reflection.c object.c object-internals.h: Fix warnings.
14614
14615         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
14616         without accessors. Fixes #61561.
14617
14618         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
14619         application base from the root domain if not set. Fixes #65641.
14620         (mono_runtime_init): Fix warning.
14621
14622 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14623
14624         * appdomain.c: call mono_thread_pool_init.
14625         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
14626         of worker threads based on the number of CPUs and the environment
14627         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
14628         for non-windows (windows) systems.
14629
14630 2004-10-27  Chris Toshok  <toshok@ximian.com>
14631
14632         * mono-debug-debugger.c (write_class): don't call mono_class_init
14633         here, as even with the check for (!klass->init_pending), we get
14634         into a situation where we're hitting cycles in class
14635         initialization.  Fixes #68816.
14636
14637 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
14638
14639         * image.c: Avoid overwriting values in the loaded_images_hash when an
14640         assembly is loaded multiple times. Fixes #61152.
14641
14642         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
14643         so multiple satellite assemblies for the same name can be loaded.
14644         Fixes #68259.
14645
14646         * mono_domain_assembly_preload: Actually return the loaded assembly, 
14647         not NULL.
14648
14649         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
14650         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
14651
14652         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
14653         pending finalizers are not invoked after the appdomain has been 
14654         unloaded. Fixes #67862.
14655
14656 2004-10-22  Martin Baulig  <martin@ximian.com>
14657
14658         * mono-debug-debugger.c
14659         (mono_debugger_runtime_invoke): Don't box valuetypes.
14660
14661 2004-10-22  Chris Toshok  <toshok@ximian.com>
14662
14663         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
14664         don't hide private methods.
14665
14666 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
14667
14668         * icall.c: Allows the runtime to "share" (when known) the public key
14669         token of an assembly. This avoid the need to recalculate the token 
14670         (from the public key) in managed code.
14671
14672 2004-10-21  Chris Toshok  <toshok@ximian.com>
14673
14674         * debug-helpers.c (append_class_name): argh, revert last patch.
14675         
14676 2004-10-21  Chris Toshok  <toshok@ximian.com>
14677
14678         * debug-helpers.c (append_class_name): use '+' as the delimiter,
14679         not '/', so that it matches what the debugger uses to look up
14680         methods.
14681
14682 2004-10-21  Martin Baulig  <martin@ximian.com>
14683
14684         * mono-debug-debugger.c (mono_debugger_throw_exception): New
14685         public method; this is called each time an exception is thrown and
14686         allows the debugger to use exception catch points.
14687
14688 2004-10-21  Martin Baulig  <martin@ximian.com>
14689
14690         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
14691         the stack pointer and the exception object in some struct and pass
14692         that to the debugger.
14693
14694 2004-10-21  Chris Toshok  <toshok@ximian.com>
14695
14696         * mono-debug-debugger.c (do_write_class): add instance/static
14697         event support.  We don't expose "raise" or "other" yet.
14698         (event_is_static): new method.
14699
14700 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
14701
14702         * mono-debug-debugger.c
14703         (mono_debugger_handle_exception): Remove
14704         bogus return value for fussy compilers.
14705
14706 2004-10-20  Martin Baulig  <martin@ximian.com>
14707
14708         * mono-debug-debugger.c
14709         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
14710         (mono_debugger_handled_exception): Likewise.
14711
14712 2004-10-20  Martin Baulig  <martin@ximian.com>
14713
14714         * mono-debug-debugger.h (MonoDebuggerEvent): Added
14715         MONO_DEBUGGER_EVENT_EXCEPTION.
14716
14717         * mono-debug-debugger.c (mono_debugger_handle_exception): New
14718         public function to send the debugger a notification for an
14719         exception and inform it about a catch/finally clause.
14720
14721 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
14722
14723         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
14724         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
14725         fix 2.95 build. 
14726
14727         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
14728
14729 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
14730
14731         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
14732         marshalled as [In,Out]. Fixes #58325.
14733
14734 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
14735
14736         * reflection.c (mono_method_body_get_object): Implement some fields.
14737
14738 2004-10-12  Martin Baulig  <martin@ximian.com>
14739
14740         * reflection.c (mono_reflection_bind_generic_parameters): Small
14741         fix, correctly retrieve our parent from a generic instance.
14742
14743 2004-10-12  Martin Baulig  <martin@ximian.com>
14744
14745         * metadata.c (mono_metadata_generic_param_equal): We always have
14746         an owner.
14747
14748         * class.c
14749         (mono_class_from_generic_parameter): We need to have an owner.
14750         (my_mono_class_from_generic_parameter): Likewise.
14751
14752         * reflection.c (mono_reflection_setup_generic_class): Renamed to
14753         mono_reflection_create_generic_class() and added a new
14754         mono_reflection_setup_generic_class().  
14755         (mono_reflection_initialize_generic_param): If we're a nested
14756         generic type and inherited from the containing class, set our
14757         owner to the outer class.
14758
14759 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
14760
14761         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
14762
14763         * reflection.c (mono_method_body_get_object): New function to create
14764         a MethodBody object.
14765
14766         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
14767
14768 2004-10-11  Martin Baulig  <martin@ximian.com>
14769
14770         * metadata.c (_mono_metadata_type_equal): Renamed to
14771         do_mono_metadata_type_equal() and made static.
14772
14773 2004-10-11  Martin Baulig  <martin@ximian.com>
14774
14775         * appdomain.c: Bump corlib version number to 28.
14776
14777 2004-10-10  Martin Baulig  <martin@ximian.com>
14778
14779         * class-internals.h
14780         (MonoGenericInst): Added `MonoGenericContainer *container'.
14781         (MonoGenericMethod): Likewise.
14782         (MonoGenericContext): Likewise.
14783         (MonoGenericParam): Added `MonoGenericContainer *owner'.
14784
14785         * metadata.c
14786         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
14787         (do_mono_metadata_parse_generic_inst): Likewise.
14788         (mono_metadata_parse_type_full): New public method.  This is the actual
14789         mono_metadata_parse_type() implementation - with an additional
14790         `MonoGenericContainer *' argument.
14791         (mono_metadata_parse_array_full): Likewise.
14792         (mono_metadata_parse_signature_full): Likewise.
14793         (mono_metadata_parse_method_signature_full): Likewise.
14794         (mono_metadata_parse_mh_full): Likewise.
14795         (mono_type_create_from_typespec): Likewise.
14796         (mono_metadata_interfaces_from_typedef_full): New public method;
14797         this is similar to the other _full() methods, but we take a
14798         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
14799         (mono_metadata_parse_generic_param): Take an additional
14800         `MonoGenericContainer *' argument and lookup the MonoGenericParam
14801         from that container.
14802         (mono_metadata_generic_param_equal): New static method to compare
14803         two type parameters.
14804         (_mono_metadata_type_equal): New static method; takes an
14805         additional `gboolean signature_only' argument - if true, we don't
14806         compare the owners of generic parameters.
14807         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
14808         with a TRUE argument - do a signature-only comparision.
14809
14810         * loader.c: Use the new _full() methods and pass the
14811         MonoGenericContainer to them.
14812
14813         * object-internals.h (MonoReflectionTypeBuilder): Added
14814         `MonoGenericContainer *generic_container' field.
14815         (MonoReflectionMethodBuilder): Likewise.
14816
14817 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
14818
14819         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
14820         case initial images of dynamic assemblies.
14821
14822         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
14823
14824         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
14825
14826         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
14827         length of event->other array.
14828         (typebuilder_setup_events): Ditto.
14829
14830         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
14831         'assembly_by_name' and add an 'assemblies' list.
14832
14833         * assembly.h assembly.c: Add a new search hook for determining whenever
14834         an assembly is already loaded. Use this instead of searching in the
14835         loaded_assemblies list.
14836
14837         * domain.c appdomain.c: Implement the new search hook so loaded 
14838         assemblies are now scoped by appdomain. Fixes #67727.
14839
14840 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
14841
14842         * threads.c (mono_thread_attach): Initialize synch_lock field so
14843         mono_thread_detach works again.
14844
14845         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
14846         'lib' too. Fixes #63130.
14847
14848 2004-10-06  Jackson Harper  <jackson@ximian.com>
14849
14850         * culture-info-tables.h: regenerated.
14851
14852 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
14853
14854         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
14855         implemented by other interfaces in the result. Fixes #65764.
14856         
14857         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14858         Handle unloadable modules without crashing.
14859
14860         * image.c (load_modules): Revert the previous patch since modules must
14861         have a fixed index inside the array.
14862         
14863         * image.c (load_modules): Don't include native modules in the modules
14864         array.
14865
14866 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
14867
14868         * reflection.h: Add param_defaults field.
14869
14870         * reflection.c: Add support for parameter defaults in dynamic methods.
14871         Fixes #64595.
14872
14873         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
14874         an empty string when a type has no namespace. Fixes #64230.
14875
14876 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
14877
14878         * tabledefs.h: Added "internal" security actions to support non-CAS
14879         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
14880         Note: they do not seems to be used anymore in 2.0 (new metadata format)
14881
14882 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
14883
14884         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
14885         constructor of abstract class. Fixes #61689.
14886
14887 2004-10-04  Martin Baulig  <martin@ximian.com>
14888
14889         * class-internals.h (MonoGenericContainer): New type.
14890         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
14891         `MonoGenericContainer *generic_container'.
14892         (MonoClass): Replaced `gen_params' and `num_gen_params' with
14893         `MonoGenericContainer *generic_container'.
14894
14895         * metadata.c (mono_metadata_load_generic_params): Return a
14896         `MonoGenericContainer *' instead of a `MonoGenericParam *';
14897         removed the `num' argument.
14898
14899 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
14900
14901         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
14902         for dynamic images.
14903
14904         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
14905         machine fields.
14906
14907         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
14908
14909         * reflection.c: Save pe_kind and machine values into the generated
14910         image file.
14911
14912         * appdomain.c: Bump corlib version number.
14913
14914         * object-internals.h: Reorganize layout of LocalBuilder.
14915
14916         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
14917         New helper function.
14918
14919         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
14920         created MonoType for dynamic types. Fixes #66180.
14921
14922 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
14923
14924         * threadpool.c: the ares hashtable needs a critical section around it.
14925         this prevents some nasty segfaults
14926
14927 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
14928
14929         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
14930         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
14931         bug 67324).
14932         
14933 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
14934
14935         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
14936         
14937 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
14938
14939         * image.c: Always canonicalize image file names, to avoid loading
14940         the same assembly twice when referenced using a relative path.
14941
14942 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
14943
14944         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
14945
14946         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
14947
14948         * marshal.c: Fix warnings.
14949
14950 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
14951
14952         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
14953         attempting to marshal the delegate_trampoline as the method_addr.
14954         This patch has a static hashtable of marshalled delegates so that 
14955         we can map delegate_trampoline addresses back to delegates.  This
14956         allows a delegate passed to managed code to be passed back into native
14957         code.  Fixes #67039
14958
14959 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
14960
14961         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
14962
14963         * reflection.c (method_encode_code): Align method headers properly.
14964         Fixes #66025.
14965
14966 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
14967
14968         * marshal.c: In the runtime invoke wrapper, reset the abort
14969         exception if it is cached. This avoids the automatic rethrowal of 
14970         the exception after the catch of the wrapper. Also check for pending
14971         interruptions before calling the managed method. This is done using
14972         the new method emit_thread_force_interrupt_checkpoint, since the
14973         normal checkpoint method is ignored when running the invoke wrapper.
14974         * object.c: If the abort exception is rethrown, set the abort_exc
14975         field of the thread, so it will be rethrown aftere every catch.
14976         * threadpool.c: Only run an interruption checkpoint if what has been
14977         requested is a stop of the thread (aborts will be ignored).
14978         * threads.c: By default, a thread will now never be interrumped while
14979         running the runtime invoke wrapper (this ensures that runtime_invoke
14980         will always return to the caller if an exception pointer is provided).
14981         There is a new special method mono_thread_force_interruption_checkpoint()
14982         to force an interruption checkpoint even if running a protected
14983         wrapper, which is used by the same runtime invoke wrapper to do a check
14984         at a safe point.
14985
14986 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
14987
14988         * object.c, object-internals.h: Implemented mono_release_type_locks,
14989         which releases the cctor locks held by a thread.
14990         * threads.c, threads.h: In thread_cleanup, release cctor locks held
14991         by a thread. Added mono_thread_exit() method to be used to safely stop
14992         a thread.
14993
14994 2004-09-28  Raja R Harinath  <rharinath@novell.com>
14995
14996         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
14997         Move null check before dereference.  Avoid indexing beyond the end
14998         of the 'modules' array.
14999
15000 2004-09-28  Raja R Harinath  <rharinath@novell.com>
15001
15002         * metadata-internals.h (MonoImage): Add module_count field.
15003         * image.c (load_modules): Set image->module_count.
15004         (mono_image_load_file_for_image): Use image->module_count.
15005         * reflection.c (mono_image_load_module): Append to image->modules array 
15006         of dynamic assembly.
15007         (mono_module_get_object): Fix loop to actually increment index.
15008         Use image->module_count.
15009         * assembly.c (mono_assembly_load_references): Use image->module_count.
15010         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
15011         Likewise.
15012
15013 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
15014
15015         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
15016         Avoid assert on generic types.
15017
15018 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
15019
15020         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
15021
15022         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
15023
15024         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
15025         function to convert a MarshalSpec structure to its managed counterpart.
15026
15027         * reflection.c: Fix warnings.
15028         
15029         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
15030         field.
15031
15032         * icall.c (mono_create_icall_signature): Fix build.
15033
15034 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
15035
15036         * icall.c: Add MakePointType icall.
15037
15038         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
15039         warnings.
15040
15041 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15042
15043         * threadpool.c: reuse allocated slots in the queue.
15044
15045 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
15046
15047         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
15048
15049         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
15050
15051         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
15052         previous change.
15053
15054         * tabledefs.h: Add constants for pinvoke attributes BestFit and
15055         ThrowOnUnmappableChar.
15056
15057         * icall.c (ves_icall_Type_GetPacking): New icall.
15058
15059 2004-09-24  Martin Baulig  <martin@ximian.com>
15060
15061         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
15062
15063 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15064
15065         * appdomain.c:
15066         (mono_domain_set): allow setting a domain that is being unloaded.
15067         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
15068         being unloaded.
15069
15070 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
15071
15072         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
15073         the GetCustomAttributes icall.
15074
15075 2004-09-23  Martin Baulig  <martin@ximian.com>
15076
15077         * object-internals.h (MonoReflectionGenericParam): Replaced
15078         'has_ctor_constraint', `has_reference_type' and `has_value_type'
15079         with `guint32 attrs'.
15080
15081 2004-09-23  Martin Baulig  <martin@ximian.com>
15082
15083         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
15084
15085 2004-09-23  Martin Baulig  <martin@ximian.com>
15086
15087         * object-internals.h (GenericParameterAttributes): New enum.
15088
15089 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
15090
15091         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
15092         
15093         * class.c (init_events): Fill out event->other field.
15094
15095         * class.c: Fix warnings.
15096
15097         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
15098
15099 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
15100
15101         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
15102         walk which doesn't supply the IL offset.
15103
15104 2004-09-22  Martin Baulig  <martin@ximian.com>
15105
15106         * reflection.c (mono_reflection_setup_internal_class): If we're
15107         System.ValueType, System.Object or System.Enum, set
15108         `klass->instance_size' and create the vtable.
15109         (mono_reflection_create_internal_class): If we're an enum type,
15110         get the base class from our current corlib.
15111
15112 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
15113
15114         * reflection.h (MonoResolveTokenError): New type.
15115
15116         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
15117         icall.
15118
15119         * icall.c: Add an 'error' argument to the ResolveToken icalls.
15120
15121 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
15122
15123         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
15124         Support also calling constructors, but only for already allocated objects.
15125
15126 2004-09-17  Geoff Norton <gnorton@customerdna.com>
15127
15128         * reflection.c (type_get_qualified_name): If the klass is null
15129         return the typename to avoid a NullRefEx.
15130         (encode_cattr_value): Get the qualified name of the boxed type,
15131         not the underlying enumtype.  Fixes #62984.
15132
15133 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
15134
15135         * marshal.c: Fix problems with previous checkin.
15136
15137 2004-09-21    <vargaz@freemail.hu>
15138
15139         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
15140         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
15141
15142         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
15143
15144 2004-09-21  Geoff Norton <gnorton@customerdna.com>
15145
15146         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
15147         should only return a type for pointers, arrays, and passbyref types.
15148         Fixes bug #63841.
15149
15150 2004-09-21  Martin Baulig  <martin@ximian.com>
15151
15152         * domain.c (mono_debugger_check_runtime_version): New public
15153         function.
15154
15155         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
15156
15157 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
15158
15159         * reflection.c: Added missing sort to the declarative security 
15160         attributes table. MS implementation stops seeing the attributes if the
15161         token number regress in the table (as shown by ildasm and permview).
15162
15163 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
15164
15165         * object-internals.h (MonoReflectionModule): Add 'token' field.
15166         
15167         * reflection.c (mono_reflection_get_token): Add support for Module
15168         and Assembly.
15169         (mono_module_get_object): Set 'token' field.
15170         (mono_module_file_get_object): Set 'token' field.
15171
15172         * icall.c: Add new Assembly and Module icalls.
15173
15174         * appdomain.c: Bump corlib version.
15175
15176 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
15177
15178         * loader.h loader.c class.h class.c: Add helper functions for obtaining
15179         tokens of metadata objects.
15180
15181         * reflection.h reflection.c (mono_reflection_get_token): New function
15182         to obtain the token of a metadata object.
15183
15184         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
15185
15186 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
15187
15188         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
15189         
15190         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
15191
15192 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
15193
15194         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
15195         * object-internals.h: Added 3 MonoArray* members to MonoReflection
15196         AssemblyBuilder to access the permissions set in the class lib.
15197         * reflection.c: Added security attributes encoding step in 
15198         mono_image_build_metadata.
15199         * tabledefs.h: Added new security actions defined in 2.0:
15200         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
15201
15202 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
15203
15204         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
15205         macro parameter.
15206
15207 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
15208  
15209         * locales.c: nullify the ICU_collator member of CompareInfo when it is
15210           finalized. There where random SIGSEVs at program termination, when
15211           an object being finalized was trying to do a string comparison and
15212           the current culture was already finalized.
15213  
15214 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15215
15216         * threads.c: call thread_cleanup before finishing the thread if we get
15217         there.
15218
15219 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
15220
15221         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
15222         assemblies from the parent. Fixes #65665.
15223
15224 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
15225
15226         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
15227         modifiers.
15228
15229 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
15230
15231         * reflection.h: add prototype for mono_get_dbnull_object
15232         * reflection.c: add prototypes for get_default_param_value_blobs 
15233         and mono_get_object_from_blob for fussier compilers
15234
15235 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
15236  
15237         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
15238         false deadlock checks in class initialization.
15239  
15240 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
15241
15242         * image.c (mono_image_addref): Fix comment.
15243
15244         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
15245         possible.
15246
15247 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
15248
15249         * reflection.c (mono_param_get_objects): Modified to return
15250         ParameterInfo.DefaultValue object.
15251
15252         (get_default_param_value_blobs):
15253         (mono_get_object_from_blob):
15254         (mono_get_dbnull_object): New helper routines. 
15255
15256         * object.c (mono_get_constant_value_from_blob): New helper routine
15257         carved out from get_default_field_value ()
15258
15259         * object-internals.h (mono_get_constant_value_from_blob): Added
15260         function declaration.
15261
15262 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
15263
15264         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
15265         referenced assemblies. Fixes #62135.
15266
15267         * exception.h exception.c (mono_get_exception_file_not_found2): New
15268         helper function.
15269
15270 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
15271
15272         * class.h class.c: Add mono_type_get_underlying_type ().
15273
15274 2004-09-09  Geoff Norton <gnorton@customerndna.com>
15275
15276         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
15277         Fix GetTypes() to support dynamically created assemblies.
15278
15279 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
15280
15281         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
15282         
15283         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
15284         previous patch.
15285
15286         * reflection.h reflection.c loader.c: Allow dynamic construction of
15287         pinvoke methods. Fixes #65571.
15288         
15289         * reflection.c (mono_reflection_get_type): Revert previous change since
15290         it causes regressions.
15291
15292 2004-09-08  Martin Baulig  <martin@ximian.com>
15293
15294         * class.c (class_compute_field_layout): Don't call
15295         mono_class_layout_fields() for open generic instances.
15296
15297 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
15298         * threads.c appdomain.c: fix typo in GC macro
15299
15300 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15301
15302         * threads.c: don't call mono_thread_detach() in start_wrapper(),
15303         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
15304
15305 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
15306
15307         * image.c (mono_image_close): Applied patch from 
15308         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
15309         assembly is loaded multiple times from data.
15310         
15311         * image.c (mono_image_open): Fix warning.
15312
15313 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15314
15315         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
15316         once. Fixes #58334.
15317         
15318         * reflection.c (mono_reflection_create_runtime_class): Initialize
15319         klass->nested_classes. Fixes #61224.
15320
15321 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
15322
15323         * threads.c: sched_yield() on exit, to allow threads to quit.
15324
15325 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15326
15327         * object.c (mono_unhandled_exception): Remove leftover debug code.
15328
15329 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
15330
15331         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
15332
15333 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
15334
15335         * marshal.c (emit_marshal_array): Really null terminate string arrays.
15336         
15337         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
15338
15339 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15340
15341         * marshal.c (emit_marshal_array): Null terminate string arrays.
15342         
15343         * marshal.c (raise_auto_layout_exception): Fix warning.
15344
15345         * reflection.c (mono_param_get_objects): Initialize the default value
15346         with DBNull.Value, not null. Fixes #62123.
15347
15348 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
15349
15350         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
15351         throw an exception with a cute explanation.
15352
15353 2004-09-06  Dick Porter  <dick@ximian.com>
15354
15355         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
15356         Close the new process's thread handle, as we don't use it.  The
15357         handle stays around forever otherwise.
15358
15359 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15360
15361         * object.c (arith_overflow): Fix warning.
15362
15363         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
15364         calling conventions in method refs. Fixes #65352.
15365
15366         * reflection.c: Fix warnings.
15367
15368 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
15369
15370         * icall.c: Add a new icall for Array.Clear
15371
15372 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
15373
15374         * object.c: When allocating an array, we have to throw
15375         an overflow exception if any of the lengths are < 0.
15376
15377 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
15378
15379         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
15380         properly. Also move implementation of string array marshalling to 
15381         managed code. Fixes #42316.
15382
15383 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15384
15385         * assembly.c: provide more information when loading an assembly fails.
15386
15387 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15388
15389         * filewatcher.c: don't expect the development fam package to be
15390         installed.
15391
15392 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
15393
15394         * marshal.c: Make a copy of the signature cookie since it will be
15395         freed by the caller.
15396         
15397         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
15398
15399         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
15400
15401         * metadata.c (mono_metadata_free_marshal_spec): New function to free
15402         marshal specs.
15403
15404         * marshal.c: More refactoring.
15405         
15406         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
15407         smaller functions.
15408
15409 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
15410
15411         * object.c: In mono_message_invoke, fill the output parameter array after
15412           calling the managed method (it was done before the call). This fixes
15413           bug #59299.
15414
15415 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
15416
15417         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
15418         as well.
15419
15420 2004-09-02  Martin Baulig  <martin@ximian.com>
15421
15422         * class.c (mono_class_instance_size): Don't allow generic type
15423         definitions or open generic instances.
15424         (mono_class_array_element_size): If we're a value type, call
15425         mono_class_instance_size() on the original class.
15426
15427         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
15428         handle generic instances.
15429
15430         * mono-debug-debugger.c (write_type): Handle generic instances
15431         like classes.
15432
15433 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
15434
15435         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
15436         the allocation request fails. Fixes #65089.
15437
15438         * object.c (mono_runtime_free_method): Do not call mono_free_method.
15439         
15440         * object.c (mono_runtime_free_method): New function to free a dynamic
15441         method.
15442
15443         * marshal.c (mono_delegate_free_ftnptr): New function to free the
15444         delegate trampoline.
15445
15446         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
15447         with hasthis as dynamic,
15448
15449         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
15450
15451         * domain.c (mono_jit_info_table_remove): New function to remove an
15452         entry from the jit info table.
15453
15454         * class-internals.h (MonoMethod): Add 'dynamic' field.
15455
15456         * loader.c: Fix warnings.
15457
15458 2004-09-01  Martin Baulig  <martin@ximian.com>
15459
15460         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
15461         instead of mono_debugger_lock() because the latter one is a no-op
15462         unless running in the debugger.
15463
15464 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
15465
15466         * class.c (class_compute_field_layout): Classes with auto-layout or
15467         reference fields are not blittable.
15468         
15469 2004-09-01  Dick Porter  <dick@ximian.com>
15470
15471         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
15472         mono_image_get_filename() to get the assembly location.
15473
15474         * icall.c:
15475         * metadata.h: Fix compile warnings
15476
15477 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
15478
15479         * class.c (class_compute_field_layout): System.Object is blittable.
15480
15481         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
15482         as in/out. Fixes #59909.
15483
15484 2004-09-01  Martin Baulig  <martin@ximian.com>
15485
15486         * metadata.h (MONO_TYPE_ISREFERENCE): Call
15487         mono_metadata_generic_inst_is_valuetype() if we're a generic
15488         instance to check whether our underlying type is a reference type.
15489
15490 2004-09-01  Martin Baulig  <martin@ximian.com>
15491
15492         * metadata.c (mono_type_size): If we're a generic instance, call
15493         mono_class_value_size() for value types.
15494
15495 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
15496
15497         * marshal.c: Implement more custom marshalling functionality. Fixes
15498         #64915.
15499
15500 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
15501
15502         * mono-debug.c, debug-mono-symfile.c: add some locking love.
15503
15504 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
15505
15506         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
15507
15508         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
15509
15510         * icall.c: Fix some warnings.
15511
15512         * threads.c (abort_appdomain_thread): Fix unref errors.
15513         (mono_thread_current): Fix THREAD_DEBUG define.
15514
15515 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
15516
15517         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
15518
15519         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
15520
15521 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
15522
15523         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
15524         string arrays.
15525
15526 2004-08-28  Martin Baulig  <martin@ximian.com>
15527
15528         * metadata.c
15529         (mono_metadata_generic_inst_is_valuetype): New public function.
15530
15531         * metadata.h (MONO_TYPE_ISSTRUCT): Call
15532         mono_metadata_generic_inst_is_valuetype() if we're a generic
15533         instance to check whether our underlying type is a valuetype.
15534
15535 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
15536
15537         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
15538         #63768.
15539
15540 2004-08-25  Martin Baulig  <martin@ximian.com>
15541
15542         * loader.c (mono_get_method_from_token): Abstract methods can also
15543         be generic and thus have type parameters.
15544
15545         * metadata-internals.h
15546         (MonoDynamicImage): Added `GPtrArray *gen_params'.
15547
15548         * reflection.c (mono_image_get_generic_param_info): Don't create a
15549         metadata row, just add an entry to the `gen_params' array.
15550         (build_compressed_metadata): Sort the `gen_params' array and then
15551         actually create the metadata.
15552
15553 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15554
15555         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
15556
15557 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
15558
15559         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
15560
15561 2004-08-24  Martin Baulig  <martin@ximian.com>
15562
15563         * class.cs (mono_class_is_subclass_of): Like an interface, a
15564         generic instance also derives from System.Object.
15565
15566 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
15567
15568         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
15569         custom modifiers to be in any order. Fixes #61990.
15570
15571 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
15572
15573         * object.c: Register mono_object_new_fast icall.
15574         
15575         * object.c (mono_class_get_allocation_ftn): Return to calling
15576         mono_object_new_fast, since it seems faster to compute the object 
15577         size in unmanaged code than passing it as a parameter.
15578
15579         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
15580
15581         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
15582         this function with Boehm as the oom handler, so we don't have to check
15583         the result of GC_malloc.
15584
15585         * object.c: Remove checks for oom.
15586
15587         * object.h object.c (mono_class_get_allocation_ftn): New function to
15588         return the icall which can be used to allocate an instance of a given
15589         class. 
15590
15591         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
15592
15593         * class-internals.h: Add 'enabled' field.
15594
15595 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
15596
15597         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
15598
15599 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
15600         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
15601         value 0x0010.
15602
15603 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
15604
15605         * appdomain.c: use the Tls function for appdomain too,
15606         at Zoltan's request. Actually return in mono_context_get
15607
15608         * appdomain.c, profiler.c, threads.c: use __thread
15609
15610 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
15611
15612         * appdomain.c threads.c: Call GC_CreateThread on windows.
15613
15614         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
15615         multiple libraries since this don't work on windows.
15616
15617 2004-08-18  Martin Baulig  <martin@ximian.com>
15618
15619         * class-internals.h
15620         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
15621         MonoMethodHeader.
15622
15623         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
15624         MonoMethodNormal since we also need it for abstract and interface
15625         methods.
15626
15627         * reflection.c
15628         (build_compressed_metadata): Sort the GenericParam table.
15629         (mono_image_create_token): Added `gboolean create_methodspec'
15630         argument; this is false when generating a MethodImpl token.
15631         (reflection_methodbuilder_to_mono_method): Abstract and interface
15632         methods may also have generic parameters.
15633
15634 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
15635
15636         * appdomain.c: thread local alloc
15637
15638 2004-08-17  Martin Baulig  <martin@ximian.com>
15639
15640         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
15641
15642         * icall.c
15643         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
15644         argument.
15645
15646         * class.c (mono_type_get_full_name): New public function.
15647         (mono_type_get_name): Don't include the type arguments.
15648
15649 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
15650
15651         * Makefile.am: Build static versions of libmetadata and libmonoruntime
15652         for inclusion into the mono executable.
15653
15654 2004-08-16  Martin Baulig  <martin@ximian.com>
15655
15656         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
15657         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
15658
15659 2004-08-14  Martin Baulig  <martin@ximian.com>
15660
15661         * class.c (dup_type): Also copy the `byref' field.
15662
15663 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
15664
15665         * reflection.c (create_dynamic_mono_image): Revert the last change 
15666         since it breaks bootstrap.
15667
15668 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
15669
15670         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
15671
15672         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
15673         not free them with g_free.
15674
15675 2004-08-11  Martin Baulig  <martin@ximian.com>
15676
15677         * reflection.c (mono_reflection_setup_internal_class): Also call
15678         mono_class_setup_mono_type() if we already have a `tb->type.type'.
15679
15680 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
15681
15682         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
15683         called during default (first) AppDomain creation. Keep track of
15684         Evidence when loading assemblies.
15685
15686 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
15687
15688         * opcodes.c, opcodes.h: reduce runtime relocations.
15689
15690 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
15691
15692         * culture-info.h, locales.c: fixes and chages to sue the new
15693         optimized format of the locale data.
15694         * culture-info-tables.h: regenerated.
15695
15696 2004-08-06  Geoff Norton <gnorton@customerdna.com>
15697         
15698         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
15699
15700 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
15701
15702         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
15703         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
15704         * domain-internals.h: icall declaration.
15705         * icall.c: icall registration.
15706         * object-internals.h: New fields in MonoAssembly for CAS.
15707
15708 2004-08-05  Duncan Mak  <duncan@ximian.com>
15709
15710         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
15711         CEE_LDELEM_ANY.
15712
15713 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
15714
15715         * reflection.c: fix to deal with object[] arrays in custom ctors
15716         (bug #62550).
15717
15718 2004-08-05  Martin Baulig  <martin@ximian.com>
15719
15720         * class.c (mono_class_array_element_size): Added support for
15721         generic instances and correctly handle "recursive" types.
15722
15723 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
15724
15725         * assembly.c: Fix warnings.
15726
15727 2004-08-04  Martin Baulig  <martin@ximian.com>
15728
15729         * class.c
15730         (mono_type_get_name_recurse): Added `gboolean include_arity'
15731         argument specifying whether or not we should include the generic
15732         arity in the type name.
15733         (_mono_type_get_name): New static function.
15734         (mono_class_setup_vtable): If we're a generic instance, don't
15735         include the generic arity in the names of explicit method
15736         implementations.        
15737
15738 2004-08-03  Martin Baulig  <martin@ximian.com>
15739
15740         * class.c (mono_type_get_name_recurse): Enclose the generic type
15741         arguments in `<', '>'.
15742
15743 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15744
15745         * gc.c: make GC warning messages use the trace API, they are just
15746         noise to most of the users.
15747
15748 2004-08-03  Martin Baulig  <martin@ximian.com>
15749
15750         * debug-mono-symfile.c (read_string): Correctly read the string.
15751
15752 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
15753
15754         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
15755         
15756         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
15757         icalls.
15758         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
15759
15760 2004-07-30  Martin Baulig  <martin@ximian.com>
15761
15762         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
15763         Reflect latest symbol writer changes.   
15764
15765 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15766
15767         * object.c: always create an object if null is passed
15768         to Invoke() where a valuetype is expected.
15769
15770 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
15771
15772         * marshal.c (mono_marshal_init): make managed
15773         signatures match native ones better for 64bits.
15774
15775 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15776
15777         * appdomain.c: hack to build correctly the private bin path on windows.
15778         Fixes bug #61991.
15779
15780 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
15781
15782         * assembly.c: Load mscorlib from the correct framework directory
15783           (mono/<version>/mscorlib.dll).
15784         * appdomain.h: Added prototypes for new functions.
15785         * internals.h: Added some prototypes.
15786         * domain.c: When initializing the runtime, get from the executable and
15787           the configuration files the runtime version that the app supports.
15788           Added support methods for reading app.exe.config. Added list of versions
15789           supported by the JIT. Added two new methods: mono_init_from_assembly,
15790           which initializes the runtime and determines the required version from
15791           the provided exe file, and mono_init_version, which initializes
15792           the runtime using the provided version.
15793         * icall.c: Get machine.config from version-specific directory.
15794         * reflection.c: When generating an image, embed the version number
15795           of the current runtime.
15796
15797 2004-07-28  Dick Porter  <dick@ximian.com>
15798
15799         * socket-io.c
15800         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
15801         returned sockaddr size before creating the remote address object.
15802         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
15803         61608.
15804
15805 2004-07-28  Dick Porter  <dick@ximian.com>
15806
15807         * locales.c (string_invariant_compare_char): Fix invariant char
15808         compares between upper and lower cases.  Fixes bug 61458.
15809
15810 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
15811         
15812         * marshal.c: actually cache stelem.ref wrappers.
15813         
15814 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
15815
15816         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
15817         sections and remove the mono_cli_rva_map () function.
15818
15819 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
15820
15821         * debug-mono-symfile.c: fix one more endianess issue, from a patch
15822         by Geoff Norton (<gnorton@customerdna.com>).
15823
15824 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
15825
15826         * class.c: fix class loads for pointer types (typeof(int) !=
15827         typeof(int*)).
15828
15829 2004-07-27  Martin Baulig  <martin@ximian.com>
15830
15831         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
15832         reading the debugging information from an external ".mdb" file.
15833
15834 2004-07-24  Martin Baulig  <martin@ximian.com>
15835
15836         * reflection.c (mono_image_get_type_info): Only write a class
15837         layout entry if we actually have a size or a packing size.
15838
15839 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15840
15841         * reflection.c (type_get_fully_qualified_name): 
15842         insert cast to get type checking of ?: with non-gcc compilers
15843
15844 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
15845
15846         * rand.c: use g_getenv for both lookups of
15847         MONO_EGD_SOCKET
15848
15849 2004-07-17  Martin Baulig  <martin@ximian.com>
15850
15851         * reflection.c (mono_reflection_bind_generic_method_parameters):
15852         Set `gmethod->reflection_info'.
15853
15854 2004-07-17  Martin Baulig  <martin@ximian.com>
15855
15856         * class.c (mono_class_create_from_typedef): Insert the newly
15857         created class into the hash table before computing the interfaces
15858         since we could be called recursively.
15859
15860 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
15861
15862         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
15863         function to implement stelem.ref in managed code
15864         * class-internals.h, debug-helpers.c: a new wrapper type
15865         for the above.
15866
15867 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
15868
15869         * gc.c: allow GC handles to work even when no GC is compiled in.
15870         Fix part of bug #61134 (GetAddrOfPinnedObject).
15871
15872 2004-07-13  Peter Williams  <peter@newton.cx>
15873  
15874         * process.c (complete_path): Make sure we don't attempt to execute
15875         directories.
15876  
15877 2004-07-12  Geoff Norton <gnorton@customerdna.com>
15878
15879         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
15880           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
15881           and will add/subtract the hour if needed
15882
15883 2004-07-12  Martin Baulig  <martin@ximian.com>
15884
15885         * reflection.c (mono_field_get_object): If we have
15886         `field->generic_info', take the attributes from
15887         `field->generic_info->generic_type'.    
15888
15889 2004-07-12  Martin Baulig  <martin@ximian.com>
15890
15891         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
15892         This function must be called before initializing the runtime.
15893         (mono_debug_init_1): New function; call this after initializing
15894         the runtime, but before loading the assembly.  It tells the
15895         debugger to load corlib and the builtin types.
15896
15897         * mono-debug-debugger.c: Did some larger changes in the debugging
15898         code; support recursive class declarations, make sure we actually
15899         add all classes.
15900
15901 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15902
15903         * debug-helpers.c: undo my previous patch and fixed the real issue in
15904         ../mini/exceptions-x86.c
15905
15906 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15907
15908         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
15909         when no HOME env. variable was set and a NullRef was thrown in a .cctor
15910         called from other .cctors.
15911
15912 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
15913
15914         * loader.c: Removed the mono_loader_wine_init hack now that we are
15915         doing a managed version of Windows.Forms.
15916
15917 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
15918
15919         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
15920         threadpool.c, threads.c: remove static data from rootset.
15921
15922 2004-07-09  Dick Porter  <dick@ximian.com>
15923
15924         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
15925         Don't do any more processing if the matched length was 0.  It was
15926         increasing the size of the string before.  Fixes bug 61167.
15927
15928 2004-07-09  Dick Porter  <dick@ximian.com>
15929
15930         * socket-io.h:
15931         * socket-io.c
15932         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
15933         Add support for SO_PEERCRED if its available.
15934
15935 2004-07-09  Peter Bartok <pbartok@novell.com>
15936         * loader.c: winelib.exe.so error message is now only displayed if
15937         MONO_DEBUG is set. To help us avoid questions when people are trying
15938         out the new Managed.Windows.Forms.
15939
15940 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
15941
15942         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
15943         for isinst and castclass wrappers.
15944
15945         * class-internals.h icall.c: Move registration and lookup of JIT icalls
15946         to libmetadata from the JIT, so they could be used by the marshalling
15947         code and the interpreter.
15948
15949         * marshal.c: Register marshalling related JIT icalls here instead of
15950         in mini.c. Use CEE_MONO_ICALL instead of the family of 
15951         CEE_MONO_PROC<x> opcodes to call marshalling functions.
15952
15953         * metadata.h: Remove unneeded marshalling conversions.
15954
15955         * opcodes.c: Update for new opcodes.
15956         
15957 2004-07-08  Martin Baulig  <martin@ximian.com>
15958
15959         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
15960         (mono_debug_get_domain_data): Make this function static.
15961
15962 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
15963
15964         * gc.c, object.h: add nice GC handle API for embedders.
15965
15966 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
15967
15968         * reflection.c: more changes for the new api
15969
15970         * object.c: When we reflect on a field w/ a constant value, it
15971         will not have a memory location, so we must access metadata. Also,
15972         allow easier reading of strings so that we can read them from
15973         the constant data.
15974
15975         * class.c (mono_class_layout_fields): no need for literal fields here.
15976
15977         * class-internals.h: api changes for const fields
15978
15979         * icall.c (ves_icall_get_enum_info): use new apis for const fields
15980
15981 2004-07-06  Martin Baulig  <martin@ximian.com>
15982
15983         * mono-debug.h: Increment version number to 44.
15984
15985         * mono-debug.c (mono_debug_add_wrapper): The second argument is
15986         now a gpointer, rewrote this whole method.
15987
15988         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
15989         function.  Add information about the wrapper in a new "misc table".
15990
15991         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
15992         for the new misc table.
15993
15994 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
15995
15996         * metadata-internals.h image.c: Add a cache for helper signatures.
15997
15998         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
15999
16000 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
16001
16002         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
16003         delegates from a delegate. Fixes #61033.
16004         
16005         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
16006         marshalling of stringbuilder arrays. Fixes #59900.
16007
16008 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
16009
16010         * icall.c: Add EnumBuilder:setup_enum_type icall.
16011
16012 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
16013
16014         * icall.c: Added a new icall for the property version of
16015         OffsetOfStringData.
16016
16017 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
16018
16019         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
16020         it has a constant size across platforms.
16021
16022         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
16023         stack trace.
16024
16025 2004-06-29  Martin Baulig  <martin@ximian.com>
16026
16027         * mono-debug.c (mono_debug_add_method): Protect the whole function
16028         in mono_debugger_lock(), not just parts of it.
16029
16030 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
16031
16032         * reflection.c: make sure padding bytes in heaps are zeroed.
16033
16034 2004-06-24  David Waite  <mass@akuma.org>
16035
16036         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
16037         image.c, loader.c, locales.c, marshal.c, metadata.c,
16038         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
16039         string-icalls.c, threads.c: change to C90-style comments from C99 /
16040         C++ -style
16041
16042 2004-06-24  Dick Porter  <dick@ximian.com>
16043
16044         * threads.c
16045         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
16046         return createdNew.  Fixes bug 60412.
16047
16048         * threads-types.h: 
16049         * icall.c: Add createdNew parameter to CreateMutex icall
16050
16051 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
16052
16053         * reflection.c, object-internals.h: save default value in params.
16054
16055 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16056
16057         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
16058         no need to build a new path combining that with the application base.
16059         Fixes bug #60442.
16060
16061 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
16062
16063         * reflection.c: fixed minor standard compliance issues.
16064
16065 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
16066
16067         * reflection.c: fixed issue with encoding some custom attributes
16068         (arrays in properties and fields, bug #60411).
16069
16070 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16071
16072         * reflection.c: fix start address when copying the public key token.
16073
16074 2004-06-23  Martin Baulig  <martin@ximian.com>
16075
16076         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
16077         the `exc' object in a static object to put it into the GC's root set.
16078
16079 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
16080
16081         * reflection.c: make mono_reflection_setup_internal_class ()
16082         callable a second time to setup a new parent class.
16083
16084 2004-06-23  Dick Porter  <dick@ximian.com>
16085
16086         * threads.c: Check for WAIT_IO_COMPLETION return values.
16087
16088 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
16089
16090         * appdomain.c: Removed the g_free on the public key token. Now copy 
16091         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
16092         * assembly.c: Added public key token string value when loading 
16093         assemblies. Fix bug #60439.
16094         * icall.c: Added missing informations (like public key) in 
16095         GetReferencedAssemblies. Fix #60519.
16096         * image.h: Changed definition for public key token from const char*
16097         public_tok_value to guchar public_key_token [17];
16098         * reflection.c: Updated for changes to public key token.
16099
16100 2004-06-22  Lluis Sanchez Gual
16101
16102         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
16103         for the field in base classes.
16104
16105 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
16106
16107         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
16108         mark headers as not supported, they are installed only for use by the
16109         debugger.
16110
16111 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
16112
16113         * *.c, *.h: avoid namespace pollution in public headers.
16114
16115 2004-06-21  Martin Baulig  <martin@ximian.com>
16116
16117         * exception.c (mono_get_exception_security): It's in
16118         "System.Security", not in "System".
16119
16120         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
16121         the exception classes.
16122
16123 2004-06-21  Martin Baulig  <martin@ximian.com>
16124
16125         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
16126         Protect the exception object from being finalized.
16127
16128 2004-06-21  Martin Baulig  <martin@ximian.com>
16129
16130         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
16131         public function.
16132
16133 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
16134
16135         * reflection.c: Load the assembly in mono_reflection_type_from_name,
16136         if it was not loaded before. Fix parts of #60439.
16137
16138 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
16139
16140         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
16141         code that was broken since Ben's change: wrappers are now
16142         dependent on the method signature only again.
16143
16144 2004-06-21  Martin Baulig  <martin@ximian.com>
16145
16146         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
16147         added interface support.
16148
16149 2004-06-21  Martin Baulig  <martin@ximian.com>
16150
16151         * class.c (mono_vtable_get_static_field_data): New public method.
16152
16153 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
16154
16155         * filewatcher.c : Windows build fix to be compliant with API changes.
16156
16157 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
16158
16159         * class.h, class.c: more accessors.
16160         * metadata.h, metadata.c: prepare for hiding MonoType and
16161         MonoMethodSignature: people should use the accessors from now on
16162         outside of the tree.
16163
16164 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
16165
16166         * *.c, *.h: more API cleanups.
16167
16168 2004-06-18  Jackson Harper  <jackson@ximian.com>
16169
16170         * assembly.c: Trace loading assemblies.
16171         * loader.c: Trace loading native libraries.
16172         * mono-config.c: Trace loading config files.
16173         
16174 2004-06-18  Dick Porter  <dick@ximian.com>
16175
16176         * locales.c: Tell ICU the lengths of strings, it can cope with
16177         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
16178
16179 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
16180
16181         * image.c: swapped name/filename;
16182
16183 2004-06-18  Martin Baulig  <martin@ximian.com>
16184
16185         * mono-debug-debugger.c (write_class): Write the parent class at
16186         the end of the header.
16187
16188 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
16189
16190         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
16191
16192 2004-06-17  Raja R Harinath  <rharinath@novell.com>
16193
16194         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
16195         (bundle_obj): New conditional define.
16196         (BUILT_SOURCES): Remove.
16197         ($(bundle_srcs)): Make parallel-make safe.
16198         (libmonoruntime_la_LIBADD): Make unconditional.
16199         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
16200         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
16201
16202 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
16203
16204         * culture-info-tables.h: It was inconsistent with the latest
16205           supp info files.
16206
16207 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
16208
16209         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
16210         be loaded.
16211
16212         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
16213         with gcc 2.95.
16214
16215 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
16216
16217         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
16218         cleaned up public header threads.h.
16219
16220 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
16221
16222         * Makefile.am, *.c, *.h: more API cleanups.
16223
16224 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
16225
16226         * Makefile.am: removed monosn from compilation.
16227         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
16228         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
16229         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
16230         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
16231         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
16232         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
16233
16234 2004-06-15  Jackson Harper  <jackson@ximian.com>
16235
16236         * assembly.c: Make locales lower case when searching the GAC for
16237         assemblies. gacutil will always make locales lowercase when
16238         installing so this effectively makes them case insensitive.
16239         
16240 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
16241
16242         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
16243         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
16244           parameter which allows to choose whether the wait can be interrupted or 
16245           not. Also added the method mono_monitor_enter(), which locks the monitor
16246           using an infinite wait and without allowing interruption.
16247           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
16248           interrupted.
16249         * object.h: Added new fields in MonoThread. suspend_event holds the event
16250           used to susped/resume the thread. synch_lock is the lock object to use for
16251           modifying the thread state.
16252         * threads.c: Use the new synch_lock object for locking, instead of "this",
16253           which can generate deadlocks.
16254           Moved thread state change in Thread.Sleep and Thread.Join from managed
16255           to unmanaged code. This avoids a deadlock when the thread was suspended
16256           just after acquiring the thread lock.
16257           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
16258           Implemented Thread.Suspend using an event instead of ThreadSuspend,
16259           which is not fully implemented in the io-layer.
16260         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
16261
16262 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
16263
16264         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
16265         threads-types.h: more API cleanups.
16266
16267 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
16268
16269         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
16270         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
16271         threadpool.c, threads.c: first pass at the exported API cleanup.
16272
16273 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
16274
16275         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
16276
16277 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16278
16279         * icall.c: added internalGetHome.
16280
16281 2004-06-14  Dick Porter  <dick@ximian.com>
16282
16283         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
16284         possible to return successfully when '.' or '..' were the only
16285         entries in a directory, but were skipped.  The MonoIOStat was not
16286         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
16287         Fixes bug 59574.
16288
16289 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
16290
16291         * reflection.c: make binaries run on .Net 1.1 by default.
16292
16293 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
16294
16295         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
16296
16297 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
16298
16299         * marshal.c: keep track of struct size with explicit layout
16300         (bug #59979).
16301
16302 2004-06-12  Martin Baulig  <martin@ximian.com>
16303
16304         * mono-debug-debugger.c: Comment out a debugging g_message().
16305
16306 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
16307
16308         * reflection.c, reflection.h: do not free custom attrs that are cached.
16309         * icall.c: use braces to make code clearer.
16310
16311 2004-06-11  Martin Baulig  <martin@ximian.com>
16312
16313         * class.h (MonoInflatedField): New type.
16314         (MonoClassField): Replaced `MonoType *generic_type' with
16315         `MonoInflatedField *generic_info'.
16316
16317         * icall.c
16318         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
16319
16320 2004-06-11  Martin Baulig  <martin@ximian.com>
16321
16322         * reflection.c (mono_image_create_method_token): Correctly encode
16323         varargs methods.
16324
16325 2004-06-11  Martin Baulig  <martin@ximian.com>
16326
16327         * metadata.c (mono_metadata_parse_method_signature): When parsing
16328         a MethodDef which has VarArgs, also set sentinelpos if we don't
16329         have any parameters.
16330
16331 2004-06-11  Martin Baulig  <martin@ximian.com>
16332
16333         * verify.c (mono_method_verify): In CEE_CALL, use
16334         mono_method_get_signature() to get the method's signature, unless
16335         we're a PInvoke method.
16336
16337 2004-06-10  Jackson Harper  <jackson@ximian.com>
16338
16339         * assembly.c: Use <path>/lib/mono/gac for the extra paths
16340         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
16341         logical name as the supplied path is just a prefix to the gac not
16342         the direct path to it.
16343         
16344 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
16345
16346         * reflection.c: make the token for a created method match
16347         the token of the MethodBuilder it was created from
16348         (IKVM requires this behaviour now).
16349
16350 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
16351
16352         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
16353         reflection.c, socket-io.c: leak fixes.
16354
16355 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
16356
16357         * icall.c: handle sentinel pos in vararg methods in position different
16358         from 0.
16359
16360 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16361
16362         * culture-info-tables.h: freshly generated.
16363
16364 2004-06-09  Martin Baulig  <martin@ximian.com>
16365
16366         * loader.c (mono_get_method_constrained): Call `mono_class_init
16367         (constrained_class)'.   
16368
16369 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
16370
16371         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
16372         any methods. Fixes #59629.
16373
16374 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16375
16376         * culture-info-tables.h: reflecting locale-builder updates.
16377
16378 2004-06-08  Dick Porter  <dick@ximian.com>
16379
16380         * object.h:
16381         * locales.c: Fixed compile warnings, including a real bug in
16382         CompareInfo_internal_compare.
16383         
16384 2004-06-08  Dick Porter  <dick@ximian.com>
16385
16386         * locales.c
16387         (ves_icall_System_Globalization_CompareInfo_internal_index):
16388         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
16389         Double-check the resuls of usearches, because ICU currently
16390         ignores most of the collator settings here.  Fixes bug 59720.
16391         
16392 2004-06-08  Dick Porter  <dick@ximian.com>
16393
16394         * locales.c
16395         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
16396         Fix memory leak and segfault-causing typo.  No idea how this one
16397         lasted so long without being noticed.
16398
16399 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
16400
16401         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
16402         any methods. Fixes #59629.
16403
16404 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16405
16406         * assembly.c:
16407         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
16408         own the critical section before). Removed dead code (that's done
16409         in the preload hook).
16410
16411         (mono_assembly_load_with_partial_name): call the preload hook.
16412
16413 2004-06-08  Martin Baulig  <martin@ximian.com>
16414
16415         * metadata.c (mono_metadata_signature_alloc): Default
16416         `sentinelpos' to -1.
16417
16418         * reflection.c (mono_image_get_array_token): Likewise.
16419
16420 2004-06-08  Martin Baulig  <martin@ximian.com>
16421
16422         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
16423
16424         * metadata.c (mono_metadata_parse_method_signature): When parsing
16425         a MethodDef which has VarArgs, set sentinelpos.
16426
16427         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
16428         `gint16' since we're using -1 for non-varargs methods.
16429
16430         * reflection.c
16431         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
16432         (method_encode_signature): Added varargs support.
16433         (method_builder_encode_signature): Likewise.
16434         (mono_image_get_varargs_method_token): New static method.
16435         (mono_image_create_method_token): New public method; this is
16436         called via an icall instead of mono_image_create_token() when
16437         calling a varargs method.       
16438
16439 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
16440
16441         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
16442
16443 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16444
16445         * culture-info-tables.h : Reflecting the latest locale-builder that
16446           fixed empty array representation ({} to {0}).
16447
16448 2004-06-07  Jackson Harper  <jackson@ximian.com>
16449
16450         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
16451         looking up extra gac paths. This allows MONO_GAC_PATH to act
16452         exactly like a prefix.
16453         
16454 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
16455
16456         * reflection.c (mono_reflection_type_from_name): Make a copy of the
16457         type name before modifying it. Fixes #59405.
16458
16459 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
16460
16461         * culture-info.h: added fields for "all datetime patterns".
16462         * locales.c: (  ves_icall_System_Globalization_CultureInfo
16463           _construct_datetime_format ()): fill xxx_patterns fields.
16464         * object.h: added fields for "all datetime patterns" to
16465           MonoDateTimeFormatInfo.
16466         * culture-info-tables.h: reflecting locale-builder updates.
16467
16468 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
16469
16470         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
16471         the event has no add and remove methods. Fixes #59629.
16472
16473 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
16474
16475         * object.c: Fixed possible integer overflow when allocating large
16476         strings.
16477
16478 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
16479
16480         * culture-info-tables.h: reflecting locale-builder updates.
16481
16482 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
16483
16484         * culture-info-tables.h: reflecting locale-builder updates.
16485
16486 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
16487
16488         * culture-info-tables.h: reflecting locale-builder updates.
16489
16490 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
16491
16492         * threads.c: Made Thread.Sleep abortable.
16493
16494 2004-06-02  Martin Baulig  <martin@ximian.com>
16495
16496         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
16497
16498         * debug-mono-symfile.h: Bumped symbol file version number to 37.
16499
16500 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
16501
16502         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
16503
16504 2004-05-30  Jackson Harper  <jackson@ximian.com>
16505
16506         * reflection.c: Do not hardcode assembly versions or public key
16507         tokens anymore. All of this except the corlib section was dead
16508         code anyways.
16509         
16510 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
16511
16512         * object.c (mono_runtime_invoke_array): Automatically create boxed
16513         objects for byref valuetypes if needed. Fixes #59300.
16514         
16515         * object.c (mono_method_return_message_restore): Handle 
16516         MONO_TYPE_OBJECT as well.
16517
16518 2004-05-28  Jackson Harper  <jackson@ximian.com>
16519
16520         * reflection.c: The modified type encoding was causing build
16521         problems. Reverted for now.
16522         
16523 2004-05-28  Jackson Harper  <jackson@ximian.com>
16524
16525         * reflection.c/h: Take an assembly ref so that we dont create
16526         fully qualified names when encoding types in the same assembly as
16527         the custom attribute being emitted.
16528         * appdomain.c: Increment version number.
16529         
16530 2004-05-26  Duncan Mak  <duncan@ximian.com>
16531
16532         * icall.c
16533         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16534         Set the full version number (major, minor, build, revision).
16535
16536 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
16537
16538         * marshal.c (emit_struct_conv): increment src/dst after blit
16539         (mono_marshal_get_managed_wrapper,
16540         mono_marshal_get_native_wrapper): make sure we have marshalling
16541         info before marshalling params (info computation affects
16542         blittable)
16543
16544         * class.c (class_compute_field_layout): correctly deal with
16545         blittable
16546         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
16547         value types (as per what windows dows by default)
16548         (mono_class_setup_mono_type): System.ValueType is blittable
16549         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
16550         blittable
16551
16552         * marshal.c (mono_marshal_load_type_info): flag types  as
16553         non-blittable if the native layout doesn't match the managed
16554         layout
16555
16556 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16557
16558         * appdomain.c: don't add stuff in the private search path that is
16559         above the application base. If application base is not set, there's
16560         no private search path.
16561
16562 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
16563
16564         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
16565         byref struct arguments in native->managed marshalling.
16566
16567 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
16568
16569         * marshal.c (mono_marshal_get_runtime_invoke): correctly
16570         cache methods using signature (special case for methods
16571         that are value type or string class)
16572         
16573         * image.c (mono_image_close): clean up allocated GSList's
16574         in runtime_invoke_cache.
16575
16576 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16577
16578         * mono-config.c: set the correct path for mono_cfg_dir on windows when
16579         there's no MONO_CFG_DIR environment variable defined.
16580
16581 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16582
16583         * threads.c: windows version must be >= 0x0500 to include OpenThread.
16584
16585 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
16586
16587         * threadpool.c: Really wait for 500ms after the async call, even if the wait
16588           is interrumped.
16589         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
16590           before waiting for it, and call CloseHandle after the wait to unref it.
16591           This will make sure that handles are not disposed too early.
16592
16593 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16594
16595         * appdomain.c:
16596         * appdomain.h:
16597         * icall.c: removed
16598         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
16599         needed now.
16600
16601         * object.c: se the application_base only for the domain that runs
16602         Main. Fixes bug #59216,
16603
16604 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16605
16606         * appdomain.c:
16607         * object.c: only the domain in which Main is run have
16608         SetupInformation.ConfigurationFile set, so moved a few lines from
16609         appdomain.c to object.c.
16610
16611 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16612
16613         * appdomain.c: we tried to load [name].(dll|exe), but according
16614         to bug #57710, we must also try [culture]/[name].(dll|exe) and
16615         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
16616         There's a test case attached to bug #58922.
16617
16618 2004-05-27  Dick Porter  <dick@ximian.com>
16619
16620         * icall.c:
16621         * file-io.c: Implemented icalls for locking and unlocking regions
16622         in a file.
16623         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
16624         FALSE on error (fixes both compiler warning and real bug.)
16625
16626 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
16627
16628         * culture-info-tables.h: reflecting locale-builder updates.
16629
16630           (Added missing ChangeLog entry for 05/26)
16631
16632 2004-05-27  Jackson Harper  <jackson@ximian.com>
16633
16634         * locales.c: Fix some cut and paste errors.
16635         
16636 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16637
16638         * mono-config.c: set the correct path for config. directory on windows.
16639
16640 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16641
16642         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
16643           on win32.
16644
16645 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16646
16647         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
16648         from pinvoke functions.
16649         
16650         * marshal.c (mono_ftnptr_to_delegate): Implement this.
16651
16652 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
16653
16654         * culture-info-tables.h: reflecting locale-builder updates.
16655
16656 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
16657
16658         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
16659         #59086.
16660
16661 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
16662
16663         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
16664         * icall.c: Modified icalls for RNG.
16665         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
16666         Windows (CryptoAPI).
16667
16668 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16669
16670         * locales.c: Fix build.
16671
16672 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
16673
16674         * culture-info-tables.h: reflecting locale-builder updates.
16675
16676 2004-05-25  Jackson Harper  <jackson@ximian.com>
16677
16678         * locales.c: When creating the current culture use the $LANGs
16679         specific culture. So DateTimeFormat and NumberFormat entries are created.
16680         
16681 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
16682
16683         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
16684         a char array as parameter.
16685
16686 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
16687
16688         * image.c: In mono_image_open(), always use an absolute path name to
16689           look for already loaded images.
16690
16691 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
16692
16693         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
16694         missing in the windows build (like older cygwin include files).
16695
16696 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
16697
16698         * icall.c: Fixed check for possible integer overflow in Buffer_
16699         BlockCopy icall. Replaced comments style // by /* */.
16700
16701 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
16702
16703         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
16704         
16705         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
16706         check after MONO_VTADDR. Fixes pinvoke2.exe.
16707
16708         * marshal.h marshal.c metadata.h: Add beginnings of support for
16709         ftnptr -> delegate marshalling.
16710
16711 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
16712
16713         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
16714         * threads.c: Fix warnings.
16715
16716 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
16717
16718         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
16719         * icall.c: Registered icalls for Suspend and Resume.
16720         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
16721           Thread.Abort.
16722         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
16723         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
16724         * process.c: Use WaitForSingleObjectEx.
16725         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
16726           checkpoints.
16727         * threads.c, threads.h: Make use of new Ex wait methods. Improved
16728           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
16729           for Suspend and Resume. Added new mono_thread_stop, used for stoping
16730           background threads. Added basic support for Abort in Windows.
16731           Start new threads using a managed delegate invoke wrapper. This wrapper
16732           has an interruption checkpoint that is needed since an interruption
16733           can be requested before the thread leaves the unmanaged code that starts 
16734           the thread.
16735         * marshal.c: Added interruption checkpoint after every native call, and
16736           also before managed calls for wrappers called from unmanaged code to
16737           go into managed code.
16738         * object.h: Added new field in MonoThread to keep track of interruption
16739           requests.
16740
16741 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
16742
16743         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
16744         calls.
16745
16746 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16747
16748         * appdomain.c:
16749         * assembly.c:
16750         * gc.c:
16751         * locales.c:
16752         * mono-config.c:
16753         * rand.c: getenv -> g_getenv (windows!)
16754
16755         * process.c: complete_path is also used on non-windows platforms.
16756
16757 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16758
16759         * icall.c: new signature for Process_Start.
16760
16761         * process.[ch]: new signature for Process_Start. If we're on windows
16762         and UseShellExecute is false, we have to search for the program by
16763         ourselves if we don't get a full path.
16764
16765 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
16766
16767         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
16768         marshalling and call CleanUpNativeData if needed. Fixes #58646.
16769
16770 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16771
16772         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
16773         Fixes bug #58373.
16774
16775 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16776
16777         * process.c: use double quotes to quote program name and arguments on
16778         windows. Fixes bug #58575.
16779
16780 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16781
16782         * file-io.c: don't return "." and ".." when using windows Find*File.
16783
16784 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
16785
16786         * marshal.c: Don't pass wrappers to message init because method 
16787         addressed used to lookup metadata. part of remoting[2|3] fix.
16788
16789 2004-05-15  Jackson Harper  <jackson@ximian.com>
16790
16791         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
16792         path is essentially the same as MONO_PATH except that it points to
16793         GACs instead of lib directories.
16794         * loader.h: The user gac is gone so we dont need function to
16795         enable/disable it.
16796         * mono-config.c: user gac option is now gone.
16797         
16798 2004-05-15  Jackson Harper  <jackson@ximian.com>
16799
16800         * culture-info.h: Make defines more consistent, add calendar data
16801         to the culture info table.
16802         * culture-info-tables.h: Add basic calendar data. Basically
16803         everyone gets default gregorian until all the data is
16804         updated.
16805         * locales.c: Use the new consistent defines. Set calendar data for
16806         culture info objects.
16807         * object.h: add a field for calendar data to CultureInfo
16808         
16809 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
16810
16811         * image.c: image->runtime_invoke_cache is keyed on signatures now.
16812         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
16813         a signature.
16814         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
16815         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
16816         an extra param that is the pointer of the method to invoke. The IL for
16817         the invoke method is no longer specific to the method, but to the
16818         signature of the method. Thus, we can share the same code for multiple
16819         methods. This reduces the number of methods that have to be compiled.
16820
16821 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
16822
16823         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
16824
16825         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16826
16827         * icall.c: Optimize Buffer.BlockCopy.
16828
16829 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16830
16831         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
16832         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
16833         quote). Changed them to "MMMM yyyy".
16834
16835 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
16836
16837         * rand.c
16838         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
16839
16840 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
16841
16842         * reflection.h: Updated after changes to managed structures.
16843
16844         * appdomain.c: Bump corlib version.
16845
16846 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16847
16848         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
16849         windows.
16850
16851 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16852
16853         * Makefile.am: link to ../os/libmonoos.la on windows.
16854
16855         * assembly.c:
16856                 -If MONO_DEBUG, warn about non-existing directories in
16857                 MONO_PATH.
16858                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
16859                 compile time variable.
16860                 -Removed init_default_path and call mono_set_rootdir from
16861                 libmonoos.a instead (windows only).
16862
16863         * assembly.h: declare mono_assembly_getrootdir().
16864
16865         * domain.c:
16866         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
16867
16868         * loader.c: s/getenv/g_getenv/
16869
16870 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
16871
16872         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
16873
16874         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
16875
16876         * metadata.h: Add new marshalling conversions.
16877
16878         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
16879         function.
16880
16881         * reflection.c (mono_reflection_get_type): Lookup the type in all
16882         modules of a multi-module assembly. Fixes #58291.
16883
16884 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
16885
16886         * threads.c: Before aborting a background, set the StopRequested
16887         state.  This avoids throwing the Abort exception.
16888         In mono_thread_manage, don't continue with the shutdown until all
16889         aborted threads have actually stopped.
16890
16891 2004-05-10  Jackson Harper  <jackson@ximian.com>
16892
16893         * locales.c: Remove the modifier from culture names.
16894         
16895 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16896
16897         * Makefile.am: monosn is not installed any more. It has been deprecated
16898         in favor of sn.
16899
16900 2004-05-07  Jackson Harper  <jackson@ximian.com>
16901
16902         * locales.c
16903         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
16904         Fix array construction, add bailout if the length is 0.
16905
16906 2004-05-07  Dick Porter  <dick@ximian.com>
16907
16908         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
16909         machine doesn't have a DNS entry.  Patch by Urs Muff
16910         (umuff@quark.com), fixes bug 57928.
16911
16912 2004-05-06  Jackson Harper  <jackson@ximian.com>
16913
16914         * reflection.c: Handle null PublicTokens properly. alloc mem for
16915         assembly names culture so we dont crash when freeing it.
16916         
16917 2004-05-06  Jackson Harper  <jackson@ximian.com>
16918
16919         * assembly.c: Check the usergac when loading with partial names.
16920         
16921 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
16922
16923         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
16924         does nothing for now (not required for Linux/Windows) but the class
16925         library can call it (and a newer or modified runtime could need it).
16926         * icall.c: Registred icall.
16927
16928 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16929
16930         * loader.c: prints a message on module loading error we set MONO_DEBUG
16931         environment variable.
16932
16933 2004-05-05  Jackson Harper  <jackson@ximian.com>
16934
16935         * appdomain.c: Handle PublicKeyToken=null properly.
16936         
16937 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
16938
16939         * environment.c|h: Added icall ves_icall_System_Environment_
16940         GetOSVersionString to get the current OS version as a string.
16941         * icall.c: Registred icall.
16942
16943 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
16944
16945         * object.c: in mono_object_get_virtual_method(), take into account that
16946         non-virtual methods don't have a slot in the vtable. Check needed when
16947         the object is a proxy.
16948
16949 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
16950
16951         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
16952         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
16953
16954         * object.c (mono_class_compute_gc_descriptor): Fix warning.
16955
16956         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
16957         passed when a valuetype is expected.
16958
16959         * object.c (mono_unhandled_exception): Only set the exit code if the
16960         exception happens in the main thread. Fixes thread5.exe.
16961
16962         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
16963         invalid names. Fixes #58047.
16964
16965 2004-05-03  Jackson Harper  <jackson@ximian.com>
16966
16967         * assembly.c: This line was committed accidently and is unneeded.
16968         
16969 2004-05-03  Jackson Harper  <jackson@ximian.com>
16970
16971         * icall.c: Add new icall for Assembly::LoadWithPartialName
16972         * assembly.c/.h: new function that probes the GAC to load partial
16973         assembly names by Paolo Molaro.
16974         
16975 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16976
16977         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
16978         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
16979         (type_get_fully_qualified_name): Added PublicKeyToken when building a
16980         full type name.
16981
16982 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16983
16984         * appdomain.c: fixed check for 'neutral' culture and removed warning.
16985         * reflection.c: fix bug when parsing a full type name and Version is not
16986         the last thing in the string.
16987
16988 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
16989
16990         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
16991         crashes when it is freed.
16992
16993 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16994
16995         * assembly.c: print the compat warning to stderr.
16996
16997 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
16998
16999         * assembly.c (mono_assembly_load_references): Add a compatibility
17000         hack to run old applications that might be still referencing the
17001         3300-based assemblies, only do this for System.xxx.
17002
17003 2004-05-01  Jackson Harper  <jackson@ximian.com>
17004
17005         * appdomain.c: If the culture is neutral we set it to "".
17006         
17007 2004-04-29  Jackson Harper  <jackson@ximian.com>
17008
17009         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
17010
17011 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
17012  
17013         * string-icalls.c: added low overhead function for copying chars
17014         * icall.c: added needed icall for the above function
17015  
17016 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17017
17018         * icall.c: fix return value of get_global_assembly_cache.  Implemented
17019         Environment.GetLogicalDrives.
17020
17021 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
17022
17023         * rand.c: try and talk to egd or prngd
17024         for random bytes if opening devices fail.
17025
17026 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
17027
17028         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
17029         alignment for the type using the native alignment of its members 
17030         instead of using klass->min_align.
17031
17032         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
17033
17034 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17035
17036         * file-io.c:
17037         * socket-io.c: added check for sys/aio.h.
17038
17039 2004-04-28  Dick Porter  <dick@ximian.com>
17040
17041         * threads.c: Don't abort a thread thats already aborting, when
17042         terminating everything.
17043
17044 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17045
17046         * icall.c: added 2 new async calls for Socket.
17047
17048         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
17049         IO on *nix systems.
17050
17051         * threadpool.c: removed unused variable.
17052
17053 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
17054
17055         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
17056
17057 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
17058
17059         * locales.c: put back string_invariant_tolower () and
17060         string_invariant_toupper ().
17061
17062 2004-04-26 David Waite <mass@akuma.org>
17063
17064         * file-io.h:
17065         * socket-io.h:
17066         * threads.h:
17067         * unicode.h: remove comma from end of enumeration declarations
17068
17069 2004-04-26 David Waite <mass@akuma.org>
17070
17071         * debug-mono-symfile.h:
17072         * decimal.c:
17073         * mono_debug.h:
17074         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
17075
17076
17077 2004-04-26  Jackson Harper  <jackson@ximian.com>
17078
17079         * appdomain.c: Increment version number.
17080         
17081 2004-04-26  Jackson Harper  <jackson@ximian.com>
17082
17083         * appdomain.c: Set assembly references public token value when
17084         PublicKeyToken is specified, not the hash_value. Free public token
17085         values when free assembly name data. Previously the public key
17086         token was hex decoded, however we are using hex encoded public key
17087         tokens, so this is not neccasary.
17088         * assembly.c: Lookup assemblies in the gac if their public token
17089         value is set. Add function to allow enabling user gac
17090         lookups. Specify whether or not the assembly was loaded from the
17091         GAC. Compare full assembly names when checking the cache for
17092         assemblies (Temporarily disabled see comment in code). Remove
17093         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
17094         specifies trace-loader they get extra info to stdout on the
17095         loading of assemblies.
17096         * image.h: Add a field for an assembly references public token
17097         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
17098         whether an assembly has been loaded from the GAC.
17099         * image.c: Remove a corlib -> mscorlib name mapping.
17100         * loader.h: Add function to enable/disable the user gac.
17101         * mono-config.c: Check if the usergac is enabled in the config
17102         file.
17103         * icall.c: New icall to determine whether or not an assembly has
17104         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
17105         * tabldefs.h: Add constant for assemblyref flag that specifies a
17106         full public key is used instead of a public token.
17107         * reflection.c: Remove mscorlib -> corlib mappings. Set
17108         PublicTokenValue instead of hash value. This value is a hex
17109         string so it does not need to be expanded.
17110
17111 2004-04-26  Martin Baulig  <martin@ximian.com>
17112
17113         * mono-debug-debugger.c (mono_debugger_initialize): Set
17114         `mono_debugger_initialized' before calling mono_debug_lock().
17115
17116 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
17117
17118         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
17119           InternalToUpper/InternalToLower.
17120         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
17121           removed invariant culture shortcut.  This is now done in managed code.
17122         * locales.c: (string_invariant_toupper/tolower) removed.
17123
17124 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17125
17126         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
17127         Added Poll internal call.
17128
17129         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
17130         call for Poll. Select was too heavy for polling a single socket.
17131
17132         * threadpool.[ch]: added mono_threadpool_cleanup.
17133         * threads.c: use it. Don't use Thread_Abort on windows.
17134
17135 2004-04-23  Martin Baulig  <martin@ximian.com>
17136
17137         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
17138
17139 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
17140
17141         * icall.c: Registred new icalls for key pair protection and added an
17142         icall for Environment.GetFolderPath on Windows.
17143         * security.c|h: Added new icalls for key pair protection.
17144
17145 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17146
17147         * socket-io.c: don't display the non-supported family warning for known
17148         families. Now this is not displayed on windows when checking support
17149         for IPv4/IPv6.
17150
17151 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17152
17153         * class.c: don't display the layout warning for static fields.
17154
17155 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
17156
17157         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
17158         * locales.c, locales.h: Added new icalls for culture-specific
17159         Char.ToLower and Char.ToUpper.
17160
17161 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17162
17163         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
17164         by David Waite.
17165
17166 2004-04-20  Martin Baulig  <martin@ximian.com>
17167
17168         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
17169         of the type name before passing it to mono_reflection_type_from_name().
17170
17171 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
17172
17173         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
17174         encodings here. Fixes #56965.
17175
17176 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
17177
17178         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
17179         fix test on strstr result not that I can see anything that
17180         relies on the result.
17181
17182 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
17183
17184         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
17185         Fixes #57081.
17186
17187         * marshal.c (mono_marshal_get_string_encoding): New helper function.
17188
17189         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
17190         function to determine which marshalling to use for strings. Fixes
17191         #56965.
17192
17193         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
17194
17195         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
17196
17197 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
17198
17199         * icall.c: #include mono-config.h
17200
17201 2004-04-15  Jackson Harper  <jackson@ximian.com>
17202
17203         * culture-info-tables.h: Fix date formats for en-US culture.
17204         
17205 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
17206
17207         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
17208         ThreadPool.SetMinThreads.
17209         * threadpool.c: Implemented ThreadPool.GetMinThreads and
17210         ThreadPool.SetMinThreads.
17211
17212 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
17213
17214         * mono-config.c: also load the .config file in the directory
17215         where the assembly was found.
17216
17217 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
17218
17219         * assembly.c: load per-assembly config files.
17220         * icall.c: decrapified code to get the config dir and moved to
17221         mono-config.c.
17222         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
17223         per-assembly config files. When doing a dll map lookup give precedence
17224         to the per-assembly data.
17225
17226 2004-04-14  Martin Baulig  <martin@ximian.com>
17227
17228         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
17229         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
17230         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
17231
17232         * mono-debugger-debugger.c: While the debugger is locked, remember
17233         whether the symbol tables have changes and send one single
17234         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
17235
17236 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
17237
17238         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
17239
17240         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
17241         function.
17242
17243         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
17244         account when marshalling string arrays. Fixes #56965.
17245
17246 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
17247
17248         * icall.c: Add new icalls mapping for security.
17249         * security.c|h: Add internal calls for WindowsIdentity,
17250         WindowsImpersonationContext and WindowsPrincipal.
17251
17252 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
17253
17254         * class.c: Added comment to ensure the System.MonoDummy class
17255         is removed when no longer necessary
17256
17257 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
17258
17259         * appdomain.c: Pass arguments to the bootstraping exceptions to
17260         minimize JITed methods at boot
17261
17262         * metadata.c (mono_exception_from_name_two_strings): Allow for the
17263         second string to be null.
17264
17265         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
17266         Change the protocol to minimize the JIT methods at startup.  Now
17267         it Returns the internal codepage, if the value of "int_code_page"
17268         is 1 at entry, and we can not compute a suitable code page
17269         number, returns the code page as a string.
17270
17271 2004-04-13  Jackson Harper  <jackson@ximian.com>
17272
17273         * culture-info-tables.h: Fix number of decimal digits for all
17274         english locales.
17275
17276 2004-04-13  Jackson Harper  <jackson@ximian.com>
17277
17278         * icall.c: Clairfy out of sync error message. It is not always
17279         your corlib that is out of sync.
17280
17281 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
17282
17283         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
17284         properties when only the set accessor is overriden. Fixes #55874.
17285
17286 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
17287
17288         * assembly.c (mono_assembly_load_references): Make this thread safe.
17289         Fixes #56327.
17290
17291 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
17292
17293         * monosn.c: Add missing initialization calls.
17294
17295 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
17296
17297         * locales.c:
17298         ves_icall_System_Globalization_CultureInfo_construct_number_format
17299         Fix g_assert so it compiles on fussier compilers re int/ptr
17300         mismatch
17301
17302 2004-04-08  Dick Porter  <dick@ximian.com>
17303
17304         * socket-io.h:
17305         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
17306         53992.  Also rearrange the code so that the internal calls return
17307         an error value and exceptions are thrown from managed code.
17308
17309         * icall.c: Add type info to the socket icalls.
17310
17311 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17312
17313         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
17314         owes me a beer.
17315
17316 2004-04-07  Martin Baulig  <martin@ximian.com>
17317
17318         * class.c (mono_class_from_generic_parameter): Don't default
17319         `klass->parent' to `mono_defaults.object_type'.
17320
17321 2004-04-07  Martin Baulig  <martin@ximian.com>
17322
17323         * reflection.c (mono_reflection_initialize_generic_parameter): Set
17324         `param->pklass->reflection_info'.       
17325
17326 2004-04-07  Jackson Harper  <jackson@ximian.com>
17327
17328         * culture-info-tables.h: Fix date separator symbol.
17329         
17330 2004-04-07  Martin Baulig  <martin@ximian.com>
17331
17332         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
17333         from System.Type to System.MonoType.
17334
17335 2004-04-07  Martin Baulig  <martin@ximian.com>
17336
17337         * reflection.h
17338         (MonoReflectionGenericParam): Added `has_reference_type' and
17339         `has_value_type' fields.
17340
17341         * reflection.c (mono_image_get_generic_param_info): Encode the
17342         correct flags if we have the `class' or `struct' constraint.
17343
17344 2004-04-07  Martin Baulig  <martin@ximian.com>
17345
17346         * reflection.h
17347         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
17348
17349 2004-04-07  Jackson Harper  <jackson@ximian.com>
17350
17351         * appdomain.c: Revert extra patches, just wanted to bump the
17352         version number.
17353         
17354 2004-04-07  Jackson Harper  <jackson@ximian.com>
17355
17356         * Makefile.am: Add culture-info private headers.
17357         * icall.c: Add new icalls for contructing locales.
17358         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
17359         * locales.h: Declare new culture info construction methods.
17360         * object.h: Add new fields used to avoid the CultureMap to
17361         MonoCultureInfo.
17362         * culture-info.h: Definition of structs used in the culture info
17363         tables.
17364         * culture-info-tables.h: Autogenerated tables that contain culture
17365         info data. This file was generated with the locale-builder tool.
17366         * appdomain.c: Incement corlib version number.
17367         
17368 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
17369
17370         * appdomain.c: (mono_runtime_init) move mono_thread_init
17371         to before mono_object_new calls so critical sections
17372         are initialized before use.
17373
17374 2004-04-07  Martin Baulig  <martin@ximian.com>
17375
17376         * icall.c
17377         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
17378         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
17379         (ves_icall_MonoGenericParam_initialize): Removed.
17380         (monogenericparam_icalls): Removed.
17381         (generictypeparambuilder_icalls): Added new table for
17382         System.Reflection.Emit.GenericTypeParameterBuilder.
17383
17384         * reflection.c
17385         (mono_reflection_define_generic_parameter): Removed.
17386         (mono_reflection_initialize_generic_parameter): This is now called
17387         from GenericTypeParameterBuilder's .ctor.
17388
17389 2004-04-06  Martin Baulig  <martin@ximian.com>
17390
17391         * class.c (mono_class_init): Don't inflate nested classes in a
17392         generic instance.
17393         (mono_type_get_name_recurse): Include the generic arguments for
17394         generic instances and generic type declarations.
17395         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
17396         (_mono_class_get_instantiation_name): Removed.
17397         (mono_class_create_generic): Always use `gklass->name' as our name.
17398
17399         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
17400
17401         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
17402         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
17403         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
17404         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
17405         closed generic methods here.
17406
17407         * reflection.c
17408         (mono_reflection_generic_inst_get_nested_types): Removed.
17409         (inflate_mono_method): Copy the generic parameters from the
17410         MonoMethodHeader into out MonoGenericMethod.
17411
17412 2004-04-06  Martin Baulig  <martin@ximian.com>
17413
17414         * row-indexes.h
17415         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
17416
17417         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
17418
17419         * reflection.c (build_compressed_metadata): If we have any entries
17420         in the GenericParam, MethodSpec or GenericParamConstraint tables,
17421         set the header version to 1.1.
17422
17423 2004-04-06  Martin Baulig  <martin@ximian.com>
17424
17425         * class.c (mono_class_init): If we're a generic instance,
17426         initialize our nested classes, too.
17427         (_mono_class_get_instantiation_name): Deal with the new `!%d'
17428         suffix. 
17429
17430 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17431
17432         * process.c: quote the argument passed to the shell on windows.
17433
17434 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
17435
17436         * threads.c (mono_alloc_special_static_data): Allow this to be
17437         called during startup.
17438
17439 2004-04-02  Martin Baulig  <martin@ximian.com>
17440
17441         * icall.c
17442         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
17443
17444 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
17445
17446         * icall.c: Fix build.
17447
17448 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
17449
17450         * Makefile.am: Added security.c|h.
17451         * icall.c: Added icall for get_UserName;
17452         * security.c: New file for security related icalls. Added function
17453         get_UserName for System.Environment (fix #56144).
17454         * security.h: New. Header file for security.c
17455
17456 2004-04-02  Dick Porter  <dick@ximian.com>
17457
17458         * icall.c: Deleted the icalls that were obsoleted some time ago
17459         by the ICU string code, and which were mixed into the icall
17460         rearranging.  Fixes bug 55969.
17461
17462         * string-icalls.h: 
17463         * string-icalls.c: Deleted the code that those icalls reference.
17464
17465 2004-04-01  Martin Baulig  <martin@ximian.com>
17466
17467         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
17468
17469         * class.c (mono_class_from_generic_parameter): Don't set 
17470         TYPE_ATTRIBUTE_INTERFACE.
17471         (my_mono_class_from_generic_parameter): Likewise.
17472
17473 2004-04-01  Martin Baulig  <martin@ximian.com>
17474
17475         * loader.c (find_method): Added an optional `MonoClass *ic'
17476         argument to search in a specific interface.
17477         (mono_get_method_constrained): New public function.
17478
17479 2004-04-01  Martin Baulig  <martin@ximian.com>
17480
17481         * reflection.c (mono_image_get_generic_field_token): Use the
17482         `handleref' cache here.
17483
17484 2004-04-01  Martin Baulig  <martin@ximian.com>
17485
17486         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
17487
17488         * reflection.c (create_generic_typespec): Use the `typespec' hash
17489         here, not the `typeref' one.    
17490
17491 2004-04-01  Martin Baulig  <martin@ximian.com>
17492
17493         * class.c (mono_class_inflate_generic_type): Moved the
17494         functionality into a new static inflate_generic_type() which
17495         returns NULL if it didn't do anything.  Only increment the
17496         `mono_stats.inflated_type_count' if we actually inflated
17497         something.
17498         (mono_class_get_full): Check the classes type to see whether we
17499         need to inflate it; also inflate MONO_TYPE_(M)VAR.
17500
17501 2004-04-01  Jackson Harper  <jackson@ximian.com>
17502
17503         * reflection.c: Set culture for assembly references.
17504         
17505 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
17506
17507         * reflection.[ch], icall.[ch], Fix support for pinning variables.
17508
17509 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17510
17511         * assembly.c:
17512         (do_mono_assembly_open): the critical section also covers
17513         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
17514
17515 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17516
17517         * threads.c:
17518         (mono_manage_threads): abort the background threads when finishing.
17519         Fixes bug #47232.
17520
17521 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17522
17523         * gc.c: only close the done_event handle if there was no timeout.
17524         C-ified comments.
17525
17526 2004-03-30  Martin Baulig  <martin@ximian.com>
17527
17528         * icall.c (icall_entries): It's called "System.Activator", not
17529         "System.Activation".    
17530
17531 2004-03-30  Martin Baulig  <martin@ximian.com>
17532
17533         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
17534         (mono_class_create_from_typespec): Likewise.
17535
17536 2004-03-30  Martin Baulig  <martin@ximian.com>
17537
17538         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
17539         `has_ctor_constraint' and `initialized'.
17540
17541 2004-03-30  Martin Baulig  <martin@ximian.com>
17542
17543         * reflection.c (encode_new_constraint): New static function to add
17544         the constructor constraint attribute to a type parameter.
17545         (encode_constraints): Call encode_new_constraint() if necessary.
17546
17547         * reflection.h
17548         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
17549
17550         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
17551         
17552 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
17553
17554         * reflection.c, icall.c: add support for pinning variables. 
17555
17556 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
17557
17558         * marshal.c (mono_marshal_get_managed_wrapper):
17559         init bool local with zero rather than null.
17560
17561 2004-03-29  Martin Baulig  <martin@ximian.com>
17562
17563         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
17564         the "official" behavior here.
17565         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
17566
17567 2004-03-29  Martin Baulig  <martin@ximian.com>
17568
17569         * icall.c: Reflect latest API changes.
17570
17571 2004-03-29  Martin Baulig  <martin@ximian.com>
17572
17573         * loader.c (mono_get_method_from_token): Also call
17574         mono_metadata_load_generic_params () for abstract and interface
17575         methods; replace the type arguments in the method signature with
17576         the ones which are loaded from the metadata.
17577
17578 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
17579
17580         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
17581         of the lock is not the current thread. MS.NET don't do it, in spite of
17582         what the documentation says. See bug #56157.
17583
17584 2004-03-28  Martin Baulig  <martin@ximian.com>
17585
17586         * class.c (mono_class_init): Don't call init_properties() and
17587         init_events() for generic instances; set `prop->parent' when
17588         inflating properties.
17589
17590         * reflection.c (mono_generic_inst_get_object): Call
17591         `mono_class_init (ginst->klass)'.
17592         (mono_type_get_object): Only create a MonoGenericInst if your
17593         generic type is a TypeBuilder.
17594         (do_mono_reflection_bind_generic_parameters): Only set
17595         `ginst->is_dynamic' if our generic type is a TypeBuilder.
17596
17597 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
17598
17599         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
17600         Fixes #56091.
17601
17602 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17603
17604         * icall.c: added Kill_internal icall.
17605         * process.[ch]: added Kill_internal icall.
17606
17607 2004-03-25  Martin Baulig  <martin@ximian.com>
17608
17609         * class.h (MonoStats): Added `generic_instance_count',
17610         `inflated_method_count', `inflated_type_count' and
17611         `generics_metadata_size'.       
17612
17613 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17614
17615         * reflection.c: no warnings now.
17616
17617 2004-03-25  Martin Baulig  <martin@ximian.com>
17618
17619         * class.c (mono_class_get_full): New public function; does a
17620         mono_class_get(), but also takes a `MonoGenericContext *'.
17621
17622         * loader.c (mono_field_from_memberref): Renamed to
17623         `field_from_memberref', made static and added `MonoGenericContext *'
17624         argument.
17625         (mono_field_from_token): Added `MonoGenericInst *' argument.
17626         (method_from_memberef): Likewise.
17627         (mono_get_method_from_token): Likewise.
17628         (mono_get_method_full): New public function; does a
17629         mono_get_method(), but also takes a `MonoGenericContext *'.
17630
17631         * verify.c (mono_method_verify): Get the method's generic context
17632         and pass it to mono_field_from_token(), mono_get_method_full() and
17633         mono_class_get_full().
17634
17635 2004-03-25  Martin Baulig  <martin@ximian.com>
17636
17637         * class.c (mono_class_inflate_generic_type): Take a
17638         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
17639         `MonoGenericMethod *'.
17640
17641 2004-03-25  Martin Baulig  <martin@ximian.com>
17642
17643         * loader.h (MonoMethodInflated): Store the MonoGenericContext
17644         instead of the MonoGenericMethod here.
17645
17646 2004-03-25  Martin Baulig  <martin@ximian.com>
17647
17648         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
17649         each time we create a new MonoGenericInst, we also create a new
17650         context which points back to us.
17651
17652         * class.c (inflate_method): Use `ginst->context' instead of
17653         creating a new context.
17654
17655         * loader.c (method_from_memberref): Use
17656         `klass->generic_inst->context' instead of creating a new context.
17657
17658 2004-03-25  Martin Baulig  <martin@ximian.com>
17659
17660         * class.h (MonoGenericContext): New struct.
17661         (MonoGenericMethod): Removed `generic_inst'.
17662
17663         * class.c (mono_class_inflate_generic_method): Take a
17664         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
17665
17666 2004-03-25  Martin Baulig  <martin@ximian.com>
17667
17668         * loader.h (MonoMethodInflated): New typedef.
17669
17670         * metadata.h (MonoMethodSignature): Removed `gen_method', make
17671         `generic_param_count' consume just 30 bits, added `is_inflated'
17672         and `has_type_parameters' flags (one bit each).
17673
17674         * class.c (mono_class_inflate_generic_method): Create a
17675         MonoMethodInflated instead of a MonoMethodNormal and set
17676         `is_inflated' in the method signature.
17677
17678         * class.h (MonoGenericMethod): Removed `generic_method'.
17679
17680 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
17681
17682         * image.c: Make sure the name of a MonoImage is always an absolute path.
17683           This fixes bug #54415.
17684
17685 2004-03-24  Martin Baulig  <martin@ximian.com>
17686
17687         * class.c (mono_class_setup_vtable): If we're a generic instance,
17688         use our generic type's vtable size.
17689
17690 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
17691
17692         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
17693         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
17694         problems.
17695
17696 2004-03-23  Martin Baulig  <martin@ximian.com>
17697
17698         * class.h (MonoDynamicGenericInst): Added `int count_events' and
17699         `MonoEvent *events'.
17700
17701         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
17702         (typebuilder_icalls): Added "get_event_info"; calls
17703         mono_reflection_event_builder_get_event_info(). 
17704
17705         * reflection.c (mono_reflection_generic_inst_initialize): Added
17706         `MonoArray *events'.
17707         (mono_reflection_event_builder_get_event_info): New function.
17708
17709 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
17710
17711         * object.h: add mono_type_initialization_init
17712
17713         * object.c (mono_runtime_class_init): 
17714         implement class constructor synchronization rules
17715         to cope with threading issues.  
17716         add mono_type_initialization_init
17717
17718         * appdomain.c (mono_runtime_init): call 
17719         mono_type_initialization_init
17720
17721         * class.h: removing initializing field from MonoVTable
17722
17723 2004-03-23  Martin Baulig  <martin@ximian.com>
17724
17725         * class.c (my_mono_class_from_generic_parameter): Use
17726         `param->name' if it's not NULL. 
17727
17728 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
17729
17730         * class.c: do not insert non-virtual methods in the vtable.
17731         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
17732         that means the method is non-virtual. This never would have
17733         happened before.
17734
17735 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
17736
17737         * profiler.c: Added lock for accessing coverage_hash.
17738
17739 2004-03-22  Martin Baulig  <martin@ximian.com>
17740
17741         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
17742         `method->method->signature->generic_param_count != 0' to make it
17743         work for interface methods.
17744
17745 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17746
17747         * process.c: quote the string passed to the shell using g_shell_quote.
17748
17749 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17750
17751         * threads.c:
17752         (mono_threads_manage): don't remove the finalizer thread and self
17753         from the threads hash table so that mono_thread_manage can be called
17754         more than once.
17755
17756 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17757
17758         * process.c: quote the arguments when UseShellExecute is true. Fixes
17759         bug #55790.
17760
17761 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17762
17763         * threads.c: set mono_thread_detach as a cleanup routine for every
17764         thread. This way it's always executed upon thread termination, either
17765         aborted or finished normally. No more xsp hangs!
17766
17767 2004-03-17  Martin Baulig  <martin@ximian.com>
17768
17769         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
17770         `int count_nested' and a `MonoType **nested'.
17771
17772         * reflection.c (mono_reflection_bind_generic_parameters): Moved
17773         most of the functionality into a new static
17774         do_mono_reflection_bind_generic_parameters() and don't take a
17775         `MonoType *nested_in' argument any more.  Don't compute nested
17776         types here.
17777         (mono_reflection_generic_inst_get_nested_types): New public method
17778         to get nested types.
17779
17780         * class.c (mono_class_create_generic): Set `klass->nested_in' if
17781         we're a nested class.
17782
17783         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
17784         mono_reflection_generic_inst_get_nested_types() to compute the
17785         nested types.
17786
17787 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17788
17789         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
17790         descriptive error message under windows.
17791         
17792 2004-03-17  Martin Baulig  <martin@ximian.com>
17793
17794         * class.c (dup_type): Added `const MonoType *original' argument;
17795         copy the attrs from the original type.
17796
17797 2004-03-17  Martin Baulig  <martin@ximian.com>
17798
17799         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
17800         `m->generic_inst_cache' here.
17801
17802 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
17803
17804         * exception.h exception.c: Add stack_overflow_exception.
17805
17806 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17807
17808         * threadpool.c:
17809         (overlapped_callback): call SetEvent *after* invoking the callback.
17810         No need to call CloseHandle.
17811
17812 2004-03-16  Martin Baulig  <martin@ximian.com>
17813
17814         * reflection.c (mono_image_get_fieldref_token): Take a
17815         `MonoReflectionField *' instead of a `MonoClassField *' and a
17816         `MonoClass *'; store the `MonoReflectionField *' in the hash.
17817
17818 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17819
17820         * appdomain.c: don't add the culture to the filename we're looking for
17821         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
17822
17823 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17824
17825         * locales.c: don't ignore symbols when doing case insensitive compares.
17826         Thanks Dick! Fixes bug #54046.
17827
17828         * threads.c: surround 'threads' usage with enter/leave in
17829         mono_thread_manage.
17830
17831 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
17832
17833         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
17834         implicitly marshalled as [Out]. Fixes #55450.
17835
17836         (mono_marshal_get_runtime_invoke): Zero out the result if there is
17837         an exception.
17838
17839 2004-03-16  Martin Baulig  <martin@ximian.com>
17840
17841         * class.c (mono_class_from_generic_parameter): Use the actual
17842         parameter name. 
17843
17844 2004-03-16  Martin Baulig  <martin@ximian.com>
17845
17846         * reflection.c (type_get_signature_size): New static function.
17847         Compues the size of the type in a method signature.
17848         (method_get_signature_size): New static function; calls
17849         type_get_signature_size() to compute the actual size of the
17850         method's signature.
17851         (method_encode_signature): Use method_get_signature_size() to get
17852         the signature's size rather than using `nparams * 10'.
17853
17854 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17855
17856         * file-io.h: define here WapiOverlapped on windows. I don't want the
17857         regular OVERLAPPED one.
17858
17859         * file-io.c:
17860         * threadpool.c: somehow, BindIoCompletionCallback is not found.
17861         Disabling AIO on windows.
17862
17863 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17864
17865         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
17866         bug #55385.
17867
17868 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17869
17870         * appdomain.c: upgraded corlib version.
17871
17872         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
17873         and BeginWrite. Allow opening files for asynchrnous operations.
17874
17875         * file-io.h: new struct that maps FileStreamAsyncResult.
17876         * icall.c: added new icalls.
17877         * process.[ch]: support setting child process environment variables
17878         and use the SHELL or COMSPEC when UseShellExecute is true.
17879
17880         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
17881         callback for async. IO is here and also BindHandle.
17882
17883         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
17884         from here.
17885
17886 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
17887
17888         * reflection.c (create_custom_attr): Allow len == 0.
17889
17890         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
17891         computation on big-endian machines.
17892
17893 2004-03-13  Martin Baulig  <martin@ximian.com>
17894
17895         * class.h (MonoGenericInst): Added `int count_ifaces'.
17896
17897         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
17898         `ginst->count_ifaces' instead `klass->interface_count' since we
17899         may get called before the vtable is created.
17900
17901         * loader.c (mono_method_get_param_names): If we're a generic
17902         instance, return and don't initialize the class.
17903
17904         * reflection.c (mono_reflection_setup_generic_class): Don't call
17905         ensure_runtime_vtable().
17906         (mono_reflection_bind_generic_parameters): Set
17907         `ginst->count_ifaces'.
17908
17909 2004-03-11  Jackson Harper <jackson@ximian.com>
17910
17911         * icall.c:
17912         * unicode.c:
17913         * unicode.h: Remove unused System.Char icalls.
17914         
17915 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
17916
17917         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
17918         code when we P/Invoke the first library in Windows.Forms, instead
17919         of when we first open the assembly.
17920
17921         * assembly.c: Drop the lookup from here.
17922
17923 2004-03-10  Martin Baulig  <martin@ximian.com>
17924
17925         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
17926         class for properties, fields and events.  Finally fixes #54945.
17927
17928 2004-03-10  Martin Baulig  <martin@ximian.com>
17929
17930         * metadata.c (mono_metadata_class_equal): New static function;
17931         checks whether two generic instances or two generic parameters are
17932         equal.
17933         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
17934         compare classes.        
17935
17936 2004-03-10  Martin Baulig  <martin@ximian.com>
17937
17938         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
17939
17940         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
17941         argument and write it into the `reflection_info' field.
17942
17943         * icall.c
17944         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
17945         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
17946
17947 2004-03-09  Jackson Harper  <jackson@ximian.com>
17948
17949         * char-conversions.h: use 8 bits for numeric data its all we need
17950         * icall.c: numeric data is only 8 bits now.
17951
17952 2004-03-09  Martin Baulig  <martin@ximian.com>
17953
17954         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
17955
17956         * class.c (init_properties, init_events): Initialize the new
17957         `parent' field.
17958
17959         * reflection.c (typebuilder_setup_properties): Likewise.
17960         (typebuilder_setup_events): Likewise.
17961
17962         * reflection.h (MonoEventInfo): Replaced `parent with
17963         `declaring_type' and `reflected_type'.
17964
17965         * icall.c (ves_icall_get_property_info): Distinguish between
17966         declaring and reflected type.
17967         (ves_icall_get_event_info): Likewise.
17968
17969 2004-03-09  Martin Baulig  <martin@ximian.com>
17970
17971         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
17972         (ves_icall_Type_GetField): Correctly set field->klass.
17973
17974 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
17975
17976         * loader.h: Fix warning.
17977
17978 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
17979
17980         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
17981         library routine if present.  Notice that it will still continue
17982         executing even if its missing, for those working on the Gtk#
17983         edition of Windows.Forms.
17984
17985         * assembly.c (do_mono_assembly_open): If loading the
17986         System.Windows.Forms call mono_loader_wini_init.
17987
17988 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
17989
17990         * class.h: Added MonoRemoteClass struct.
17991         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
17992         function for MonoStrings.
17993         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
17994         Added internal call for getting the proxy type.
17995         * marshal.c: Get the type of transparent proxies from its remote_class.
17996         Added methods that generate the IL for type checks and casts:
17997         mono_marshal_get_isinst, mono_marshal_get_castclass, 
17998         mono_marshal_get_proxy_cancast.
17999         * marshal.h: Declaration of the previous new methods.
18000         * object.c: Added new moethods for creating and updating MonoRemoteClass
18001         instances: mono_remote_class, mono_upgrade_remote_class, 
18002         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
18003         * verify.c: FIx transparent_proxy_fields layout.
18004         * appdomain.c: Bump corlib version.
18005
18006 2004-03-04  Jackson Harper  <jackson@ximian.com>
18007
18008         * icall.c: Add icall to access char conversion tables.
18009         * char-conversions.h: Character conversion tables.
18010         * Makefile.am: Add char-conversions.h private header file.
18011         
18012 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
18013
18014         * appdomain.c (unload_thread_main): Increase unloading timeout to
18015         10 sec as a temporary workaround for Nant problems.
18016
18017 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
18018
18019         * gc.c: Add checks for GC_enable and GC_disable.
18020
18021         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
18022         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
18023         (bug #54988).
18024         
18025 2004-02-27  Martin Baulig  <martin@ximian.com>
18026
18027         * reflection.c (mono_reflection_bind_generic_parameters): Take a
18028         `MonoReflectionType *' instead of a `MonoType *'.
18029
18030 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
18031
18032         * gc.c (run_finalize): Avoid finalizing the object representing the
18033         finalizer thread.
18034         (finalizer_thread): Fix warning.
18035
18036 2004-02-25  Martin Baulig  <martin@ximian.com>
18037
18038         * class.c (_mono_class_get_instantiation_name): Added `int offset'
18039         argument for nested types.
18040         (mono_class_create_generic): Added support for nested generictypes.
18041
18042         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
18043         `GList *nested'.
18044
18045         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
18046
18047         * reflection.c (method_encode_signature): Increase the minimum
18048         value of `size' from 10 to 11.
18049         (mono_reflection_bind_generic_parameters): Take `int type_argc'
18050         and `MonoType **types' arguments instead of the `MonoArray
18051         *types'; added `MonoType *nested_in'.  Recursively instantiate
18052         nested classes. 
18053
18054 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
18055
18056         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
18057         stack_overflow_ex members which are used by exception handling.
18058
18059         * appdomain.c (mono_runtime_init): Initialize the new members.
18060
18061         * gc.c (mono_gc_enable): New helper function.
18062         * gc.c (mono_gc_disable): New helper function.
18063
18064 2004-02-23  Martin Baulig  <martin@ximian.com>
18065
18066         * icall.c: I must have been really stupid - make it actually work
18067         this time ;-)
18068
18069 2004-02-23  Martin Baulig  <martin@ximian.com>
18070
18071         * loader.c (method_from_memberref): Only inflate the method if
18072         it's in another klass.
18073
18074 2004-02-23  Martin Baulig  <martin@ximian.com>
18075
18076         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
18077         (mono_class_init): If we're a generic instance and an interface,
18078         compute `class->interface_id'; also create `class->interfaces'
18079         here and inflate them.
18080
18081         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
18082         `ginst->is_open'.
18083         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
18084
18085         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
18086
18087 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
18088
18089         * reflection.c (method_encode_code): Improved the error message
18090         generated by the exception.
18091
18092 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18093
18094         * icall.c: Martin did not do what he said in the ChangeLog for
18095         2004-02-18, but put back the changes for properties and events.
18096         Commenting those changes out again and adding comment to bug #54518.
18097         
18098         * process.c: removed warning.
18099
18100 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
18101
18102         * marshal.c (emit_struct_conv): Print an error message instead of
18103         asserting when a type does not have the StructLayout attribute.
18104
18105 2004-02-20  Martin Baulig  <martin@ximian.com>
18106
18107         * reflection.c (mono_type_get_object): Also use the cache for
18108         generic instances.
18109         (mono_reflection_bind_generic_parameters): Always compute
18110         `ginst->ifaces'.        
18111
18112 2004-02-20  Martin Baulig  <martin@ximian.com>
18113
18114         * class.h (MonoGenericMethod): Removed `klass'.
18115
18116         * class.c (mono_class_inflate_generic_method): Added `MonoClass
18117         *klass' argument.
18118
18119 2004-02-20  Martin Baulig  <martin@ximian.com>
18120
18121         * reflection.c (method_encode_methodspec): Actually use the
18122         uninflated signature for the memberref.
18123
18124 2004-02-20  Martin Baulig  <martin@ximian.com>
18125
18126         * class.h (MonoGenericMethod): Removed `declaring'.
18127
18128         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
18129         is NULL, compute it here.
18130
18131 2004-02-20  Martin Baulig  <martin@ximian.com>
18132
18133         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
18134
18135         * metadata.c (mono_metadata_generic_inst_hash): New method.
18136         (mono_metadata_generic_inst_equal): New method.
18137
18138         * reflection.c (mono_reflection_bind_generic_parameters): Use the
18139         `klass->image->generic_inst_cache' cache to avoid creating
18140         duplicate MonoGenericInst's.
18141
18142         * class.c (mono_class_inflate_generic_type): Use the cache.
18143
18144 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
18145
18146         * object.c: fixed gc descriptor calculation for embedded valuetypes.
18147
18148 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18149
18150         * icall.c: added Socket.WSAIoctl icall.
18151
18152         * socket-io.[ch]: implemented
18153         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
18154
18155 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
18156
18157         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
18158
18159 2004-02-18  Urs C Muff  <umuff@quark.com>
18160
18161         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
18162         this work on PPC and other big-endian architectures.
18163
18164         * debug-mono-symfile.h: Prepended the names of all the `guint32'
18165         fields with an underscore to make sure they're only accessed by
18166         the read32() macro.
18167
18168 2004-02-18  Martin Baulig  <martin@ximian.com>
18169
18170         * icall.c: Put the klass->refclass changes back for methods and
18171         fields, but not for properties and events.  We're currently not
18172         distinguishing between DeclaringType and ReflectedType for
18173         properties and events, that's what caused the regressions.
18174
18175 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18176
18177         * object.c:
18178         (mono_async_result_new): the handle can be NULL.
18179
18180         * threadpool.c: Use an event instead of a semaphore, don't initialize
18181         it until needed. This saves quite a few semaphores from being created
18182         when using the threadpool.
18183
18184 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
18185
18186         * object.c (mono_string_is_interned_lookup): Fix interning of long
18187         strings. Fixes #54473.
18188
18189         * domain.c (ldstr_equal): Optimize if the two strings are equal.
18190
18191         * icall.c: Revert the klass->refclass changes since they introduce
18192         regressions (bug #54518).
18193
18194 2004-02-18  Martin Baulig  <martin@ximian.com>
18195
18196         * class.c (mono_class_init): If we're a generic instance and don't
18197         come from a TypeBuilder, inflate our members here.
18198         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
18199         (mono_class_create_generic): New public method.
18200         (mono_class_initialize_generic): Removed.
18201         (get_instantiation_name): Renamed to
18202         _mono_class_get_instantiation_name() and made it public.
18203
18204 2004-02-18  Martin Baulig  <martin@ximian.com>
18205
18206         * class.c (mono_class_inflate_generic_type): Clear the new
18207         instance's `nginst->klass' when inflating a generic instance.
18208         (mono_class_is_subclass_of): Added (basic) support for generic
18209         instances.
18210
18211 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
18212
18213         * appdomain.h, domain.c: use a MonoCodeManager instead of a
18214         MonoMempool to hold compiled native code.
18215
18216 2004-02-17  Martin Baulig  <martin@ximian.com>
18217
18218         * class.h (MonoDynamicGenericInst): Added `count_properties' and
18219         `properties'.
18220
18221         * reflection.c (mono_reflection_generic_inst_initialize): Added
18222         `MonoArray *properties' argument.
18223
18224         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
18225
18226 2004-02-17  Martin Baulig  <martin@ximian.com>
18227
18228         * icall.c (ves_icall_Type_GetFields): Renamed to
18229         ves_icall_Type_GetFields_internal() and added a
18230         `MonoReflectionType *rtype' argument; pass it to
18231         mono_field_get_object() to set the field's "reflected" type.
18232         (ves_icall_Type_GetConstructors): Likewise.
18233         (ves_icall_Type_GetEvents): Likewise.
18234         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
18235         argument; pass it to mono_method_get_object() to set the method's
18236         "reflected" type.       
18237
18238 2004-02-17  Martin Baulig  <martin@ximian.com>
18239
18240         * class.h (MonoDynamicGenericInst): New type.
18241         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
18242
18243         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
18244         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
18245         (ves_icall_MonoGenericInst_GetFields): New interncall.
18246
18247         * class.c (mono_class_from_generic): Don't call
18248         mono_class_initialize_generic() if this is a dynamic instance;
18249         ie. it's being created from a TypeBuilder.
18250         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
18251         `class->byval_arg.type'.
18252
18253         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
18254         to `inflate_method' and made static.
18255         (mono_reflection_inflate_field): Removed.
18256         (mono_reflection_generic_inst_initialize): New public method.
18257
18258         * reflection.h (MonoReflectionGenericInst): Removed `methods',
18259         `ctors' and `fields'; added `initialized'.
18260
18261 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
18262
18263         * debug-helpers.c (mono_method_full_name): Fix output for empty
18264         namespaces.
18265
18266 2004-02-12  Martin Baulig  <martin@ximian.com>
18267
18268         * class.h (MonoClassField): Added `MonoType *generic_type'.
18269
18270         * reflection.c (mono_image_get_fieldref_token): Added support for
18271         instantiated generic types.
18272         (field_encode_inflated_field): Removed.
18273         (mono_image_get_inflated_field_token): Removed.
18274         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
18275
18276         * reflection.h (MonoReflectionInflatedField): Removed.
18277
18278 2004-02-12  Martin Baulig  <martin@ximian.com>
18279
18280         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
18281         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
18282
18283         * reflection.c (mono_image_get_methodspec_token): Take a
18284         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
18285         (mono_image_create_token): Check whether we have a
18286         `method->signature->gen_method' and call
18287         mono_image_get_methodspec_token() if appropriate.
18288         (inflated_method_get_object): Removed.
18289         (mono_reflection_bind_generic_method_parameters): Return a
18290         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
18291         (mono_reflection_inflate_method_or_ctor): Likewise.
18292
18293         * reflection.h (MonoReflectionInflatedMethod): Removed.
18294
18295 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
18296
18297         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
18298         for custom valuetype marshalling.
18299
18300         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
18301
18302 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18303
18304         * icall.c: fixed WSAGetLastError_internal name.
18305
18306 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
18307
18308         * threads.c (mono_thread_attach): Allow this to be called multiple
18309         times for a thread.
18310         
18311         * threads.c (build_wait_tids): Do not wait for ourselves.
18312
18313         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
18314         appdomain list is empty.
18315
18316         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
18317         memory returned by mono_string_builder_to_utf16, since it points into
18318         managed memory. Thanks to Bernie Solomon for noticing this.
18319
18320         * icall.c: Add AppDomainSetup icalls.
18321
18322         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
18323
18324         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
18325         types.
18326
18327         * reflection.c (reflection_methodbuilder_to_mono_method): Save
18328         custom attributes to the method_aux struct. Also fix array indexes etc.
18329
18330         * loader.c (mono_method_get_param_names): Make dynamic case work again.
18331         
18332 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
18333
18334         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
18335         (both static and runtime) and reduce startup time.
18336
18337 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
18338
18339         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
18340         AsAny marshalling conversion instead of crashing.
18341
18342         * marshal.c: Fix warnings.
18343
18344 2004-02-09  Martin Baulig  <martin@ximian.com>
18345
18346         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
18347
18348         * reflection.h (MonoReflectionInflatedMethod): Removed the
18349         `declaring' field, it's now in the unmanaged MonoGenericMethod.
18350
18351         * reflection.c (method_encode_methodspec): Removed the `method'
18352         argument; we get it from `gmethod->declaring'.
18353         (inflated_method_get_object): Removed the `declaring' argument.
18354
18355 2004-02-09  Martin Baulig  <martin@ximian.com>
18356
18357         * class.h (MonoGenericMethod): New type.
18358         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
18359         `generic_method'.
18360
18361         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
18362         a `MonoGenericMethod *gen_method' one.
18363
18364         * class.c (mono_class_inflate_generic_type): Take an additional
18365         `MonoGenericMethod * argument.  This is only non-NULL if we're
18366         inflating types for a generic method.   
18367         (mono_class_inflate_generic_signature): Renamed to
18368         inflate_generic_signature() and made static; take a
18369         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
18370         (inflate_generic_header): Take a `MonoGenericMethod *' argument
18371         instead of a `MonoGenericInst *' one.
18372         (mono_class_inflate_generic_method): Likewise.
18373
18374         * reflection.c (encode_generic_method_sig): Take a
18375         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
18376         (method_encode_methodspec): Likewise.
18377         (inflated_method_get_object): Likewise. 
18378
18379         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
18380         field with a `MonoGenericMethod *gmethod' one.  
18381
18382 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
18383
18384         * class.h (mono_class_has_parent): add parens to expansion
18385         so you can ! this.
18386
18387 2004-02-08  Martin Baulig  <martin@ximian.com>
18388
18389         * image.h (MonoImage): Removed `generics_cache'.
18390
18391         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
18392         instead of a `MonoType *' argument; removed the `inflate_methods'
18393         argument.  Don't inflate methods here.
18394
18395         * loader.c (find_method): If it's a generic instance, call
18396         mono_class_init() on the `sclass->generic_inst->generic_type'.
18397
18398         * metadata.c (mono_type_size): Make this work on uninitialized
18399         generic instances; call it on the `ginst->generic_type's class.
18400
18401         * reflection.c (mono_reflection_bind_generic_parameters): Call
18402         mono_class_from_generic() to create the `ginst->klass'.
18403
18404 2004-02-08  Martin Baulig  <martin@ximian.com>
18405
18406         * class.h (MonoClass): Changed type of `generic_inst' from
18407         `MonoType *' to `MonoGenericInst *'.
18408
18409 2004-02-08  Martin Baulig  <martin@ximian.com>
18410
18411         * icall.c (ves_icall_Type_BindGenericParameters): Just call
18412         mono_type_get_object(), this is now creating a `MonoGenericInst'
18413         for MONO_TYPE_GENERICINST.
18414         (ves_icall_MonoGenericInst_GetParentType): Likewise.
18415         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
18416
18417         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
18418         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
18419         (inflated_method_get_object): Added `MonoClass *refclass' argument.
18420         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
18421         and reflected type.
18422
18423         * reflection.h (MonoReflectionInflatedMethod): Removed
18424         `declaring_type' and `reflected_type'.
18425
18426 2004-02-08  Martin Baulig  <martin@ximian.com>
18427
18428         * class.h (MonoGenericInst): Added `MonoType *parent' and
18429         `MonoType **ifaces'.
18430
18431         * reflection.h (MonoReflectionGenericInst): Removed `klass',
18432         `parent' and `interfaces'.
18433
18434         * reflection.c (mono_reflection_bind_generic_parameters): Take a
18435         `MonoType *' argument and return a `MonoType *'.
18436
18437         * icall.c
18438         (ves_icall_MonoGenericInst_GetParentType): New interncall.
18439         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
18440
18441 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
18442
18443         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
18444         valuetype marshalling.
18445
18446 2004-02-06  Martin Baulig  <martin@ximian.com>
18447
18448         * class.c
18449         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
18450         (my_mono_class_from_generic_parameter): Likewise.
18451
18452 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
18453
18454         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
18455         contents of the symbol files lazily.
18456
18457         * object.h (MonoThread): Add 'name' and 'name_len' fields.
18458
18459         * threads.h threads.c icall.c: New icalls for getting and setting the
18460         threads name.
18461
18462 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
18463
18464         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
18465         Raise an exception when the domain is not found.
18466
18467 2004-02-03  Martin Baulig  <martin@ximian.com>
18468
18469         * reflection.c (mono_image_get_methodspec_token): Use the
18470         uninflated signature; fixes gen-33.
18471
18472 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
18473
18474         * gc.c threads.c: Make the finalizer thread a normal managed thread so
18475         the finalizer code can use thread functionality.
18476
18477         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
18478         the finalizer thread.
18479
18480         * threads.c: Make some functions more robust.
18481
18482         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
18483
18484         * metadata.h: Add new marshalling conventions.
18485
18486         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
18487         stringbuilder marshalling. Fixes #53700.
18488
18489         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
18490
18491         * reflection.c (mono_image_get_type_info): Save declarative security
18492         info.
18493
18494         * reflection.c (mono_image_get_field_info): Handle uninitialized 
18495         unmanaged fields as well.
18496
18497         * appdomain.c: Bump corlib version.
18498
18499 2004-02-01  Martin Baulig  <martin@ximian.com>
18500
18501         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
18502         method type arguments.  
18503
18504 2004-01-30  Duncan Mak  <duncan@ximian.com>
18505
18506         * marshal.h: Add prototype for
18507         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
18508         and
18509         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
18510         fix the build.
18511
18512 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
18513
18514         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
18515         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
18516
18517 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
18518
18519         * marshal.c (mono_marshal_get_native_wrapper): Add support for
18520         custom marshalling of valuetypes.
18521
18522         * marshal.c: Fix some warnings.
18523
18524 2004-01-29  Martin Baulig  <martin@ximian.com>
18525
18526         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
18527         for generic method parameters.
18528
18529         * reflection.c (method_encode_methodspec): Write the uninflated
18530         signature into the methodspec table.
18531         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
18532         is always the uninflated method.
18533         (reflection_methodbuilder_to_mono_method): Copy the generic
18534         parameters from the MethodBuilder into `header->gen_params'.
18535
18536 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
18537
18538         * class.c (mono_class_from_generic_parameter): Fix warning.
18539
18540 2004-01-27  Martin Baulig  <martin@ximian.com>
18541
18542         * class.c (mono_class_from_generic_parameter): Don't create
18543         `klass->methods' here.  
18544
18545 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
18546
18547         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
18548         extension since it does not work with libraries named lib<FOO>.dll.so.
18549
18550 2004-01-25  Martin Baulig  <martin@ximian.com>
18551
18552         * class.c (mono_class_inflate_generic_type): Added support for
18553         MONO_TYPE_GENERICINST.
18554
18555         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
18556         inflate methods on open constructed types.      
18557
18558 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18559
18560         * object.c: fire ProcessExit event in the root AppDomain after running
18561         Main. Fixes bug #53299.
18562
18563 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
18564
18565         * socket-io.c: include the new socket-wrappers.h header.
18566         Use the wrappers instead of the unix socket functions to make the code
18567         more clear.
18568
18569 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
18570
18571         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
18572
18573         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
18574         Fixes #22532.
18575
18576 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
18577
18578         * reflection.c (mono_image_create_pefile): Handle the case when the
18579         entry point is not a MethodBuilder.
18580
18581         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
18582         field to ReflectionMethod since it is not allways a builder.
18583
18584         * reflection.c (type_get_fully_qualified_name): New helper function to
18585         return the fully qualified name of a type.
18586
18587         * reflection.c (encode_marshal_blob): Always emit the fully qualified
18588         type name for custom marshallers.
18589
18590         * reflection.c (mono_marshal_spec_from_builder): Ditto.
18591
18592         * class.c (mono_class_setup_vtable): If a parent class already 
18593         implements an interface, use the implementing methods from that class.
18594         Fixes #53148.
18595
18596 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18597
18598         * threadpool.c: just return instead of ExitThread to allow for thread
18599         clean up earlier.
18600
18601 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
18602
18603         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
18604         when closing resource modules.
18605
18606         * reflection.c (mono_image_create_pefile): Handle the case when the
18607         entry point is not a MethodBuilder.
18608
18609         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
18610         field to ReflectionMethod since it is not allways a builder.
18611
18612 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
18613
18614         * marshal.c (mono_marshal_get_managed_wrapper): 
18615         mono_marshal_alloc takes native int so CONV_I
18616         the arg for 64bits.
18617
18618 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
18619
18620         * reflection.c (fixup_cattrs): New function to fixup the methoddef
18621         tokens in the cattr table. Fixes #53108.
18622
18623 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18624
18625         * loader.c: don't trim ".dll" before looking up in the config file.
18626         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
18627
18628 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
18629
18630         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
18631         Return the module which contains the resource as well.
18632         (ves_icall_System_Reflection_Module_Close): New icall.
18633
18634         * appdomain.c: Bump corlib version number.
18635
18636         * image.c (mono_image_addref): New public function.
18637
18638         * assembly.c: Call mono_image_addref.
18639
18640         * reflection.c (mono_module_get_object): Increase reference count of 
18641         the image.
18642
18643         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
18644         Fixes #22532.
18645
18646         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
18647         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
18648         proper exceptions on DllImport problems.
18649
18650 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
18651
18652         * class.c, metadata.c: eliminate CSIZE macro.
18653
18654 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
18655
18656         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
18657         * object.h: Added async_callback field in MonoAsyncResult.
18658         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
18659         * verify.c: Added async_callback in MonoAsyncResult layout.
18660
18661 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
18662
18663         * reflection.c (mono_reflection_get_custom_attrs): Add support
18664         for Modules.
18665
18666 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18667
18668         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
18669         marshalling.
18670         (mono_marshal_method_from_wrapper): Add null pointer check.
18671
18672 2004-01-16  Martin Baulig  <martin@ximian.com>
18673
18674         * debug-mono-symfile.h: Set version number to 36 and reflect
18675         latest symbol writer changes.
18676
18677 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
18678
18679         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
18680         multi-dimensional arrays.
18681         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
18682         (mono_class_from_mono_type): Use bounded_array_class_get.
18683         
18684         * class.c (mono_bounded_array_class_get): New function which takes
18685         a 'bounded' bool argument to distinguish vectors from one dimensional
18686         arrays.
18687
18688         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
18689         bounded_array_class_get if the array has bounds.
18690
18691         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
18692         Search modules loaded using AssemblyBuilder:AddModule as well.
18693
18694 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18695
18696         * appdomain.c: increased corlib version.
18697         * filewatcher.c: removed g_print.
18698         * icall.c:
18699         (get_property_info): only allocate what is actually requested.
18700         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
18701
18702 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18703
18704         * Makefile.am: added filewatcher.[ch]
18705         * filewatcher.[ch]: FileSystemWatcher runtime support.
18706         * icall.c: added new FSW icalls.
18707
18708 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
18709
18710         * string-icalls.c: fix stringbuilder regression as suggested by
18711         Iain McCoy <iain@mccoy.id.au>.
18712
18713 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
18714
18715         * process.c (process_read_stringtable_block): Recognize '007f' as
18716         a language neutral stringtable block.
18717
18718 2004-01-12  Patrik Torstensson
18719
18720         * object.h (MonoStringBuilder) : Changed layout to support our
18721         new stringbuilder class.
18722         * marshal.c: Change marshalling to support the new layout of 
18723         string builder.
18724         * appdomain.c: increased version number because new layout of
18725         string builder.
18726
18727 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
18728
18729         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
18730         assembly name as an string instead of an AssemblyName, since it is
18731         easier to extract info from it.
18732
18733         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
18734         the culture subdirectories too. Fixes #52231.
18735
18736 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18737
18738         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
18739         It takes 2 new parameters with an optional name for the method to look
18740         for and case ignoring info.
18741
18742         * threadpool.c: removed unused variable.
18743
18744 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18745
18746         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
18747         It takes 2 new parameters with an optional name for the property to look
18748         for and case ignoring info.
18749         Fixes bug #52753.
18750
18751 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
18752
18753         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
18754         Fix #52451.
18755
18756 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18757
18758         * appdomain.c:
18759         * assembly.c: escape the uri before passing it to g_filename_from_uri.
18760         Fixes bug #52630.
18761
18762 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
18763
18764         * reflection.c: Add support for more than one unmanaged resource.
18765
18766         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
18767         in field->def_value, as done in all other cases.
18768
18769         * reflection.c (mono_reflection_get_custom_attrs): Add support for
18770         TypeBuilders.
18771
18772         * reflection.c (mono_reflection_create_runtime_class): Remove 
18773         errorneous assignment to klass->element_class, since it is already
18774         done in mono_reflection_setup_internal_class.
18775
18776 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18777
18778         * gc.c: added missing LeaveCriticalSection.
18779         * icall.c: indented a couple of lines.
18780         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
18781         if we call EndInvoke inside a callback. Fixes bug #52601.
18782
18783 2004-01-07  Martin Baulig  <martin@ximian.com>
18784
18785         * mono-debug-debugger.h
18786         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
18787
18788 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
18789
18790         * appdomain.c: Use messages in NotImplementedException.
18791
18792         * exception.c (mono_get_exception_not_implemented): Now this takes
18793         a message argument.
18794
18795         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
18796         exception instead of g_asserting an aborting when something is not
18797         implemented.
18798
18799         Add some inline docs.
18800
18801 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
18802
18803         * reflection.h: Update after changes to object layout.
18804
18805         * reflection.c: Implement saving of unmanaged aka win32 resources.
18806
18807         * appdomain.c: Bump version number.
18808
18809         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
18810         Handle missing domains gracefully.
18811
18812 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
18813
18814         * file-io.c : On Windows, there are much more invalid_path_chars.
18815
18816 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
18817
18818         * class.h, object.c: prepare for GetType () speedup.
18819
18820 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
18821
18822         * profiler.c: workaround for --profile null reference exception on
18823           cygwin. Patch by Patrik Torstensson.
18824
18825 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
18826
18827         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
18828         make work for unaligned access.
18829
18830 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
18831
18832         * class.c: small cleanup (class->fields [i] -> field).
18833         * image.c: check address of metadata is valid.
18834
18835 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
18836
18837         * assembly.h assembly.c (mono_assembly_loaded): New public function to
18838         search the list of loaded assemblies.
18839
18840         * reflection.c (mono_reflection_type_from_name): Use 
18841         mono_assembly_loaded instead of mono_image_loaded.
18842
18843         * reflection.c: Fix warnings.
18844
18845 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
18846
18847         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
18848         is dynamic. This is needed since an assembly can contain both dynamic and
18849         non-dynamic images.
18850
18851         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
18852         assembly->dynamic.
18853
18854         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
18855
18856         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
18857         to store modules loaded using AddModule.
18858
18859         * reflection.c (mono_image_fill_file_table): Generalize this so it works
18860         on Modules.
18861
18862         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
18863
18864         * reflection.c (mono_image_fill_export_table_from_module): New function to
18865         fill out the EXPORTEDTYPES table from a module.
18866
18867         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
18868         into a separate function. Also handle loaded non-dynamic modules.
18869
18870         * reflection.c (mono_image_basic_init): Fix memory allocation.
18871
18872         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18873
18874         * assembly.c (mono_assembly_load_references): Make this public.
18875
18876 2003-12-19  Martin Baulig  <martin@ximian.com>
18877
18878         * class.c (mono_class_initialize_generic): Made this static, take
18879         a `MonoGenericInst *' instead of a `MonoClass *'.
18880         (mono_class_from_generic): Call mono_class_initialize_generic()
18881         unless we're already initialized or being called from
18882         do_mono_metadata_parse_generic_inst().
18883
18884         * class.h (MonoGenericInst): Added `initialized' and
18885         `init_pending' flags.
18886
18887         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
18888         `mono_class_init (gklass)' or mono_class_initialize_generic()
18889         here; set `generic_inst->init_pending' while parsing the
18890         `type_argv'.
18891
18892 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
18893
18894         * locales.c: include string.h for memxxx prototypes
18895
18896 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
18897
18898         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
18899         constructor when accessing literal fields.
18900
18901 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
18902
18903         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
18904
18905         * reflection.c (assembly_add_resource_manifest): New function to fill
18906         the MANIFESTRESOURCE table.
18907
18908         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
18909
18910         * reflection.h: Update to changes in class layout.
18911
18912         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
18913         Reenable call to mono_runtime_is_shutting_down ().
18914
18915         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
18916         determine if the runtime is shutting down.
18917
18918 2003-12-16  Jackson Harper <jackson@ximian.com>
18919
18920         * icall.c: comment out call to mono_runtime_is_shutting_down to
18921         fix build.
18922         
18923 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
18924
18925         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
18926         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
18927
18928 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
18929
18930         * reflection.c: move definition of swap_with_size
18931         to before its first call
18932
18933 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
18934
18935         * appdomain.c (mono_runtime_is_shutting_down): New public function.
18936
18937         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
18938         icall.
18939
18940         * object.c: Fix warnings.
18941
18942         * icall.c (ves_icall_Type_Get...): Only consider inherited static
18943         members if FlattenHierarchy is set.
18944
18945         * reflection.c (mono_image_add_decl_security): New function to emit
18946         declarative security.
18947
18948         * reflection.h reflection.c: Add support for declarative security.
18949
18950         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
18951         
18952 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
18953
18954         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
18955         
18956         * appdomain.c verify.c: Moved corlib version checking into its own
18957         function in appdomain.c since it needs to create vtables etc.
18958
18959 2003-12-13  Patrik Torstensson <p@rxc.se>
18960
18961         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
18962         instead of unwrapped server.
18963
18964 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
18965
18966         * verify.c (check_corlib): Fix field index.
18967
18968 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
18969
18970         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
18971         GetGacPath icall.
18972
18973 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
18974
18975         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
18976         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
18977         cope with sizeof(size_t) != sizeof(guint32).
18978
18979 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18980
18981         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
18982         in case of failure.
18983
18984 2003-12-10  Mark Crichton <crichton@gimp.org>
18985
18986         * icall.c: removed the GetNonZeroBytes.  We now handle this case
18987         in managed code.
18988
18989         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
18990
18991 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
18992
18993         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
18994         marked as deleted.
18995
18996 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
18997
18998         * verify.c (check_corlib): Handle the case when the version field is 
18999         initialized by a static constructor.
19000
19001 2003-12-08  Patrik Torstensson  <p@rxc.se>
19002
19003     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
19004
19005 2003-12-08  Martin Baulig  <martin@ximian.com>
19006
19007         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
19008         a MonoReflectionGenericParameter, also take the parameter index
19009         and name as arguments.
19010         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
19011         (ves_icall_MonoGenericParam_initialize): New interncall.
19012         (ves_icall_Type_make_byref_type): New interncall.
19013
19014         * reflection.h (MonoReflectionGenericParam): Derive from
19015         MonoReflectionType, not just from MonoObject.  Added `refobj' and
19016         `index' fields.
19017
19018         * reflection.c (mono_reflection_define_generic_parameter): Create
19019         and return a new MonoReflectionGenericParam; don't initialize the
19020         constraints here.
19021         (mono_reflection_initialize_generic_parameter): New public method;
19022         initializes the constraints and creates the `param->pklass'.
19023
19024 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
19025
19026         * reflection.h reflection.c: Use the new fields 'num_types', 
19027         'num_fields' and 'num_methods' to track the number of types etc.
19028
19029         * verify.c (check_corlib): Check corlib version number.
19030
19031 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
19032
19033         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
19034         function works on all methods.
19035
19036 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
19037
19038         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
19039         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
19040         the custom_type_info flag of the transparent proxy.
19041         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
19042         objects that supports IRemotingTypeInfo.
19043         * object.h: Added custom_type_info field in transparent proxy.
19044
19045 2003-12-06  Martin Baulig  <martin@ximian.com>
19046
19047         * class.c (mono_class_create_from_generic): Removed.
19048         (mono_class_from_generic): Check `ginst->klass' before doing
19049         anything else.  This is important to fully support "recursive"
19050         generic types.
19051
19052         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
19053         empty `generic_inst->klass' before doing anything else.
19054
19055 2003-12-06  Dick Porter  <dick@ximian.com>
19056
19057         * verify.c: 
19058         * object.h:
19059         * icall.c:
19060         * locales.c: Use C structs to access class fields.  Don't do a
19061         conversion between MonoString and UChar because both are
19062         platform-endian UTF-16.  Compare now takes startindex and count
19063         parameters.  Add a char overload for IndexOf.  Speed up the
19064         invariant string IndexOf.
19065
19066 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
19067
19068         * Makefile.am (monosn_LDADD): Fix parallel build.
19069
19070 2003-12-04  Martin Baulig  <martin@ximian.com>
19071
19072         * icall.c
19073         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19074         (ves_icall_Type_make_array_type): New interncall.       
19075
19076 2003-12-04  Martin Baulig  <martin@ximian.com>
19077
19078         * locales.c: also change it in the !HAVE_ICU case.
19079
19080 2003-12-04  Dick Porter  <dick@ximian.com>
19081
19082         * icall.c:
19083         * locales.c: construct_compareinfo is now in CompareInfo, not
19084         CultureInfo.
19085
19086 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
19087
19088         * image.c (mono_image_load_file_for_image): Cache loaded images in the
19089         image->files array.
19090
19091         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
19092         table as well.
19093
19094         * assembly.c (mono_assembly_load_references): Only load references
19095         once.
19096
19097         * class.c (mono_class_from_name): Avoid linear search of the 
19098         EXPORTEDTYPE table.
19099
19100         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
19101
19102 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
19103
19104         * image.h (MonoImage): Add 'field_cache' field.
19105
19106         * loader.c (mono_field_from_token): Cache field lookups.
19107         
19108         * reflection.c (mono_module_get_object): Fix name property.
19109
19110         * icall.c (ves_icall_get_enum_info): Update after changes to 
19111         mono_metadata_get_constant_index ().
19112
19113         * icall.c: Get rid of get_type_info icall, use a separate icall for
19114         each type property to avoid needless memory allocations. Fixes #51514.
19115
19116         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
19117         to avoid needless binary searches.
19118
19119         * class.c (class_compute_field_layout): Move the initialization of
19120         field->def_value to mono_class_vtable ().
19121
19122         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
19123         non-corlib types.
19124
19125         * object.c (mono_object_allocate): Make it inline.
19126
19127         * object.c (mono_object_allocate_spec): Make it inline.
19128         
19129 2003-12-02  Dick Porter  <dick@ximian.com>
19130
19131         * locales.c (create_NumberFormat): NumberFormatInfo construction.
19132         Patch by Mohammad DAMT (mdamt@cdl2000.com).
19133
19134 2003-12-01  Dick Porter  <dick@ximian.com>
19135
19136         * threads.c: Fix signature and call in CreateMutex and
19137         CreateEvent.
19138
19139 2003-12-01  Dick Porter  <dick@ximian.com>
19140
19141         * icall.c: 
19142         * locales.c: Implement string compares and searching
19143
19144         * object.h: Add extra Thread field
19145
19146 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
19147
19148         * reflection.c (fixup_method): Add support for MonoCMethod.
19149
19150 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
19151
19152         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
19153
19154         * reflection.c (assembly_name_to_aname): Allow extra characters in
19155         assembly names. Fixes #51468.
19156
19157 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
19158
19159         * exception.c (mono_exception_from_name_domain): New helper function.
19160
19161         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
19162         exception object in the correct domain.
19163
19164         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
19165         formatting + make a copy a the input data.
19166
19167         * loader.c (mono_get_method_from_token): Methods which contain
19168         native code do not have entries in the ImplMap.
19169
19170         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
19171         Thanks to Gonzalo for spotting this.
19172         
19173         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
19174         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
19175
19176         * assembly.h (mono_assembly_load_from): Split the second part of 
19177         assembly loading into a new public function.
19178
19179         * exception.h (mono_get_exception_bad_image_format): New function.
19180
19181 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
19182
19183         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19184         Enumerate all modules inside a dynamic assembly. Fixes #51293.
19185         
19186         * icall.c: Add new icall for creating dynamic methods.
19187
19188         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
19189
19190         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
19191
19192         * reflection.c (mono_reflection_create_dynamic_method): New icall to
19193         create a dynamic method.
19194
19195         * reflection.c (resolve_object): New helper function.
19196
19197         * reflection.c: Generalize ReflectionMethodBuilder and the functions
19198         which manipulate it so they can also work on dynamic methods.
19199
19200         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
19201         creating the MonoReflectionMethodAux structure if it is not needed.
19202         
19203         * reflection.h verify.c: Update after changes to object layout.
19204
19205         * reflection.c (method_builder_encode_signature): Fix compilation on
19206         gcc 2.95.x.
19207
19208 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
19209
19210         * appdomain.h: Added support for context static fields. Added static_data
19211           field to MonoAppContext and renamed thread_static_fields to a more
19212           generic special_static_fields in MonoAppDomain, since it can now contain
19213           context static fields.
19214         * domain.c: Updated hashtable name.
19215         * object.c: Replaced field_is_thread_static() for a more generic
19216           field_is_special_static() which also checks for context static attribute.
19217           In mono_class_vtable(), added support for static context fields.
19218         * threads.c: Changed methods that manage thread static fields to more
19219           generic methods so they can be reused both for thread and context static
19220           data.
19221         * threads.h: Declared some new methods.
19222
19223 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
19224
19225         * reflection.h: Update after changes to the managed types.
19226
19227         * reflection.c (encode_custom_modifiers): New helper function.
19228
19229         * reflection.c (method_encode_signature): Emit custom modifiers.
19230
19231         * reflection.c (field_encode_signature): Emit custom modifiers.
19232
19233 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
19234
19235         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
19236
19237         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
19238         implementation.
19239
19240         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
19241         icall.
19242
19243         * object.c (mono_field_get_value_object): New function.
19244
19245         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
19246         specific.
19247
19248 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
19249
19250         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
19251         return a preallocated out-of-memory exception instance.
19252
19253         * object.c (out_of_memory): Use the new function.
19254
19255         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
19256         flag is before the custom modifiers. Fixes #49802.
19257
19258 2003-11-16  Martin Baulig  <martin@ximian.com>
19259
19260         * class.c (mono_class_is_open_constructed_type): Implemented the
19261         MONO_TYPE_GENERICINST case.
19262
19263 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
19264
19265         * assembly.c (mono_assembly_fill_assembly_name): New function to
19266         fill out the MonoAssemblyName structure.
19267         (mono_assembly_open): Use the new function.
19268
19269         * icall.c (fill_reflection_assembly_name): New helper function.
19270
19271         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
19272         new function.
19273
19274         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
19275
19276 2003-11-15  Martin Baulig  <martin@ximian.com>
19277
19278         * class.c (mono_class_is_open_constructed_type): New public
19279         function; checks whether a type is an open constructed type,
19280         ie. whether it still contains type parameters.
19281         (mono_class_inflate_generic_type): If we're a type parameter and
19282         the inflated type is also a MONO_TYPE_(M)VAR, return the original
19283         type.
19284
19285         * class.h (MonoGenericInst): Added `guint32 is_open'.
19286
19287         * loader.c (method_from_methodspec): Check whether we're an open
19288         or closed constructed type and set `ginst->is_open'.
19289
19290         * reflection.c (mono_reflection_bind_generic_parameters): Check
19291         whether we're an open or closed constructed type and set
19292         `ginst->is_open'.
19293         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
19294         from open constructed types.
19295
19296 2003-11-15  Martin Baulig  <martin@ximian.com>
19297
19298         * reflection.c (mono_reflection_bind_generic_parameters): If we're
19299         a generic instance (instead of a generic type declaration) with
19300         unbound generic parameters, bind them to our actual types.
19301
19302 2003-11-14  Martin Baulig  <martin@ximian.com>
19303
19304         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
19305
19306         * reflection.c (mono_reflection_bind_generic_parameters): If we're
19307         an interface type, populate `res->interfaces' with instantiated
19308         versions of all the interfaces we inherit.
19309
19310 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
19311
19312         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
19313         when MONO_PATH is set but doesn't contain the install dir.
19314
19315 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19316
19317         * icall.c:
19318         (ves_icall_Type_GetInterfaces): don't return an interface twice when
19319         it's also implemented in base classes. Fixes bug #50927.
19320
19321 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
19322
19323         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
19324         if this method is called from a finalizer. Fixes #50913.
19325
19326 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
19327
19328         * threads.c: Implement VolatileRead/VolatileWrite
19329
19330         * icall.c: Add new icalls for VolatileRead/VolatileWrite
19331
19332 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19333
19334         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
19335         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
19336         2.95.3.
19337
19338         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
19339         from Peter Ross (pro@missioncriticalit.com).
19340         
19341 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
19342
19343         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
19344
19345 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19346
19347         * assembly.c (mono_assembly_load_references): Disable check because it
19348         triggers on older corlibs which lots of people have.
19349
19350 2003-11-12  Jackson Harper  <jackson@ximian.com>
19351
19352         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
19353         load corlib.dll if mscorlib.dll is not found.
19354         * assembly.h: Remove corlib name define.
19355         * class.c:
19356         * domain.c:
19357         * image.c: Change corlib name to mscorlib.
19358         
19359 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
19360
19361         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
19362
19363 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
19364
19365         * appdomain.h: Added loader_optimization here to sync with the C#
19366         code, and add disallow_binding_redirects field.
19367
19368 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
19369
19370         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
19371
19372         * reflection.c (mono_image_build_metadata): Fix crash on modules
19373         with no types.
19374
19375         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
19376
19377         * icall.c (ves_icall_get_method_info): Return callingConvention as
19378         well.
19379
19380         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
19381         namespaces from the EXPORTEDTYPE table as well.
19382
19383         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
19384         from all modules inside the assembly.
19385         
19386 2003-11-11  Martin Baulig  <martin@ximian.com>
19387
19388         * reflection.c (mono_reflection_bind_generic_parameters): Make
19389         this work for interfaces.
19390
19391 2003-11-11  Martin Baulig  <martin@ximian.com>
19392
19393         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
19394
19395 2003-11-11  Martin Baulig  <martin@ximian.com>
19396
19397         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
19398         "MonoInflatedMethod" and "MonoInflatedCtor".
19399
19400 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
19401
19402         * reflection.c (resolution_scope_from_image): Use the assembly table
19403         from the manifest module, since other modules don't have it.
19404
19405         * debug-helpers.c (mono_type_full_name): New helper function.
19406
19407         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
19408
19409         * image.c (mono_image_load_file_for_image): New public function which
19410         is a replacement for the load_file_for_image in class.c.
19411
19412         * assembly.c (mono_assembly_load_module): A wrapper for the function
19413         above which does assembly association and reference loading too.
19414
19415         * class.c (mono_class_from_name): Call mono_assembly_load_module.
19416
19417 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19418
19419         * appdomain.c: not all of the attributes for the full assembly name
19420         are required and the order doesn't matter. Fixes bug #50787.
19421
19422 2003-11-10  Dick Porter  <dick@ximian.com>
19423
19424         * locales.c: Use platform-endian UTF16
19425
19426 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
19427
19428         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
19429         
19430 2003-11-10  Martin Baulig  <martin@ximian.com>
19431
19432         * metadata.c
19433         (mono_metadata_load_generic_params): Make this actually work.
19434
19435         * reflection.c (mono_reflection_bind_generic_parameters): If our
19436         parent is a generic instance, pass all the `types' to it, no
19437         matter whether it has the same number of type parameters or not.
19438
19439 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
19440
19441         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
19442
19443         * assembly.c (mono_assembly_load_references): Move the image<->assembly
19444         assignment code to this function so it gets called recursively for all
19445         modules.
19446
19447         * image.c (load_modules): Remove the assembly assignment since it is
19448         now done by mono_assembly_load_references.
19449         
19450         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19451         Add 'module' argument.
19452         (mono_module_get_types): New helper function.
19453         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
19454
19455 2003-11-08  Martin Baulig  <martin@ximian.com>
19456
19457         * class.c (mono_class_inflate_generic_method): Interface method
19458         don't have a header.
19459
19460         * reflection.c (mono_image_get_methodspec_token): Take an
19461         additional `MonoGenericInst *' argument instead of reading it from
19462         the header; this is necessary to support interfaces.
19463         (mono_image_create_token): Pass the `MonoGenericInst *' from the
19464         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
19465         (inflated_method_get_object): Take an additional `MonoGenericInst *'
19466         argument.
19467
19468         * reflection.h (MonoReflectionInflatedMethod): Added
19469         `MonoGenericInst *ginst'.
19470
19471 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
19472
19473         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
19474
19475 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
19476
19477         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
19478
19479 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
19480
19481         * reflection.c 
19482         (reflection_methodbuilder_from_method_builder):
19483         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
19484         initialize a ReflectionMethodBuilder structure.
19485         (mono_image_get_methodbuilder_token):
19486         (mono_image_get_ctorbuilder_token): New functions to emit memberref
19487         tokens which point to types in another module inside the same assembly.
19488
19489         * reflection.c: Use the new helper functions.
19490         
19491         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
19492
19493         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
19494         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
19495
19496         * reflection.c (resolution_scope_from_image): Emit a moduleref if
19497         neccesary.
19498
19499         * reflection.c (mono_image_build_metadata): Emit metadata only for the
19500         current module. Emit the manifest only for the main module.
19501
19502         * reflection.c (mono_image_create_token): Add assertion when a 
19503         memberref needs to be created.
19504
19505         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
19506
19507         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
19508         larger buffer for the custom attribute blob. Fixes #50637.
19509         
19510 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19511
19512         * threadpool.c: notify listener on async processing handles after
19513         invoking the async callback. Thanks to Zoltan.
19514
19515 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19516
19517         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
19518         avoid code duplication.
19519
19520         * reflection.h (MonoDynamicImage): New type which is currently unused,
19521         but will be used through the ref.emit code in place of 
19522         MonoDynamicAssembly.
19523
19524         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
19525         object layout.
19526
19527         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
19528         a MonoDynamicImage instead of just a MonoImage.
19529         
19530         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
19531         icalls to ModuleBuilder but keep their semantics, so they will work
19532         with moduleb->assemblyb. This will change later.
19533         
19534 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19535
19536         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
19537         object layout.
19538
19539         * reflection.c (mono_image_build_metadata): Avoid creation of a default
19540         main module, since it is now done by the managed code.
19541
19542 2003-11-03  Martin Baulig  <martin@ximian.com>
19543
19544         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
19545         `ginst->klass' here.
19546         (method_encode_methodspec): Don't use the `ginst->generic_method's
19547         klass if it's a generic instance, use `ginst->klass' in this case.
19548
19549 2003-11-03  Martin Baulig  <martin@ximian.com>
19550
19551         * reflection.c (mono_image_get_generic_method_param_info):
19552         Removed, use mono_image_get_generic_param_info() instead.
19553         (mono_image_get_type_info): Write the GenericParam table before
19554         the Method table.  This is neccessary because in the GenericParam
19555         table, type parameters of the class (ie. '!0' etc.) must come
19556         before the ones from its generic methods (ie. '!!0' etc).
19557
19558 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
19559
19560         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
19561
19562 2003-11-02  Martin Baulig  <martin@ximian.com>
19563
19564         * reflection.c (create_generic_typespec): Take a
19565         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
19566         the generic parameters from it.
19567
19568 2003-11-02  Martin Baulig  <martin@ximian.com>
19569
19570         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
19571         instead of a `MonoClassField *' since we just need the type.
19572         (create_generic_typespec): New static function.  Creates a
19573         TypeSpec token for a generic type declaration.
19574         (mono_image_get_generic_field_token): New static function.
19575         (mono_image_create_token): If we're a FieldBuilder in a generic
19576         type declaration, call mono_image_get_generic_field_token() to get
19577         the token.
19578
19579 2003-11-02  Martin Baulig  <martin@ximian.com>
19580
19581         * reflection.h
19582         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
19583         `MonoReflectionGenericInst *declaring_type' and
19584         `MonoReflectionGenericInst *reflected_type' fields.
19585
19586         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
19587         `MonoReflectionGenericInst *declaring_type' and a
19588         `MonoReflectionGenericInst *reflected_type' argument instead of a
19589         single `MonoReflectionGenericInst *type' one.  Set
19590         `res->declaring_type' and `res->reflected_type' from them.
19591         (mono_reflection_inflate_field): Likewise.      
19592
19593 2003-11-02  Martin Baulig  <martin@ximian.com>
19594
19595         * class.c (mono_class_setup_vtable): Don't store generic methods
19596         in the vtable.  
19597
19598 2003-11-02  Martin Baulig  <martin@ximian.com>
19599
19600         * reflection.h (MonoReflectionGenericInst): Added
19601         `MonoReflectionType *declaring_type'.
19602
19603         * reflection.c (mono_reflection_bind_generic_parameters): Use
19604         `if (tb->parent)' instead of `klass->parent'.
19605
19606 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
19607
19608         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
19609         with an empty ASSEMBLY table.
19610
19611         * reflection.c (mono_image_build_metadata): Avoid using the same loop
19612         variable in the inner and outer loops.
19613
19614 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
19615
19616         * metadata.h (mono_metadata_make_token): Put parentheses around macro
19617         argument.
19618
19619         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
19620         
19621         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
19622         icalls. Instead, do everything in managed code. This is needed since
19623         it is hard to restore the original domain etc. in unmanaged code in the
19624         presence of undeniable exceptions.
19625
19626         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
19627         New icalls to push and pop appdomain refs.
19628
19629 2003-10-31  Martin Baulig  <martin@ximian.com>
19630
19631         * class.c (inflate_generic_type): Renamed to
19632         mono_class_inflate_generic_type() and made it public.
19633
19634         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
19635         New interncall.
19636
19637         * loader.c (mono_field_from_memberref): Also set the retklass for
19638         typespecs.
19639
19640         * fielder.c (mono_image_get_inflated_field_token): New static
19641         method; creates a metadata token for an inflated field.
19642         (mono_image_create_token, fixup_method): Added support for
19643         "MonoInflatedField".
19644         (fieldbuilder_to_mono_class_field): New static function.
19645         (mono_reflection_inflate_field): New public function.
19646
19647         * reflection.h
19648         (MonoReflectionGenericInst): Added `MonoArray *fields'.
19649         (MonoReflectionInflatedField): New typedef.     
19650
19651 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
19652
19653         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
19654         for Solaris and other platforms without s6_addr16
19655
19656 2003-10-30  Martin Baulig  <martin@ximian.com>
19657
19658         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
19659         argument instead of two.
19660         (mono_class_inflate_generic_signature): Likewise.
19661         (inflate_generic_header): Likewise.
19662         (mono_class_inflate_generic_method): Likewise.  In addition, if
19663         `ginst->klass' is set, it becomes the new `method->klass'.
19664
19665         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
19666         field.
19667
19668         * reflection.c (encode_generic_method_sig): Write a 0xa as the
19669         first byte. [FIXME]
19670         (method_encode_methodspec): If we have generic parameters, create
19671         a MethodSpec instead of a MethodRef.
19672         (fixup_method): Added support for "MonoInflatedMethod" and
19673         "MonoInflatedCtor".
19674         (mono_image_create_token): Added support for "MonoInflatedMethod"
19675         and "MonoInflatedCtor".
19676         (inflated_method_get_object): New static function; returns a
19677         managed "System.Reflection.MonoInflatedMethod" object.
19678         (mono_reflection_bind_generic_method_parameters): Return a
19679         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
19680         (mono_reflection_inflate_method_or_ctor): Likewise.
19681         (mono_image_get_generic_method_param_info): Initialize unused
19682         fields to zero.
19683         (mono_image_get_generic_param_info): Likewise.
19684
19685         * reflection.h (MonoReflectionInflatedMethod): New public
19686         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
19687         "S.R.MonoInflatedCtor" classes.
19688
19689         * loader.c (method_from_memberref): If we're a TypeSpec and it
19690         resolves to a generic instance, inflate the method.
19691
19692 2003-10-28  Dick Porter  <dick@ximian.com>
19693
19694         * object.c (mono_runtime_run_main): Convert command-line arguments
19695         into utf8, falling back to the user's locale encoding to do so.
19696
19697 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
19698
19699         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
19700         at this time.
19701
19702         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
19703
19704         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
19705         up icalls at method definition time. Partially fixes #33569.
19706
19707 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
19708
19709         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
19710         marshalling of arrays. Fixes #50116.
19711
19712         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
19713
19714         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
19715         points to a vtable in the dying appdomain.
19716
19717         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
19718         listeners into unmanaged code inside the lock.
19719
19720         * object.c (mono_class_vtable): Turn off typed allocation in non-root
19721         domains and add some comments.
19722
19723 2003-10-25  Martin Baulig  <martin@ximian.com>
19724
19725         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
19726
19727         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
19728
19729         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
19730         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
19731         currently parsing.  Create the generic class and store it in
19732         `generic_inst->klass' before parsing the type arguments.  This is
19733         required to support "recursive" definitions; see mcs/tests/gen-23.cs
19734         for an example.
19735         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
19736         to support recursive typespec entries.
19737
19738         * class.c (mono_class_setup_parent): If our parent is a generic
19739         instance, we may get called before it has its name set.
19740         (mono_class_from_generic): Splitted into
19741         mono_class_create_from_generic() and mono_class_initialize_generic().
19742
19743 2003-10-25  Martin Baulig  <martin@ximian.com>
19744
19745         * icall.c (ves_icall_Type_BindGenericParameters): Return a
19746         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
19747         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
19748         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
19749
19750         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
19751         (create_typespec): Likewise.
19752         (mono_reflection_bind_generic_parameters): Return a
19753         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
19754         (mono_reflection_inflate_method_or_ctor): New public function.
19755
19756         * reflection.h (MonoReflectionGenericInst): New typedef.        
19757
19758 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
19759
19760         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
19761         inside the domain lock. Fixes #49993.
19762         
19763         * object.c (mono_class_vtable): When typed allocation is used, 
19764         allocate vtables in the GC heap instead of in the mempool, since the
19765         vtables contain GC descriptors which are used by the collector even
19766         after the domain owning the mempool is unloaded.
19767
19768         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
19769
19770         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
19771         reflect what it does. Also invalidate mempools instead of freeing
19772         them if a define is set.
19773
19774         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
19775         of the appdomain.
19776         
19777         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
19778         hold the finalizable objects in this domain.
19779
19780         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
19781         appdomain.
19782
19783         * appdomain.c (mono_domain_set): New function to set the current
19784         appdomain, but only if it is not being unloaded.
19785
19786         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
19787         appdomain which is being unloaded.
19788         
19789         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
19790         unloading of the root appdomain.
19791
19792         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
19793         icall to execute a method in another appdomain. Intended as a 
19794         replacement for InternalSetDomain, which can confuse the code 
19795         generation in the JIT.
19796
19797         * appdomain.c (mono_domain_is_unloading): New function to determine
19798         whenever an appdomain is unloading.
19799
19800         * appdomain.c (mono_domain_unload): New function to correctly unload
19801         an appdomain.
19802
19803         * assembly.c (mono_assembly_load_references): Check that an assembly
19804         does not references itself.
19805
19806         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
19807         domain manually, it asks the finalizer thread to do it, then waits for
19808         the result. Also added a timeout.
19809
19810         * icall.c: Register the new icalls.
19811
19812         * threads.h threads.c: Export the mono_gc_stop_world and 
19813         mono_gc_start_world functions.
19814         
19815         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
19816         function to fill out the mempool with 0x2a.
19817
19818 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
19819
19820         * reflection.h (MonoReflectionMethodAux): New structure to store
19821         information which is rarely used, thus is not in the MonoMethod
19822         structure.
19823
19824         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
19825         store the aux info.
19826
19827         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
19828         and marshalling info into the aux structure.
19829
19830         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
19831         from the aux structure.
19832
19833         * loader.c (mono_method_get_param_names): Retrieve the param names from
19834         the aux structure.
19835         
19836 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
19837
19838         * exception.h exception.c: Add AppDomainUnloadedException && fix 
19839         warning.
19840
19841 2003-10-21  Dick Porter  <dick@ximian.com>
19842
19843         * socket-io.c
19844         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
19845         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
19846
19847 2003-10-21  Martin Baulig  <martin@ximian.com>
19848
19849         * reflection.c (mono_reflection_bind_generic_parameters):
19850         `klass->parent' is NULL for interfaces.
19851
19852 2003-10-21  Martin Baulig  <martin@ximian.com>
19853
19854         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
19855
19856 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
19857
19858         * exception.c (mono_exception_from_name_msg): New helper function for
19859         creating exceptions and initializing their message field.
19860
19861         * exception.c: Simplify functions using the new helper.
19862
19863         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
19864         New function.
19865
19866         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
19867         mono_raise_exception, since otherwise gcc doesn't generate the function
19868         epilog for raise_exception, confusing the stack unwinding in the JIT.
19869         Fixes #45043.
19870
19871         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
19872         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
19873         Fixes #49499.
19874
19875 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19876
19877         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
19878         utf8.
19879
19880 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
19881
19882         * icall.c: Removed GetUninitializedObject method because
19883           AllocateUninitializedClassInstance does the same.
19884
19885 2003-10-18  Martin Baulig  <martin@ximian.com>
19886
19887         * class.c (inflate_generic_signature): Renamed to
19888         mono_class_inflate_generic_signature() and made it public.
19889         (my_mono_class_from_generic_parameter): New static function; if we
19890         don't already have the generic parameter's MonoClass, create a
19891         very simple one which is just used internally in the runtime and
19892         not passed back to managed code.
19893
19894         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
19895
19896         * metadata.h (MonoMethodSignature): Moved the
19897         `MonoGenericParam *gen_params' to the MonoMethodHeader.
19898         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
19899
19900         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
19901         ves_icall_MonoMethod_GetGenericArguments(); this is now an
19902         interncall on the MonoMethod class, not on MethodInfo.
19903         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
19904         calling mono_reflection_bind_generic_method_parameters() directly.
19905
19906         * loader.c (mono_method_get_signature): If this is a MethodSpec;
19907         return the already computed `method->signature'.
19908         (method_from_methodspec): New static function to load a method
19909         from a MethodSpec entry.
19910         (mono_get_method_from_token): Call the new method_from_methodspec()
19911         for MethodSpec tokens.  
19912         (mono_get_method_from_token): If we're a generic method, load the
19913         type parameters.
19914
19915         * reflection.c (mono_image_get_memberref_token): Allow
19916         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
19917         table.
19918         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
19919         (mono_image_create_token): First check whether it's a generic
19920         method (so we'd need to create a MethodSpec), then do the other
19921         two alternatives.
19922         (mono_reflection_bind_generic_method_parameters): Return a
19923         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
19924         called directly from the interncall.
19925
19926 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
19927
19928         * reflection.c (load_public_key): Move loading of the public key
19929         into managed code.
19930
19931         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
19932
19933         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
19934         fields.
19935
19936         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
19937         culture, hash_alg and public_key. Fixes #49555.
19938
19939 2003-10-17  Martin Baulig  <martin@ximian.com>
19940
19941         * class.h (MonoGenericInst): Moved this declaration here and added
19942         `MonoMethod *generic_method'.
19943
19944         * icall.c
19945         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
19946         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
19947
19948         * metadata.c (mono_metadata_type_equal): Two types of
19949         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
19950         index; ie. don't compare the address of the `MonoGenericParam'
19951         structure.
19952         (mono_metadata_load_generic_params): Removed the `MonoMethod
19953         *method' argument.
19954
19955         * metadata.h (MonoGenericInst): Moved declaration to class.h.
19956         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
19957
19958         * reflection.c (method_encode_signature): Encode the number of
19959         generic parameters.
19960         (encode_generic_method_sig): New static function.
19961         (method_encode_methodspec): New static function; creates an entry
19962         in the MethodSpec table for a generic method.
19963         (mono_image_get_methodspec_token): New static function.
19964         (mono_image_create_token): Call mono_image_get_methodspec_token()
19965         for generic methods.
19966         (mono_reflection_bind_generic_method_parameters): New public
19967         function.  Instantiates a generic method.
19968
19969 2003-10-16  Martin Baulig  <martin@ximian.com>
19970
19971         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
19972         *gen_params' here from MonoMethodHeader.
19973
19974         * metadata.c (mono_metadata_parse_method_signature): If we have
19975         generic parameters, initialize `method->gen_params' and then set
19976         the correct `type->data.generic_param' in all the parameters.
19977
19978 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
19979
19980         * threads.c (mono_threads_get_default_stacksize): New function to 
19981         return the default stacksize.
19982
19983         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
19984         termination of the finalizer thread, since the previous method had
19985         race conditions. Fixes #49628.
19986
19987         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
19988         as for the other managed threads.
19989
19990 2003-10-16  Martin Baulig  <martin@ximian.com>
19991
19992         * class.c (inflate_generic_signature): Copy `generic_param_count'
19993         and `gen_params'.
19994
19995         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
19996         New interncall.
19997
19998         * metadata.c (mono_metadata_parse_method_signature): Actually set
19999         the `method->generic_param_count' here.
20000         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
20001
20002 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
20003
20004         * object.h: Add a new field to TypedRef to simplify the implementation
20005         of the REFANY opcodes in the JIT.
20006
20007         * icall.c: Make use of the new field.
20008
20009         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
20010         dynamically.
20011
20012 2003-10-15  Martin Baulig  <martin@ximian.com>
20013
20014         * class.c (mono_class_from_gen_param): Renamed to
20015         mono_class_from_generic_parameter() and moved most of the
20016         functionality from mono_reflection_define_generic_parameter()
20017         here; ie. we create a "real" class here.
20018         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
20019         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
20020         previously been called.
20021
20022         * class.h (MonoGenericParam): Moved the declaration of this struct
20023         here from metadata.h and added `MonoMethod *method'.
20024
20025         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
20026         interncall.
20027
20028         * loader.c (mono_get_method_from_token): If we have any generic
20029         parameters, call mono_metadata_load_generic_params() to read them
20030         from the MONO_TABLE_GENERICPAR.
20031
20032         * metadata.c (mono_metadata_load_generic_params): Added
20033         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
20034
20035         * metadata.h (MonoMethodSignature): Replaced
20036         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
20037         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
20038
20039         * reflection.c (mono_reflection_define_generic_parameter): Moved
20040         most of the functionality into the new
20041         mono_class_from_generic_parameter(); set the `method' field if
20042         we're a method parameter.       
20043
20044 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
20045
20046         * marshal.c (emit_struct_conv): if native size is 0
20047         emit no code.
20048
20049 2003-10-14  Martin Baulig  <martin@ximian.com>
20050
20051         * icall.c: The generics API has changed in the spec since it was
20052         added to System.Type; these modifications make it match the spec
20053         again.
20054         (ves_icall_Type_GetGenericParameters): Renamed to
20055         `ves_icall_Type_GetGenericArguments'.
20056         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
20057         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
20058         `ves_icall_MonoType_get_HasGenericArguments'.
20059         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
20060         `ves_icall_MonoType_get_IsGenericParameter'.
20061         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
20062         this is no interncall anymore.
20063         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
20064         `ves_icall_TypeBuilder_get_IsGenericParameter'.
20065
20066 2003-10-14  Martin Baulig  <martin@ximian.com>
20067
20068         * reflection.c (mono_reflection_bind_generic_parameters): Also
20069         inflate generic methods if we're reading the class from IL.
20070
20071 2003-10-13  Martin Baulig  <martin@ximian.com>
20072
20073         * reflection.c (mono_reflection_define_generic_parameter): This
20074         method isn't called directly from the icall anymore; take a
20075         `MonoReflectionAssemblyBuilder *' so we can use this for type and
20076         method generic parameters.
20077         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
20078         (method_builder_encode_signature): Encode generic parameters.
20079         (mono_image_get_method_info): Write generic params to the
20080         MONO_TABLE_GENERICPARAM table.
20081
20082         * reflection.h (MonoReflectionMethodBuilder): Added
20083         `MonoArray *generic_params'.
20084
20085         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
20086
20087         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
20088         wrapper for mono_reflection_define_generic_parameter().
20089         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
20090
20091 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
20092
20093         * marshal.h: Add missing function to fix build.
20094
20095         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
20096         the SetLastError pinvoke attribute.
20097
20098         * marshal.c (mono_marshal_set_last_error): New helper function called
20099         by the generated code.
20100         
20101         * marshal.c (mono_mb_emit_branch): New helper function.
20102
20103         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
20104
20105         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
20106         classes as parameters and return values of delegates. Fixes #29256. 
20107
20108 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
20109
20110         * locales.c: use gint32 in non HAVE_ICU case
20111
20112 2003-10-11  Martin Baulig  <martin@ximian.com>
20113
20114         * mono-debug.c (mono_debug_add_method): Added a workaround for
20115         bug #48591.
20116
20117 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
20118
20119         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
20120         delegates passed to native code must use the STDCALL calling 
20121         convention. Fixes #35987.
20122
20123 2003-10-10  Martin Baulig  <martin@ximian.com>
20124
20125         * class.c (inflate_generic_type): If we're inflating for a generic
20126         type instance (and not for a generic method), return
20127         MONO_TYPE_MVAR unchanged.
20128
20129 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20130
20131         * string-icalls.c: Join ignores null strings in the source array.
20132         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
20133         * threads.c: GetAvailableTheads is slightly more accurate.
20134
20135 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
20136
20137         * threads.h threads.c : add mono_threads_set_default_stacksize
20138         and pass default to CreateThread calls.
20139
20140 2003-10-09  Dick Porter  <dick@ximian.com>
20141
20142         * icall.c:
20143         * locales.h:
20144         * locales.c: Internal calls for constructing CultureInfo and
20145         related objects from libicu (if its available.)
20146
20147 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
20148
20149         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
20150
20151 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20152
20153         * threadpool.c: added an argument to async_invoke_thread that is the
20154         item to process, pass the MonoAsyncResult to the thread start function
20155         when creating a new thread. This way we don't need to acquire any lock
20156         when we're creating a new thread. Readded a semaphore for faster
20157         response times (instead of that Sleep i added).
20158
20159 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
20160
20161         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20162         get daylight change dates better on Windows, fix handling
20163         of platforms without tm_gmtoff.
20164
20165 2003-10-06  Martin Baulig  <martin@ximian.com>
20166
20167         * class.c (inflate_generic_method): Renamed to
20168         mono_class_inflate_generic_method() and made public.
20169         (mono_class_init): Don't inflate the generic methods here.
20170         (mono_class_from_generic): Added `gboolean inflate_methods'
20171         argument.  Inflate the methods here.
20172
20173         * loader.c (mono_method_get_param_names): Ignore instances of
20174         generic types for the moment.
20175
20176         * reflection.c (fixup_method): Added support for inflated methods.
20177         (mono_image_create_token): Use mono_image_get_methodref_token()
20178         for inflated methods.
20179         (mono_custom_attrs_from_param): Ignore instances of generic types
20180         for the moment.
20181         (mono_reflection_bind_generic_parameters): New public function.
20182         Moved all the functionality from
20183         ves_icall_Type_BindGenericParameters() here and added support for
20184         dynamic types.
20185         (mono_reflection_define_generic_parameter): Initialize
20186         `klass->methods' here.
20187
20188         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
20189         functionality into mono_reflection_define_generic_parameter().
20190         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
20191         TypeBuilder, return that TypeBuilder.
20192
20193 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20194
20195         * appdomain.c: removed mono_delegate_semaphore.
20196
20197         * threadpool.c:
20198         (mono_thread_pool_add): moved hash table creation inside and the thread 
20199         creation outside of the critical region.
20200         (mono_thread_pool_finish): removed obsolete code.
20201         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
20202         continue or exit the thread depending on the queue.
20203
20204 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
20205
20206         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
20207         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
20208         handle more bool marshalling options
20209
20210 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
20211
20212         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
20213         arrays of structs. Also add a more descriptive error message when
20214         a structure member is marshalled as LPArray.
20215
20216 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
20217
20218         * marshal.c (mono_marshal_get_native_wrapper): Add support for
20219         marshalling arrays of complex types. Fixes #29098. Also remove an
20220         usused and incomplete function.
20221
20222 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
20223
20224         * gc.c: report heap_size - free_bytes as total memory allocated
20225         (bug#49362).
20226
20227 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
20228
20229         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
20230         fix timezone handling problems on Windows.
20231         
20232         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
20233         asserts when the year is outside the range handled by ms the functions.
20234
20235         * class.c (setup_interface_offsets): If the class is an interface,
20236         fill out its interface_offsets slot.
20237
20238 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20239
20240         * threadpool.c: mark threadpool threads as background.
20241
20242 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
20243
20244         * decimal.c - define DECINLINE to nothing if not using GCC
20245
20246 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
20247
20248         * assembly.c: More refcount fixes.
20249
20250 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20251
20252         * string-icalls.c: if we're not trimming, return the same string.
20253         When not splitting, don't create a new string.
20254
20255 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20256
20257         * image.c:
20258         (mono_image_open): increment the ref_count inside the critical section.
20259
20260 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
20261
20262         * image.c (mono_image_open): Fix reference counting bug.
20263
20264 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
20265
20266         * marshal.c (mono_marshal_type_size) struct alignment changed for 
20267         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
20268         64bits. Avoid leak in mono_marshal_get_native_wrapper when
20269         mono_lookup_pinvoke_call throws.        
20270
20271 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
20272
20273         * reflection.c (mono_reflection_parse_type): Fix #49114.
20274
20275         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
20276         temporary workaround for cygwin header problem.
20277
20278         * object.c (mono_object_isinst): Synchronize this with the code
20279         generated by the JIT for casts.
20280
20281 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
20282
20283         * reflection.c (encode_type): Fix #38332.
20284
20285 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
20286
20287         * marshal.c (mono_marshal_method_from_wrapper): New function to return
20288         the original method from the wrapper method.
20289
20290 2003-09-25  Martin Baulig  <martin@ximian.com>
20291
20292         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
20293         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
20294         (ves_icall_Type_get_IsGenericInstance): New interncall.
20295
20296 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
20297
20298         * object.c: fix cast warning in big endian code.
20299
20300 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
20301
20302         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
20303         
20304 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20305
20306         * assembly.c: don't call check_env from mono_assembly_load. It's
20307         already done once in mono_assemblies_init and may cause headaches when
20308         multiple threads are loading assemblies.
20309
20310 2003-09-19  Martin Baulig  <martin@ximian.com>
20311
20312         * reflection.c (mono_reflection_define_generic_parameter): Don't
20313         allocate `klass->methods', set `klass->flags' to
20314         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
20315
20316 2003-09-18  Martin Baulig  <martin@ximian.com>
20317
20318         * class.c (mono_class_init): Don't create `class->methods' if it's
20319         already initialized.
20320
20321         * metadata.c (mono_metadata_load_generic_params): Make this
20322         actually work.
20323
20324         * reflection.c (mono_reflection_define_generic_parameter): Set
20325         parent class and interfaces from the constraints.
20326
20327         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
20328         to keep this struct in sync with the declaration in TypeBuilder.cs.
20329
20330 2003-09-17  Martin Baulig  <martin@ximian.com>
20331
20332         * metadata.h (MonoType): Replaced the data's `int type_param'
20333         field with `MonoGenericParam *generic_param'.
20334         (MonoGenericParam): Added `MonoClass *klass'.
20335
20336         * class.c (mono_class_from_gen_param): Removed the
20337         `MonoImage *image' and `int type_num' arguments.
20338
20339         * metadata.c (mono_metadata_parse_generic_param): New static
20340         method; creates a MonoGenericParam which just contains the index.
20341         (do_mono_metadata_parse_type): Call
20342         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
20343         MONO_TYPE_MVAR.
20344
20345         * reflection.c (mono_image_typedef_or_ref): Generic type
20346         parameters may be in the same assembly, but never use a typedef
20347         for them.
20348         (mono_reflection_define_generic_parameter): We're now creating a
20349         "real" class for the type parameter; it's now safe to call
20350         mono_class_from_mono_type() on the class'es type, it'll do the
20351         right thing.
20352
20353 2003-09-16  Martin Baulig  <martin@ximian.com>
20354
20355         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
20356         `symfile->range_entry_size' and `symfile->class_entry_size' here;
20357         the `symfile' data structure must be fully initialized before it
20358         gets added to the table.
20359
20360 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
20361
20362         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
20363
20364         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
20365         class init trampolines.
20366
20367 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
20368
20369         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
20370         to the built-in profiler to turn off time and allocation profiling
20371         respectively.
20372
20373 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
20374
20375         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
20376         g_direct_equal.
20377
20378         * debug-helpers.c (mono_method_full_name): Print the wrapper type
20379         in human readable form.
20380
20381 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
20382
20383         * reflection.c icall.c: Fixed warnings.
20384
20385         * image.c (load_class_names): Use a temporary hash table to hold the
20386         namespaces in order to avoid doing many string comparisons.
20387
20388         * image.h: Fix typo.
20389
20390         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
20391         Pass NULL instead of g_direct_equal to the GHashTable constructor 
20392         since the NULL case is short-circuited inside g_hash_table_lookup, 
20393         leading to better performance.  
20394
20395         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
20396         obtain the first custom attribute for a given index. Depends on the
20397         CustomAttribute table being sorted by the parent field.
20398
20399         * reflection.c (mono_custom_attrs_from_index): Use the new function 
20400         for better performance.
20401
20402 2003-09-07  Martin Baulig  <martin@ximian.com>
20403
20404         * class.c (mono_class_init): If we're a generic instance, inflate
20405         all our methods instead of loading them from the image.
20406         (mono_class_from_generic): Set `class->methods = gklass->methods'.
20407
20408 2003-09-07  Martin Baulig  <martin@ximian.com>
20409
20410         * mono-debug-debugger.c: Added support for constructors.
20411
20412 2003-09-06  Martin Baulig  <martin@ximian.com>
20413
20414         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
20415         New interncall.
20416
20417         * reflection.c (mono_reflection_setup_generic_class): Call
20418         ensure_runtime_vtable() to create the vtable.
20419
20420 2003-09-05  Martin Baulig  <martin@ximian.com>
20421
20422         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
20423         MONO_TYPE_MVAR.
20424
20425 2003-09-04  Martin Baulig  <martin@ximian.com>
20426
20427         * reflection.c (mono_reflection_define_generic_parameter): Generic
20428         parameters start with zero.
20429
20430 2003-09-04  Martin Baulig  <martin@ximian.com>
20431
20432         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20433
20434         * reflection.h (MonoReflectionGenericParam): New typedef.
20435         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
20436         the generic parameters from the managed TypeBuilder.
20437
20438         * reflection.c (mono_reflection_define_generic_parameter): New function.
20439         (mono_reflection_create_runtime_class): Encode generic parameters.
20440         (mono_reflection_setup_generic_class): New function; this is
20441         called after adding adding all generic params to the TypeBuilder.
20442         (encode_type): Added MONO_TYPE_VAR.
20443
20444 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
20445
20446         * class.h class.c (mono_class_needs_cctor_run): Moved this method
20447         here from the JIT.
20448
20449         * assembly.h assembly.c: Moved the AOT loading code into an assembly
20450         load hook.
20451
20452 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
20453
20454         * reflection.h reflection.c class.h class.c: Delete duplicate 
20455         definition of mono_type_get_name () from reflection.c and export the
20456         one in class.c.
20457
20458         * class.c: Class loading fixes from Bernie Solomon 
20459         (bernard@ugsolutions.com).
20460
20461         * reflection.c: Endianness fixes from Bernie Solomon 
20462         (bernard@ugsolutions.com).
20463         
20464 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
20465
20466         * assembly.h assembly.c: Define a file format version for AOT
20467         libraries.
20468         
20469         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
20470
20471         * appdomain.h (MonoJitInfo): New field to determine whenever the
20472         code is domain neutral.
20473         
20474 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
20475
20476         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
20477
20478 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
20479
20480         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
20481         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
20482         Avoid caching the result since strings must be domain specific. Fixes
20483         #48050.
20484
20485 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
20486
20487         * marshal.c (mono_marshal_init): Make this callable multiple times
20488         since it is hard to find a correct place to call it.
20489
20490         * object.c (mono_runtime_class_init): Execute static constructors in
20491         the correct appdomain.
20492
20493         * image.c (build_guid_table): Handle the case when multiple images have
20494         the same GUID.
20495
20496 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20497
20498         * icall.c: added a couple of icalls for System.Web.
20499
20500 2003-08-28  Martin Baulig  <martin@ximian.com>
20501
20502         * icall.c (ves_icall_Type_BindGenericParameters): Use
20503         `klass->generic_inst' instead of `&klass->byval_arg' in the
20504         mono_type_get_object() call.  The returned type must be
20505         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
20506
20507 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
20508
20509         * NOTES: New file.
20510
20511         * object.c (mono_class_proxy_vtable): Make it thread safe.
20512
20513         * pedump.c: Fix warning.
20514
20515         * object.c appdomain.h: Get rid of metadata_section. 
20516         It is no longer needed and it was causing deadlocks with domain->lock.
20517
20518         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
20519
20520 2003-08-26  Martin Baulig  <martin@ximian.com>
20521
20522         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
20523
20524 2003-08-26  Martin Baulig  <martin@ximian.com>
20525
20526         * pedump.c (main): Call mono_metadata_init(),
20527         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
20528         and mono_loader_init().
20529
20530 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
20531
20532         * loader.h: Add missing include to fix build.
20533
20534         * image.h: mono_image_load_references is no more.
20535
20536         * assembly.c: Reworked assembly loading to make it really thread safe.
20537         After these changes, the assembly returned by mono_assembly_open is
20538         fully initialized, i.e. all its references assemblies are loaded.
20539
20540         * assembly.c (mono_image_load_references): Renamed to 
20541         mono_assembly_load_references, and made private, since clients no
20542         longer need to call it.
20543
20544         * class.c: Removed calls to mono_assembly_load_references, since it was
20545         a source of deadlocks.
20546
20547         * loader.h loader.c class.h class.c: Protect data structures using a 
20548         new lock, the loader lock.
20549
20550         * class.c (mono_class_setup_vtable): Create temporary hash tables and
20551         GPtrArrays only when needed.
20552
20553         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
20554         into empty structures by mcs. Fixes pinvoke7.cs.
20555         
20556         * domain.c (mono_init): Call a new initialization function.
20557
20558         * appdomain.c (mono_runtime_init): Call the new initializer function
20559         of the marshal module.
20560
20561         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
20562         inserted into empty structures by mcs. Fixes pinvoke7.cs.
20563
20564         * marshal.h marshal.c: Added locks around the wrapper caches to make
20565         this module thread safe.
20566
20567         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
20568         this argument. Fixes pinvoke1.exe.
20569
20570 2003-08-25  Lluis Sanchez <lluis@ximian.com>
20571
20572         * object.h: Added call_type field to MonoMethodMessage and the corresponding
20573         enumeration of values. Removed fields to store remote call output values in
20574         MonoAsyncResult. Not needed any more.
20575         * object.c: Initialize call_type and async_result fields in mono_message_init.
20576         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
20577         dispatching the message.
20578         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
20579         async call to finish. To do it use a message with EndInvoke call type.
20580
20581 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
20582
20583         * loader.h loader.c (mono_method_hash_marhal_info): New function which
20584         determines whenever a method has marshalling info.
20585
20586 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20587
20588         * assembly.c: fix the build on windows.
20589
20590 2003-08-22 Lluis Sanchez <lluis@ximian.com>
20591
20592         * object.cs: Fixed bug #47785.
20593
20594 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
20595
20596         * string-icalls.c (StringReplace): If their are no occurances of
20597         the old string found return a reference to the supplied
20598         string. This saves some memory and matches MS behavoir.
20599         
20600 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20601
20602         * socket-io.c: fixed compilation for systems that define AF_INET6
20603         and don't define SOL_IP/SOL_IPV6.
20604
20605 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
20606
20607         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
20608         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
20609
20610         * rawbuffer.c rawbuffer.h: Make this module thread safe.
20611
20612         * domain.c: Make this module thread safe.
20613
20614         * domain.c (mono_init): Call new initialization function.
20615
20616         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
20617         reference types too. Fixes #38812.
20618
20619         * image.c (mono_image_init): Fixed warnings.
20620
20621         * class.c (mono_class_from_typeref): Handle assembly load failure
20622         correctly.
20623
20624         * appdomain.c (add_assemblies_to_domain): Handle the case when
20625         the references of an assembly are not yet loaded.
20626
20627         * metadata.c image.c assembly.c: Moved initialization of global
20628         variables to a separate function called at startup since lazy 
20629         initialization of these variables is not thread safe.
20630         
20631         * image.c assembly.c: Made this module thread safe by adding locks in 
20632         the appropriate places.
20633
20634         * domain.c (mono_init): Call the new initialization functions of the
20635         three modules.
20636
20637 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
20638
20639         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
20640           make a direct call. It is proxy's work to make the call asynchronous.
20641           mono_delegate_end_invoke(): If the targe is a proxy, just collect
20642           the return values.
20643         * object.cs: mono_method_call_message_new(): read AsyncResult and
20644           state object from parameters list, if this info is requested.
20645         * object.h: Added fields to store remote call output values in
20646           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
20647
20648 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
20649
20650         * object.h: add needed fields to MonoThread.
20651         * threads.c, threads.h: allow registering a function to cleanup data
20652         allocated per thread by the JIT.
20653
20654 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20655
20656         * loader.h: portability fix by Bernie Solomon
20657         * <bernard@ugsolutions.com>.
20658
20659 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
20660
20661         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
20662         return a MonoArray. This simplifies the code and also ensures that
20663         the cache allways contains an object reference as a value.
20664
20665         * icall.c (ves_icall_get_parameter_info): Simplified using the new
20666         function.
20667
20668 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20669
20670         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
20671         fixes a problem with byte ordering when getting the address family for
20672         a socket.
20673
20674 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
20675
20676         * .cvsignore: Added monosn.
20677
20678         * reflection.h reflection.c loader.c: Added support for parameter
20679         marshalling to dynamically created types. Fixes #47295.
20680
20681 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
20682
20683         * rand.c: remove useless warnings.
20684
20685 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20686
20687         * class.c: implemented ldtoken for methods and fieldrefs.
20688
20689 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20690
20691         * threadpool.c: when mono_async_invoke was called, no one took care of
20692         monitoring the queue. So if the method invoked took some time and we
20693         got new async invoke requests after 500 ms (the thread created waited
20694         that long in WaitForSingleObject), the new async invoke was not called
20695         until the previous one finished.
20696
20697         This is fixed now. Thanks to Totte for helping with it.
20698
20699 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20700
20701         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
20702
20703 2003-08-11  Martin Baulig  <martin@ximian.com>
20704
20705         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
20706
20707 2003-08-06  Martin Baulig  <martin@ximian.com>
20708
20709         * mono-debug-debugger.c: Added support for static fields,
20710         properties and methods.
20711
20712 2003-08-06  Martin Baulig  <martin@ximian.com>
20713
20714         * mono-debug-debugger.c: Don't store the MonoString's vtable to
20715         make this work for applications with multiple application domains.
20716
20717 2003-08-04  Martin Baulig  <martin@ximian.com>
20718
20719         * mono-debug-debugger.c: Completely reworked the type support; the
20720         most important thing is that we're now just using one single
20721         `MonoType' instance per type.
20722
20723 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
20724
20725         * mono-endian.h, mono-endian.c, icall.c: Added icall
20726         ves_icall_System_Double_AssertEndianity to assert double word endianity
20727         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
20728
20729 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20730
20731         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
20732         support, icalls and fixes.
20733
20734 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
20735
20736         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
20737         classes that are a punctuation character in .NET is not the same a
20738         g_unichar_ispunct.
20739
20740 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
20741
20742         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
20743
20744 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
20745
20746         * icall.c: Add new MemCopy internalcall.
20747         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
20748         Simplified code; It is not necessary to handle all the cases here,
20749         as the C# code takes care of it.  Only handle the case of the name
20750         resource embedded into the assembly.
20751
20752         Changed signature to return the data pointer and the size of the
20753         data. 
20754
20755 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
20756
20757         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
20758         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
20759
20760 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20761
20762         * socket-io.c: ignore EINTR error in select.
20763
20764 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
20765
20766         * class.h, class.c: removed unused subclasses field in MonoClass.
20767
20768 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
20769
20770         * icall.c: improve fix of get_base_definition(). If the parent class
20771           doesn't have the mehod, look at the parent of the parent.
20772         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
20773           to check if a parameter is an in or out parameter
20774           (PARAM_ATTRIBUTE_IN is not set by default).
20775           mono_method_return_message_restore(): Use mono_class_value_size to
20776           get the size of a value type. mono_type_stack_size (parameterType)
20777           does not return the correct value if parameterType is byRef.
20778           mono_load_remote_field(), mono_load_remote_field_new(),
20779           mono_store_remote_field(), mono_store_remote_field_new():
20780           raise exception if the remote call returns an exception.
20781
20782 2003-07-28  Martin Baulig  <martin@ximian.com>
20783
20784         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
20785         method.  This is a wrapper around mono_runtime_invoke() which
20786         boxes the instance object if neccessary.
20787
20788 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
20789
20790         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
20791         metadata.h, row-indexes.h, verify.c: first cut of generics support.
20792
20793 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20794
20795         * icall.c: disable mcs bug workaround.
20796
20797 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
20798
20799         * object.c (mono_runtime_class_init): Take the metadata_section
20800         mutex before obtaining the domain mutex.
20801
20802         * appdomain.h: Added definition of metadata_section mutex here. 
20803
20804         * object.c: define metadata_mutex here.
20805
20806 2003-07-24  Ravi Pratap  <ravi@ximian.com>
20807
20808         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
20809         fixed.
20810
20811 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
20812
20813         * reflection.c: Fix bug #46669
20814
20815 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20816
20817         * exception.c:
20818         * exception.h:
20819         * icall.c:
20820         * object.h: fill in the type name for TypeLoadException.
20821
20822 2003-07-23  Ravi Pratap  <ravi@ximian.com>
20823
20824         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
20825         relationship between TypeBuilders while compiling corlib) and bug
20826         45993 (Array types returned from the runtime while compiling
20827         corlib were from the loaded corlib).
20828
20829 2003-07-22  Martin Baulig  <martin@ximian.com>
20830
20831         * mono-debug-debugger.c: Reworked the type support a bit more;
20832         distinguish between types and classes.
20833
20834 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
20835
20836         * icall.c: add IsArrayImpl icall.
20837
20838 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
20839
20840         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
20841         initializing real_size only once. Also fix bug #46602.
20842
20843 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
20844
20845         * object.c: Renamed mono_metadata_section to metadata_section.
20846
20847 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
20848
20849         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
20850           empty array if the type is an array. Fixed.
20851           ves_icall_MonoMethod_get_base_definition: if the base method
20852           is abstract, get the MethodInfo from the list of methods of
20853           the class.
20854         * reflection.c: ParameterInfo.PositionImpl should be zero-based
20855           and it was 1-based. Fixed in mono_param_get_objects.
20856
20857 2003-07-20  Martin Baulig  <martin@ximian.com>
20858
20859         * mono-debug.h: Set version number to 31.
20860         (mono_debug_init): Added `MonoDomain *' argument.
20861
20862         * mono-debug-debugger.c: Reworked the type support; explicitly
20863         tell the debugger about builtin types; pass the `klass' address to
20864         the debugger.
20865
20866 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
20867
20868         * image.c: Allow new metadata tables to be loaded without a
20869         warning. Also update the warning message to give the new constant value.
20870                 
20871 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
20872
20873         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
20874         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
20875         array type representation changes.
20876
20877 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
20878
20879         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
20880         on Environment.Exit () call.
20881
20882 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
20883
20884         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
20885         requires a matching corlib.
20886
20887 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20888
20889         * Changelog: My editor decided to add a CR to each line. Sorry about that.
20890           Committed again without the CRs.
20891         
20892 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
20893
20894         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
20895           getting it from the "this" socket instance. Did not work
20896           if the socket is a subclass of Socket.
20897           Also fixed bug #35371.
20898
20899 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
20900
20901         * metadata.c: fixed size for TypedByRef.
20902         * loader.c: when searching for a method, consider the vararg amrker.
20903         * unicode.c, decimal.c: constify some arrays.
20904
20905 2003-07-15  Dick Porter  <dick@ximian.com>
20906
20907         * socket-io.c: Fixed compilation for gcc < 3.2.
20908
20909         Fixed compilation for machines that don't have AF_INET6 (thanks to
20910         Bernie Solomon <bernard@ugsolutions.com> for that part.)
20911
20912         Fixed compile warnings.
20913         
20914         Fixed formatting and line endings.
20915
20916 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
20917
20918         * socket-io.h:
20919         * socket-io.c: Added IPv6 support.
20920
20921 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
20922
20923         * class.c (mono_class_is_assignable_from): New function to implement
20924         the is_assignable_from logic. Used by mono_object_isinst, 
20925         Type::IsAssignableFrom () and the interpreter.
20926
20927         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
20928         Object, even interfaces.
20929         
20930         * object.c (mono_object_isinst): Implement in terms of 
20931         is_assignable_from.
20932
20933         * icall.c (ves_icall_type_is_assignable_from): New icall.
20934
20935 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
20936
20937         * domain.c (foreach_domain): fix compiler warning.
20938
20939 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
20940
20941         * image.c (load_metadata_ptrs): use g_strndup because strndup is
20942         not available on all plattforms
20943
20944 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
20945
20946         * image.h image.c: Store the metadata version string in MonoImage.
20947         * icall.c: New icall to retrieve the image version.
20948         * reflection.c (create_dynamic_image): Fill in the image version field
20949         * reflection.c (build_compressed_metadata): Use the image version
20950         from the image structure.
20951
20952 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20953
20954         * appdomain.c: modified comment.
20955         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
20956         That will be its last iteration when mono_gc_cleanup is called from
20957         mono_runtime_cleanup and before the domain is unloaded.
20958
20959         Fixes bug #45962.
20960
20961 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
20962
20963         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
20964         attributes.
20965
20966 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
20967
20968         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
20969         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
20970         Bernie Solomon <bernard@ugsolutions.com>.
20971
20972 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
20973
20974         * object.c, object.h: provide mono_object_new_fast() for faster
20975         allocation in some special cases.
20976
20977 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
20978
20979         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
20980         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
20981
20982 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
20983
20984         * threadpool.c: fix leaks.
20985
20986 2003-07-01  Dick Porter  <dick@ximian.com>
20987
20988         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
20989         using MonoGHashTables.  Fixes threadpool bug posted to list.
20990
20991 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
20992
20993         * image.h, image.c: added support to load an assembly from a byte array.
20994         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
20995         assembly bundle support.
20996
20997 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
20998
20999         * threadpool.c (mono_thread_pool_add): keep a reference to the
21000         AsyncResult to prevent GC
21001
21002 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
21003
21004         * class.c: leak fix.
21005
21006 2003-06-25  Dick Porter  <dick@ximian.com>
21007
21008         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
21009         for the async object, the WaitHandle object will close the handle.
21010         Fixes bug 45321.
21011
21012 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
21013
21014         * class.c: in mono_array_class_get (), lookup from the hash with the
21015         same type we insert: this works around a bug in
21016         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
21017         lluis. The real fix will have to wait for after the release.
21018
21019 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21020
21021         * icall.c: fix memory leak when getting type members.
21022
21023 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
21024
21025         * reflection.c: added more pubtoken special cases.
21026
21027 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
21028
21029         * class.c: handle field offset correctly when class size
21030         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
21031
21032 2003-06-20  Martin Baulig  <martin@ximian.com>
21033
21034         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
21035         *image' field.
21036
21037 2003-06-20  Martin Baulig  <martin@ximian.com>
21038
21039         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
21040
21041 2003-06-20  Martin Baulig  <martin@ximian.com>
21042
21043         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
21044         just distinguish between variables in registers and variables at
21045         an offset relative to a register.
21046
21047 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21048
21049         * icall.c: #ifdef out latest changes until mcs is fixed.
21050
21051 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21052
21053         * icall.c: return members in metadata order.
21054
21055 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
21056
21057         * icall.c: avoid infinite loop in GetTimeZoneData.
21058
21059 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
21060
21061         * icall.c: added Marshal.Prelink/All icalls.
21062
21063 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
21064
21065         * object.c, object.h: fix warnings and do some overflow checking
21066         when creating arrays.
21067
21068 2003-06-17  Dick Porter  <dick@ximian.com>
21069
21070         * file-io.h:
21071         * file-io.c: File attributes need to be tweaked slightly when
21072         passed from the managed to the w32 world.
21073
21074 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
21075         * profiler.h profiler-private.h profiler.c: Rework last patch
21076         based on suggestion by Paolo.
21077         
21078 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
21079
21080         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
21081         instruction level coverage data collection.
21082         * profiler.h profiler.c (: Added new callback function which can be
21083         used by the profiler to limit which functions should have coverage
21084         instrumentation.
21085         * profiler.c (mono_profiler_load): Call g_module_build_path to
21086         generate the file name of the profiler library.
21087
21088 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
21089
21090         * profiler.c, profiler.h, profiler-private.h: added basic block 
21091         coverage profiling API.
21092
21093 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
21094
21095         * reflection.c (mono_reflection_create_runtime_class): Add support
21096         for events in dynamically generated code.
21097
21098         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
21099         not allocated.
21100
21101 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
21102
21103         * icall.c: when getting timezone info, return reasonable values if we
21104         can't get the actual data.
21105
21106 2003-06-14  Dick Porter  <dick@ximian.com>
21107
21108         * threads.c (start_wrapper): Remove the reference to the thread
21109         object in the TLS data, so the thread object can be finalized.
21110         This won't be reached if the thread threw an uncaught exception,
21111         so those thread handles will stay referenced :-( (This is due to
21112         missing support for scanning thread-specific data in the Boehm GC
21113         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
21114
21115 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
21116
21117         * reflection.c: ensure streams and tables are first allocated with
21118         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
21119
21120 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
21121
21122         * icall.c: fixed GetElementType for byrefs (bug# 44792).
21123
21124 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
21125
21126         * reflection.c (mono_reflection_create_runtime_class): Add support for
21127         properties to dynamically created classes.
21128         * reflection.c: Fix a few places where non-MonoObjects were inserted
21129         into the tokens hashtable.
21130
21131 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21132
21133         * object.c: some support to handle out of memory exceptions.
21134
21135 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
21136
21137         * marshal.c (mono_marshal_get_native_wrapper): support reference
21138         return types
21139
21140 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
21141
21142         * object.h, object.c: more portability stuff from Bernie Solomon.
21143         Unexport mono_object_allocate(). Added mono_object_unbox ().
21144         Set exitcode when an unhandled exception is thrown.
21145
21146 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
21147
21148         * marshal.c (mono_marshal_get_native_wrapper): use custom
21149         marshaler for return types.
21150
21151 2003-06-10  Dick Porter  <dick@ximian.com>
21152
21153         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
21154         ip_mreq is available
21155
21156 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
21157
21158         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
21159         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
21160         by Bernie Solomon <bernard@ugsolutions.com>.
21161
21162 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
21163
21164         * gc.c (mono_gc_init): Avoid error message on shutdown when
21165         GC_DONT_GC=1 is used.
21166
21167         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
21168         New icall to return the GUID of a module.
21169
21170 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
21171
21172         * class.c: ensure instance size always includes the parent's size
21173         even whem class size is set explicitly (fixes bug#44294).
21174
21175 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
21176
21177         * profiler.h, profiler.c: made the simple profiler thread-safe,
21178         get more accurate timing info. Allow the loading of an
21179         externally-developed profiler module.
21180
21181 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
21182
21183         * marshal.c (mono_marshal_get_native_wrapper): improved
21184         class/byref arguments.
21185         (mono_marshal_get_native_wrapper): better string marshaling support.
21186
21187 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
21188
21189         * class.c: ensure .pack and .size are handled correctly and
21190         simplified layout of static fields.
21191
21192 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
21193
21194         * appdomain.c
21195         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
21196
21197         * loader.c (mono_lookup_pinvoke_call): look for modules in the
21198         current directory (fix bug 44008)
21199
21200 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
21201
21202         * marshal.c (mono_marshal_get_native_wrapper): started support for
21203         custom marshalers.
21204         (mono_delegate_to_ftnptr): consider marshalling specifications
21205
21206 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
21207
21208         * reflection.c, reflection.h: emit custom marshal info.
21209
21210 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21211
21212         * object.c: free the GError.
21213         * icall.c: added CloseEvent_internal.
21214         * threads.[ch]:
21215         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
21216         call.
21217
21218 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
21219
21220         * loader.c (mono_method_get_signature): Add support for dynamic
21221         assemblies.
21222
21223 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
21224
21225         * reflection.c: fixed bug #43905.
21226
21227 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
21228
21229         * class.c, domain.c, icall.c, metadata.h, object.h: support for
21230         handling TypedReference and ArgIterator.
21231         * loader.c, loader.h: added function to get signature at call site.
21232
21233 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21234
21235         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
21236         data readonly. Buglets and warning fixes. Some MethodSpec support.
21237
21238 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
21239
21240         * class.h, class.c, object.c: remove relative numbering support.
21241
21242 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
21243
21244         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
21245         free the string, until we get a chance to fix Gtk#
21246
21247 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21248
21249         * marshal.c: revert last patch.
21250
21251 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
21252
21253         * icall.c: updates for new mono_class_vtable() not calling
21254         the type constructor anymore.
21255
21256 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21257
21258         * object.h, object.c: separate vtable creation from type
21259         initialization. Make running the .cctor thread safe.
21260
21261 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
21262
21263         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
21264
21265 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
21266
21267         * loader.c (mono_get_method): consider calling convention
21268
21269 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
21270
21271         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
21272         to return the invisible global type for a module.
21273
21274         * reflection.c (mono_image_build_metadata): Emit global fields too.
21275
21276 2003-05-20  Peter Williams  <peterw@ximian.com>
21277
21278         * loader.c (mono_lookup_internal_call): Add a few newlines.
21279
21280 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
21281
21282         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
21283         literal strings.
21284
21285         * appdomain.c (set_domain_search_path): Recalculate search path when
21286         AppDomainSetup.PrivateBinPath changes.
21287
21288         * object.c (mono_class_compute_gc_descriptor): It turns out some
21289         parts of the class libs (like System.Thread) holds pointers to
21290         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
21291         to treat native int a pointer type here.
21292         
21293 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
21294
21295         * appdomain.h, domain.c: add hashtable for jump target resolution.
21296
21297 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
21298
21299         * reflection.h reflection.c icall.c: Added new icalls 
21300         GetManifestResourceInfoInternal, GetModulesInternal and support
21301         infrastructure.
21302
21303 2003-05-16  Dick Porter  <dick@ximian.com>
21304
21305         * icall.c:
21306         * file-io.h:
21307         * file-io.c: Implement System.IO.MonoIO::GetTempPath
21308
21309 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
21310
21311         * object.c: mono_store_remote_field: little fix to previous patch.
21312
21313 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21314
21315         * class.c: add constructors to array classes.
21316         * icall.c: special case array construction for InternalInvoke (),
21317
21318 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
21319
21320         * class.h class.c reflection.c object.c: Added support for field
21321         defaults in dynamically generated classes.
21322
21323 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
21324
21325         * reflection.c: properly encode charset for ddlimport.
21326
21327 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
21328
21329         * threads.c: allow compiling without GC.
21330
21331 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
21332
21333         * appdomain.h, object.c, object.h, threads.c, threads.h: added
21334         handling of thread static data.
21335
21336 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21337
21338         * reflection.h, reflection.c: added mono_custom_attrs_free ().
21339
21340 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
21341
21342         * class.c (mono_array_class_get): always set the serializable flags
21343         (mono_array_class_get): always set the SEALED attribute for array types
21344
21345 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
21346
21347         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
21348         attributes (fix for bug 42021).
21349
21350 2003-05-12  Dick Porter  <dick@ximian.com>
21351
21352         * gc.c: Don't run finalizers when the finalizer thread is
21353         finishing up, because the default domain has already been
21354         destroyed.
21355
21356 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
21357
21358         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
21359         value is null, we should throw an exception.   This is slightly
21360         different than the other conventions used for the constructor.
21361
21362 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21363
21364         * socket-io.c: fixed windows build.
21365
21366 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21367
21368         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
21369
21370 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
21371
21372         * object.c (mono_string_new_wrapper): Compatibility fix for MS
21373         compilers.
21374
21375 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
21376
21377         * class.c (mono_class_layout_fields): Add experimental GC aware
21378         auto layout facility. Requires class library changes to work correctly.
21379
21380         (mono_class_setup_vtable): Avoid overriding explicit interface
21381         method implementations. Fixes iface3.exe test.
21382
21383         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
21384         object reference.
21385         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
21386         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
21387
21388         * metadata.h: Add new type classification macro which determines
21389         whenever the type holds an object reference.
21390
21391 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
21392
21393         * marshal.c (mono_marshal_get_native_wrapper): cleanups
21394
21395 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
21396
21397         * gc.c (finalizer_thread): Work around a GC bug.
21398
21399 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
21400
21401         * marshal.c (emit_struct_conv): allow unions
21402
21403         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
21404
21405 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
21406
21407         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
21408
21409 2003-05-06  Martin Baulig  <martin@ximian.com>
21410
21411         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
21412
21413 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21414
21415         * socket-io.c:
21416         (Select_internal): allow NULLs, don't create arrays if not needed.
21417         Coupled with Socket.cs changes.
21418
21419         * threadpool.c:
21420         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
21421         register a finalizer for it that will close the semaphore handle. This
21422         fixes the leak and make Lupus' test run with > 4080 loops.
21423
21424 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
21425
21426         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
21427         Jerome Laban (bug #42287)
21428
21429 2003-05-02  Martin Baulig  <martin@ximian.com>
21430
21431         * debug-mono-symfile.h
21432         (MonoSymbolFile): Moved declaration into mono-debug.h.
21433         (MonoDebugMethodJitInfo): Likewise.
21434         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
21435         argument.
21436         (_mono_debug_address_from_il_offset): Take a
21437         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
21438
21439         * mono-debug.h
21440         (MonoDebugDomainData): New struct.
21441         (mono_debug_get_domain_data): New function.
21442         (mono_debug_add_method): Take an additional `MonoDomain *'
21443         argument.
21444         (mono_debug_source_location_from_address): Likewise.
21445         (mono_debug_il_offset_from_address): Likewise.
21446         (mono_debug_address_from_il_offset): Likewise.
21447
21448 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
21449
21450         * reflection.c: one more check for null type in custom attrs.
21451
21452 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21453
21454         * reflection.c: avoid warning (comparison is always false due to limited
21455         range of data type).
21456
21457 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21458
21459         * icall.c: throw an exception in Type.GetField if the argument 'name'
21460         is NULL.
21461
21462 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
21463
21464         * reflection.c: fixed handling of enums in named arguments to custom
21465         attributes (bug #42123).
21466
21467 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
21468
21469         * reflection.c: use the right array element type and handle
21470         a null for a Type argument, too.
21471
21472 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
21473
21474         * reflection.c: handle arrays as arguments to custom attributes.
21475
21476 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
21477
21478         * reflection.c: handle a string value in a custom attr
21479         ctor that takes an object.
21480
21481 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
21482
21483         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
21484         (fix bug #42063)
21485
21486 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
21487
21488         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
21489
21490 2003-04-27  Martin Baulig  <martin@ximian.com>
21491
21492         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
21493         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
21494         MONO_DEBUGGER_EVENT_BREAKPOINT.
21495         (mono_breakpoint_trampoline_code): Removed.
21496         (mono_debugger_event_handler): The last argument is now a
21497         `guint32'.
21498         (mono_debugger_insert_breakpoint_full): Removed the
21499         `use_trampoline' argument.
21500         (mono_debugger_method_has_breakpoint): Likewise.
21501         (mono_debugger_trampoline_breakpoint_callback): Renamed to
21502         mono_debugger_breakpoint_callback(); take the method and
21503         breakpoint number as arguments.
21504
21505 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
21506
21507         * metadata.c: fix off by one when loading parameters attributes.
21508
21509 2003-04-24  Martin Baulig  <martin@ximian.com>
21510
21511         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
21512
21513 2003-04-24  Martin Baulig  <martin@ximian.com>
21514
21515         * mono-debug-debugger.c: Moved all code which interacts with the
21516         Mono Debugger here.
21517
21518         * debug-mono-symfile.c: This code now just deals with the symbol
21519         file itself, the debugger code is now in mono-debug-debugger.c.
21520
21521 2003-04-23  Martin Baulig  <martin@ximian.com>
21522
21523         * mono-debug.c (mono_debug_source_location_from_il_offset):
21524         New method; like mono_debug_source_location_from_address(), but
21525         takes an IL offset instead of a machine address.
21526
21527 2003-04-23  Martin Baulig  <martin@ximian.com>
21528
21529         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
21530         `line' field; this is now computed by the debugger.
21531
21532 2003-04-23  Martin Baulig  <martin@ximian.com>
21533
21534         * mono-debug.[ch]: New files.  This is the new debugging interface.
21535
21536         * mono-debug-debugger.[ch]: New files.  Moved all code which
21537         interacts with the Mono Debugger here.
21538
21539 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
21540
21541         * domain.c (mono_init): initialize mono_defaults.monitor_class
21542
21543 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
21544
21545         * reflection.c (method_encode_code): Add a spicy exception to help
21546         future compiler authors.
21547
21548 2003-04-21  Martin Baulig  <martin@ximian.com>
21549
21550         * icall.c
21551         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
21552         Make this work with relative pathnames; g_filename_to_uri() needs
21553         an absolute filename.
21554
21555 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
21556
21557         * icall.c: Track name changes in Object and ValueType.
21558
21559 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
21560
21561         * metadata.c (mono_type_stack_size): size should be a multiple of
21562         sizeof (gpointer)
21563
21564 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21565
21566         * gc.c:
21567         (internal_domain_finalize): moved into mono_domain_finalize. No need
21568         to create another thread because the finalizers will be run in the
21569         finalizer thread.
21570         
21571         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
21572         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
21573         to be run (MS does this too).
21574
21575 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
21576
21577         * object.c (mono_class_compute_gc_descriptor): Update comment.
21578
21579         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
21580
21581         * image.h: Add synchronized wrapper cache.
21582
21583         * image.c (do_mono_image_open): Initialize cache.
21584
21585         * reflection.c (create_dynamic_mono_image): Initialize cache.
21586
21587 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21588
21589         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
21590         ves_icall_System_Buffer_ByteLengthInternal.
21591
21592 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
21593
21594         * reflection.c: setup klass->nested_in earlier. Allow
21595         a dash in the assembly name.
21596
21597 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
21598
21599         * metadata.c (mono_type_to_unmanaged): dont access
21600         type->data.klass for MONO_TYPE_OBJECT
21601         (mono_type_to_unmanaged): consider System.Delegate class
21602
21603 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
21604
21605         * class.c: just setup supertypes in the proper place instead of
21606         initializing the full element class for arrays.
21607
21608 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
21609
21610         * class.c: ensure the element class of arrays is initialized.
21611         Setup the supertype info for array classes, too.
21612
21613 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
21614
21615         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
21616
21617 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21618
21619         * Makefile.am: re-added -m option when running cygpath. This way,
21620         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
21621         separator.
21622         * mono-config.c: same codepath for locating mono config file for WIN32
21623         and the rest.
21624         * assembly.c: if mono_assembly_setrootdir is called, don't override
21625         the value set.
21626
21627 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21628
21629         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
21630         MONO_ASSEMBLIES variable.
21631
21632 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
21633
21634         * icall.c: added Assembly::GetNamespaces() icall.
21635
21636 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21637
21638         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
21639
21640 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
21641
21642         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
21643         * object.c: fixed bug in the construction of vtable for proxies
21644
21645 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
21646
21647         * object.c (mono_array_new): Mark mono_array_new as an icall.
21648
21649 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21650
21651         * class.c: fixed test for public method when overriding interfaces.
21652         Closes bug #40970.
21653
21654 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
21655
21656         * appdomain.h, domain.c: added mono_domain_foreach() to
21657         be able to access the currently loaded appdomains.
21658         * object.c: make string interning work across sppdomains.
21659         Mark some functions for use as icalls.
21660
21661 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
21662
21663         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
21664
21665         * reflection.h reflection.c: Allocate long living data using 
21666         GC_MALLOC_ATOMIC so the collector does not need to scan it.
21667
21668         * reflection.c: Double the allocation size in streams instead of
21669         increasing it, to prevent unneccesary copying on large assemblies.
21670         
21671         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
21672         creation if the assembly does not have the Run flag set.
21673
21674 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
21675
21676         * class.h: avoid the C++ keywords in header files (Jerome Laban
21677         spotted and fixed this).
21678
21679 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21680
21681         * object.c:
21682         (mono_unhandled_exception): fill in the arguments for the
21683         UnhandledException event. Only trigger that event for the default
21684         domain (as MS does).
21685
21686 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
21687
21688         * object.c: Improve typed allocation stuff based on suggestions from
21689         Paolo. Also turn it on if the GC library supports it.
21690
21691 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21692
21693         * object.c object.h class.h: Added experimental typed allocation
21694         facility using the interfaces in gc_gcj.h.
21695
21696         * os/gc_wrapper.h: Added new include files.
21697         
21698 2003-04-03  Martin Baulig  <martin@ximian.com>
21699
21700         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
21701         which is not yet enabled by default.
21702
21703         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
21704         functions.
21705         (mono_gc_lock, mono_gc_unlock): New static functions.
21706
21707         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
21708         functions; stop/start the world for the garbage collector.  This
21709         is using the windows API; we need to complete the SuspendThread()/
21710         ResumeThread() implementation in the io-layer to make this work on Unix.
21711         (mono_gc_push_all_stacks): New public function; tells the garbage
21712         collector about the stack pointers from all managed threads.
21713
21714 2003-04-03  Martin Baulig  <martin@ximian.com>
21715
21716         * object.h (MonoThread): Added `gpointer stack_ptr'.
21717
21718         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
21719
21720 2003-04-03  Martin Baulig  <martin@ximian.com>
21721
21722         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
21723
21724 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
21725
21726         * reflection.c (typebuilder_setup_fields): Initialize field.first and
21727         field.last.
21728
21729 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
21730
21731         * loader.c (mono_lookup_internal_call): Report the corlib that is
21732         out of sync.
21733
21734 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
21735
21736         * icall.c (ves_icall_type_GetTypeCode): fixed check for
21737         System.DBNull (it's class not valuetype).
21738
21739 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
21740
21741         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
21742         if the array method was already assigned a token (fixes bug#40646).
21743
21744 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
21745
21746         * reflection.c (mono_reflection_get_type): Attempt type resolve even
21747         if no assembly is given.
21748
21749 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
21750
21751         * metadata.h: Added the new tables.
21752
21753         * row-indexes.h: Added definitions for new tables.
21754
21755         * metadata.c: Add schemas for new tables, and add support for
21756         computing the sizes of them.
21757
21758         * class.c: Update for handling the new type cases.
21759
21760 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
21761
21762         * metadata.h (MONO_TYPE_IS_VOID): new macro
21763
21764 2003-03-31  Martin Baulig  <martin@ximian.com>
21765
21766         * threads.h (MonoThreadCallbacks): Added `thread_created'.
21767
21768         * threads.c (mono_thread_new_init): Call `thread_created' in the
21769         mono_thread_callbacks.
21770
21771 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
21772
21773         * loader.h: added marshalbyrefobject_class to mono_defaults
21774         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
21775         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
21776           generation of output parameters.
21777           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
21778         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
21779           contextbound and the target object belongs to the context of the caller.
21780         * object.h: added context and unwrapped_server variables in MonoRealProxy.
21781         * object.c: Implemented support for interfaces and abstract classes
21782           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
21783           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
21784
21785 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
21786
21787         * class.h class.c (mono_class_is_subclass_of): New function.
21788         
21789         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
21790         routines for most common case (calls from ArrayList::ToArray).
21791
21792         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
21793         routine so programs which call Environment::Exit() can be profiled.
21794
21795         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
21796         Added MONO_ARCH_SAVE_REGS.
21797
21798         * icall.c (ves_icall_type_is_subtype_of): Use new function.
21799
21800 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
21801
21802         * blob.h: Add a couple of new MonoType types definitions.
21803
21804         * tabledefs.h: Add a couple of new call convs.
21805
21806 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
21807
21808         * reflection.h (MonoReflectionDynamicAssembly): track changes in
21809         the layout of the class.
21810
21811         * reflection.c (alloc_table): double the size on overflow to avoid
21812         unnecessary copying.
21813
21814         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
21815         avoid filling out metadata tables and blobs. Also set mb->ilgen to
21816         null so it can be garbage collected.
21817         
21818 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
21819
21820         * reflection.c (mono_reflection_get_type): Return the resolved type
21821         only if it is in the assembly we searched.
21822
21823         * reflection.c (ensure_runtime_vtable): Initialize method slots.
21824
21825         * class.c (mono_class_setup_vtable): Set the slot of the overriding
21826         method.
21827
21828 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21829
21830         * appdomain.c:
21831         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
21832         the right one is 'file:///blah', but MS allows it.
21833         * assembly.c:
21834         (mono_assembly_open): allow 'file://blah'
21835
21836         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
21837
21838 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
21839
21840         * socket-io.c: fixes bug #40310.
21841
21842 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
21843
21844         * reflection.c (mono_reflection_parse_type): handle deeply nested
21845         types correctly.
21846
21847         * reflection.c (mono_image_create_token): Use unique token values
21848         since they will be put into a hash table.
21849
21850         * class.c (mono_class_setup_vtable): If a method occurs in more than
21851         one place in the vtable, and it gets overriden, then change the
21852         other occurances too.
21853
21854         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21855         object as return type.
21856
21857 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21858
21859         * icall.c: Deleted "ToString" implementation for double and float
21860         because they are full implemented in managed code.
21861
21862 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
21863
21864         * reflection.c, reflection.h: implemented and exported functions
21865         to retrieve info about custom attributes.
21866
21867 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21868
21869         * appdomain.c: moved Uri handling to assembly.c
21870         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
21871         work when using a file Uri in *nix and windows.
21872
21873         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
21874         GetReferencedAssemblies.
21875
21876 2003-03-18  Dick Porter  <dick@ximian.com>
21877
21878         * icall.c: Rename a couple of internal calls
21879
21880         * threads.c: Set the thread state to Stopped when a thread exits.
21881         Fixes bug 39377.
21882
21883 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
21884
21885         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
21886         New icall.
21887
21888         * object.c (mono_class_vtable): fix warning.
21889
21890 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
21891
21892         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
21893
21894         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
21895         memory.
21896         (method_encode_clauses): Create exception info structures in the right
21897         order.
21898         (mono_reflection_setup_internal_class): Initialize supertypes field.
21899
21900         * class.c object.c: Handle interfaces which implement other interfaces 
21901         correctly.
21902
21903         * class.h class.c: Move the supertypes array initialization code into 
21904         a separate function so it can be used for dynamic types too. Also call
21905         it earlier, in mono_class_init(), since it can be used before the
21906         type is initialized.
21907
21908 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21909
21910         * Makefile.am:
21911         * assembly.c:
21912         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
21913
21914         * appdomain.c:
21915         * appdomain.h:
21916         * marshal.c:
21917         * object.c: remove warnings.
21918
21919 2003-03-13  Martin Baulig  <martin@ximian.com>
21920
21921         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
21922         (MonoDebugLexicalBlockEntry): New types.
21923
21924         * debug-mono-symfile.c
21925         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
21926
21927 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21928
21929         * process.c: ret can be any non-zero value accroding to MS doc.
21930
21931 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
21932
21933         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
21934         fixing a warning for a miss-used prototype, would have cause
21935         random memory corruption.
21936
21937 2003-03-07  Martin Baulig  <martin@ximian.com>
21938
21939         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
21940         getting really annoying ....
21941
21942 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
21943
21944         * reflection.c (fixup_method): added support for array methods.
21945
21946 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
21947
21948         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
21949         (pointed out by Michael Adams).
21950
21951 2003-03-04  Dick Porter  <dick@ximian.com>
21952
21953         * icall.c: Temporarily reverted the Double and Single ToString()
21954         change, because it broke nunit.
21955
21956 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
21957
21958         * object.h, threads.h: make include files compatible with C++
21959         (patch by Jerome Laban <jlaban@wanadoo.fr>).
21960
21961 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
21962
21963         * icall.c: Erased ToString helper functions for Double and Single.
21964         Now, that implementations ar all in managed code (Double and Single
21965         Formatters).
21966
21967 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
21968
21969         * appdomain.c: Added method for initializing the default context of
21970         a domain. Added internal call for getting the default context.
21971         * appdomain.h: Added context variable in MonoDomain struct.
21972         * domain.c: mono_domain_set also sets the default context of the domain
21973         * icall.c: Mapped internal method InternalGetDefaultContext.
21974         * object.c: mono_object_get_virtual_method returns always a remoting
21975         wrapper if the object is a transparent proxy.
21976         mono_runtime_invoke_array: when creating an object by calling the
21977         constructor, if the created object is a proxy, then the constructor should
21978         be called using the a remoting wrapper.
21979
21980 2003-03-03  Dick Porter  <dick@ximian.com>
21981
21982         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
21983         variable so it compiles on solaris.  Problem spotted by
21984         Christopher Taylor <ct@cs.clemson.edu>
21985
21986 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21987
21988         * appdomain.c:
21989         (get_info_from_assembly_name): don't leak value.
21990
21991         * icall.c:
21992         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
21993         result.
21994
21995 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
21996
21997         * assembly.c: export mono_image_load_references ().
21998         * class.c: handle function pointers. mono_class_from_name() now
21999         supports nested type names directly.
22000
22001 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
22002
22003         * reflection.h reflection.c: Encode already created dynamic methods 
22004         and fields correctly as a DEF instead of a REF.
22005
22006         * reflection.c: Get rid of the force_ref argument to 
22007         mono_image_typedef_or_ref since it was wrong in the first place.
22008
22009         * string-icalls.c: add error checking to string constructors according
22010         to the MSDN docs.
22011
22012         * reflection.c: Emit types in the order their TypeBuilders were 
22013         created. Previously, a new table index was assigned to each type before
22014         the tables were emitted. This was wrong because the signature blob
22015         might already refer to a type by its original table index.
22016
22017 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
22018
22019         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
22020         change.
22021         
22022 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22023
22024         * Makefile.am: make assemblies dir have \ instead of / on windows.
22025
22026 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
22027
22028         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
22029         iterate over the NESTEDCLASS table using a linear search since the
22030         table is not guaranteed to be sorted by the secondary key.
22031
22032         * class.c (mono_class_create_from_typedef): fixed up call to
22033         mono_metadata_nesting_typedef.
22034         
22035 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
22036
22037         * marshal.c (mono_string_to_byvalstr): clear the memory as
22038         suggested by Jerome Laban <jlaban@wanadoo.fr>
22039
22040 2003-02-26  Dick Porter  <dick@ximian.com>
22041
22042         * process.c: Cope with padding in .rsrc blocks
22043
22044 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
22045
22046         * metadata.h: reverted the filter_len change, it breaks reflection
22047         
22048 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
22049
22050         * metadata.h: added a new field to store the filter_len
22051         
22052
22053 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
22054
22055         * reflection.c: handle custom attributes for types and members
22056         created with Reflection.Emit (bug#38422).
22057
22058 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
22059
22060         * reflection.c: define RTSpecialName automatically for constructors for
22061         compatibility with MS.NET.
22062
22063         * reflection.c (mono_reflection_create_runtime_class): initialize
22064         nested_in field of dynamically created classes.
22065
22066 2003-02-22  Martin Baulig  <martin@ximian.com>
22067
22068         * debug-mono-symfile.h: Incremented version number.
22069
22070 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
22071
22072         * object.h icall.c process.c: fix warnings.
22073
22074 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
22075
22076         * appdomain.h appdomain.c:
22077         (mono_domain_try_type_resolve): split the 
22078         name_or_tb argument into a name and a tb argument.
22079         (mono_domain_has_type_resolve): new function to check whenever the
22080         application has registered a TypeResolve event handler.
22081         
22082         * icall.c reflection.h reflection.c: move the type resolve logic into
22083         mono_reflection_get_type () so it will be invoked when 
22084         Assembly::GetType () is called.
22085
22086         * reflection.c:
22087         (mono_reflection_get_type): renamed to get_type_internal.
22088         (mono_reflection_get_type): fixed type name generation so it works 
22089         for nested types too.
22090         (mono_reflection_get_type): call has_type_resolve () to avoid the 
22091         costly type name generation if there is no resolve event handler.
22092
22093 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22094
22095         * class.c, image.c: load exported types from file references.
22096
22097 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
22098
22099         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
22100           used to cache the managed methods used to create proxies and make 
22101           remote invocation of methods.
22102         * class.h: Added in MonoVTable a flag to indicate that a class needs 
22103           to be remotely created.
22104         * object.c: Modified the method mono_class_vtable(). It now initializes 
22105           the remote flag of the vtable. Modified mono_object_new_specific(), 
22106           so now it checks the remote flag.
22107         * icall.c: Added a couple of internal methods, one for enabling instance 
22108           creation interception for a type, and one for creating objects bypassing
22109           the remote check.
22110
22111 2003-02-18  Martin Baulig  <martin@ximian.com>
22112
22113         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
22114         New interncall to get a method's metadata token.
22115
22116         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
22117         New interncall for the debugger.
22118
22119 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
22120
22121         * class.c (mono_class_setup_vtable): allocate supertype array
22122
22123 2003-02-18  Martin Baulig  <martin@ximian.com>
22124
22125         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
22126
22127 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22128
22129         * reflection.c:
22130         (assembly_name_to_aname): jump over unknown properties (i've found
22131         something like: 'type, assembly, version=xxx, custom=null, public...',
22132         so now will ignore custom=null and still get the rest of the values).
22133
22134 2003-02-17  Dick Porter  <dick@ximian.com>
22135
22136         * threads.c: Have Thread.Start() wait for a semaphore to signal
22137         that the thread has set up all its local data.  This fixes bug
22138         34323, where Abort() raced the new thread's TLS data.
22139
22140         Also removes the handle_store() call from start_wrapper, because
22141         threads are now always created suspended and there is no longer a
22142         race between the parent and child threads to store the info.
22143
22144 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
22145
22146         * image.c: explain the #- heap issue in a message, hopefully
22147         avoiding FAQs on mono-list.
22148
22149 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22150
22151         * icall.c:
22152         (GetEntryAssembly): if the domain has not invoked
22153         AppDomain.ExecuteAssembly yet, return the assembly of the default
22154         AppDomain.
22155
22156 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
22157
22158         * class.c (mono_ldtoken): make it work in dynamic assemblies.
22159
22160 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
22161
22162         * metadata.c, reflection.c: simple speedup to type hash
22163         and equals code.
22164
22165 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
22166
22167         * image.c, image.h, class.c, assembly.c: move module loading
22168         to MonoImage. When loading metadata, consider alignemnet from
22169         the start of metadata, not from the metadata address in memory.
22170
22171 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
22172
22173         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
22174         AssemblyBuilder objects. Factored out custom attribute creation into
22175         a separate function.
22176         (create_custom_attr): new function to create custom attributes.
22177
22178 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
22179
22180         * Makefile.am: Got tired of typing the full pathname to pedump.
22181         Until there is another option, am installing this.
22182
22183 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
22184
22185         * class.c (class_compute_field_layout): always set field->parent 
22186         (mono_ldtoken): use mono_defaults.fieldhandle_class;
22187
22188 2003-02-11  Dick Porter  <dick@ximian.com>
22189
22190         * threads-types.h:
22191         * monitor.c: Rewrote Monitor, making lock much faster and
22192         Pulse/Wait work as specified.  Also uses much fewer handles, and only
22193         creates them as needed.
22194
22195         * exception.c: Added SynchronizationLockException
22196
22197         * threads.c: Deleted old Monitor implementation.  The new one is
22198         in a new file.
22199
22200 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
22201
22202         * class.c: handled TypedReference type code. Set the correct size for
22203         class data. Setup interface_offsets for interface classes, too.
22204
22205 2003-02-09  Martin Baulig  <martin@ximian.com>
22206
22207         * debug-mono-symfile.h: Reflect latest symbol writer changes.
22208
22209 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
22210
22211         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
22212         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
22213         * object.c: fixed mono_object_get_virtual_method () for interfaces.
22214         * verify.c: check for code that runs after the end of the method.
22215
22216 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
22217
22218         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
22219         "System.Math::Round2".
22220         * sysmath.h: Added Floor, Round and Round2 definitions.
22221         * sysmath.c: Modified certain functions that were not 100% compliant
22222         with MS.NET (math precision) and added the implementation of Floor,
22223         Round and Round2.
22224
22225 2003-02-07  Martin Baulig  <martin@ximian.com>
22226
22227         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
22228
22229 2003-02-07  Martin Baulig  <martin@ximian.com>
22230
22231         * debug-mono-symfile.c: Reflected latest symwriter changes.
22232         (mono_debug_create_mono_symbol_file): Removed.
22233         (mono_debug_open_mono_symbol_file): Take an argument which
22234         specifies whether to create a dynamic symbol file.
22235
22236 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
22237
22238         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
22239
22240 2003-02-05  Martin Baulig  <martin@ximian.com>
22241
22242         * reflection.c (mono_image_build_metadata): Make this public,
22243         protect it against being called multiple times, don't create
22244         resources and don't build the compressed metadata here.
22245         (mono_image_create_pefile): Do this here.
22246
22247         * icall.c
22248         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
22249
22250 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22251
22252         * socket-io.c: fixed bug #36322.
22253
22254 2003-02-06  Piers Haken <piersh@friskit.com>
22255
22256         * appdomain.[ch]:
22257         * class.h:
22258         * debug-mono-symfile.c:
22259         * icall.c:
22260         * loader.c:
22261         * mono-config.c:
22262         * monosn.c:
22263         * reflection.c:
22264         * socket-io.c: warning cleanups
22265
22266 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
22267
22268         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
22269         function. works like remoting invoke, but does a check for the Proxy first.
22270
22271 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
22272
22273         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
22274
22275 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
22276
22277         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
22278         array of pointers.
22279         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
22280         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
22281
22282         * object.c (mono_store_remote_field_new): used by the new jit
22283         instead of mono_store_remote_field
22284         (mono_load_remote_field_new): used by the new jit
22285         instead of mono_load_remote_field
22286
22287 2003-02-05  Patrik Torstensson
22288
22289         * appdomain.c: changed unload to take the domain id instead
22290         of domain
22291         
22292         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
22293
22294
22295 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22296
22297         * appdomain.c: don't look for assemblies in ApplicationBase if
22298         PrivateBinPathProbe is set.
22299
22300 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22301
22302         * object.c: make the first argument in main_args contain the absolute
22303         path to the assembly. Fixes bug #37511.
22304
22305 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22306
22307         * icall.c: get correct UTC offset for countries not using daylight
22308         time saving. Fixes bug #30030.
22309
22310 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22311
22312         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
22313         and 1 are the family).
22314
22315 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
22316
22317         * icall.c (ves_icall_InternalExecute): removed wrong assertion
22318
22319         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
22320
22321 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
22322
22323         * reflection.c: added support for SignatureHelper tokens, which is
22324         needed by the Calli opcode.
22325
22326         * reflection.h: track changes to SignatureHelper class.
22327
22328         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
22329
22330 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22331
22332         * appdomain.c: fixed loading assemblies from PrivateBinPath.
22333
22334 2003-02-03  Patrik Torstensson
22335         * appdomain.[c|h], domain.c : 
22336          - Added support for getting a domain via domain id
22337          - Support for setting and getting domain from System.AppDomain 
22338            (used in cross appdomain channel)
22339          - Added support for get/set for a MonoAppContext on a thread 
22340            (Context class in System.Runtime.Remoting.Contexts),
22341          - Removed hack in Get/SetData and ExecuteAssembly.
22342         
22343         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
22344         the managed world to get control when a proxy is created.
22345
22346         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
22347         
22348 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
22349
22350         * icall.c
22351         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22352         Populate the codebase field as well.
22353
22354 2003-02-02  Martin Baulig  <martin@ximian.com>
22355
22356         * debug-mono-symfile.c
22357         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
22358         (mono_debug_symfile_add_method): Allow interncalls.
22359
22360 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22361
22362         * icall.c: throw parse exception if strtod fails or the string is empty.
22363
22364 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
22365
22366         * marshal.c: handle object type separately from defined
22367         class types.
22368
22369 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
22370
22371         * marshal.c: handle NATIVE_LPSTR for strings when it's
22372         explicitly specified.
22373
22374 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
22375
22376         * reflection.c, reflection.h, icall.c: setup the reflection
22377         handle cache for ModuleBuilders and AssemblyBuilders.
22378
22379 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
22380
22381         * reflection.c (reflection_methodbuilder_to_mono_method): set
22382         pinvoke flag
22383
22384 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22385
22386         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
22387
22388 2003-01-29  Dick Porter  <dick@ximian.com>
22389
22390         * threads.c: No need for the fake_thread kludge now that Thread
22391         doesn't run a class constructor
22392         
22393 2003-01-29  Dick Porter  <dick@ximian.com>
22394
22395         * threads.c: Use g_direct_hash instead of the rather bogus
22396         g_int_hash
22397
22398 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
22399
22400         * marshal.c (mono_marshal_get_native_wrapper): add check for null
22401         (fix pinvoke12.exe)
22402         (mono_marshal_get_struct_to_ptr): generate valid IL code
22403         (mono_marshal_get_ptr_to_struct): generate valid IL code
22404         (*): correctly set sig->pinvoke, we need to memdup the signature
22405         to do that
22406
22407 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22408
22409         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
22410         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
22411
22412 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
22413
22414         * profiler.c: provide more callers information.
22415
22416 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
22417
22418         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
22419
22420         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
22421
22422         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
22423
22424 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22425
22426         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
22427         exception instead of going into an infinite loop on dates which it 
22428         can't yet handle.
22429
22430         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
22431         out-of-range exception if needed.
22432
22433         * class.c (mono_class_setup_vtable): allow a virtual method to provide
22434         an implementation for an interface method and to override an inherited
22435         method at the same time. 
22436         Imagine a scenario when a virtual method is used to override a
22437         virtual abstract method in a parent class, and this same method 
22438         provides an implementation for an method inherited from an interface. 
22439         In this case, the interface resolution code will set im->slot, which 
22440         means that the virtual method override pass will skip this method 
22441         which means a pointer to the abstract method inherited from the parent
22442         will remain in the vtable of this non-abstract class.
22443
22444         * class.c: (mono_class_setup_vtable): continue search for a real 
22445         method if only an abstract method is found.     
22446
22447 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
22448
22449         * reflection.c: add size to encoding for ByValStr and ByValArray
22450         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
22451
22452 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22453
22454         * class.c (mono_class_setup_vtable): pass the override info as an
22455         argument.
22456
22457         * class.c (mono_class_setup_vtable): set the slot of overriding methods
22458         correctly.
22459         
22460         * reflection.c (ensure_runtime_vtable); add support for method 
22461         overrides.
22462         
22463 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22464
22465         * reflection.c (resolution_scope_from_image): Hack to work to work with
22466         dynamic assemblies.
22467
22468         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
22469         added a 'force_ref' argument to force this function to allways return 
22470         a TypeRef. This is needed by mono_image_get_memberref_token ().
22471         
22472 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22473
22474         * reflection.c (mono_image_get_type_info): interfaces really don't have
22475         a parent.
22476
22477         * reflection.c (mono_image_basic_init): fill out missing fields of
22478         image structure.
22479
22480         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
22481         dynamic assemblies. This is required so dynamic assemblies show up in
22482         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
22483         Type::GetType() etc. This is consistent with MS behaviour.
22484
22485         * image.c image.h reflection.c: add newly created classes to the name 
22486         cache so mono_class_get () will find them.      
22487
22488 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
22489
22490         First part of changes to get IKVM.NET running under mono.
22491         
22492         * appdomain.h, appdomain.c: added new function 
22493         mono_domain_try_type_resolve() which will emit TypeResolve events. 
22494         This function will call AppDomain::DoTypeResolve to do the actual work.
22495
22496         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
22497         moved existing code dealing with dynamic tokens to a new function 
22498         called mono_reflection_lookup_dynamic_token (). This function will 
22499         raise TypeResolve events when appropriate. Since reflection.c is not 
22500         part of libmetadata, a new hook function called 
22501         mono_lookup_dynamic_token() is added to class.c which will call this.
22502
22503         * assembly.h assembly.c: make the invoke_load_hook function public,
22504         so it can be called for dynamic assemblies.
22505
22506         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
22507
22508         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
22509         type isn't found.
22510
22511         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
22512         MonoGHashTable, since it contains pointers to objects which the GC 
22513         needs to track.
22514
22515         * assembly.c (search_loaded): remove unused variable.
22516         
22517 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
22518
22519         * object.c: fixed issue exposed by gcc-generated IL programs
22520         that use RVA data for pointers.
22521
22522 2003-01-25  Martin Baulig  <martin@ximian.com>
22523
22524         * threads.c (start_wrapper): Moved the initialization of
22525         `start_func' above the mono_new_thread_init() call to which we
22526         pass it as argument.
22527
22528 2003-01-24  Martin Baulig  <martin@ximian.com>
22529
22530         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
22531         the MonoThread pointer.
22532
22533 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
22534
22535         * icall.c: Rename `PowImpl' to Pow.
22536
22537 2003-01-23  Dick Porter  <dick@ximian.com>
22538
22539         * threads.c (start_wrapper): Create a Thread object if needed, so
22540         the Main() thread can do the class initialisation in a subthread
22541         that has been set up to allow managed code execution.
22542
22543         Pass the thread ID instead of the MonoThread pointer to the thread
22544         start and attach callbacks.  This change is required, because the
22545         jit thread start callback must be called _before_ the Thread
22546         object can be created.
22547         
22548         (mono_thread_init): Removed much object creation code that is no
22549         longer needed.  No managed code is called from here now.
22550
22551         * object.c (mono_runtime_exec_managed_code): Create a subthread
22552         for Main, and call back to the runtime to use it.
22553         Set the exit code when Main exits.
22554
22555         * gc.c: Make sure domain finalisation happens in a subthread.
22556         Re-enable threaded GC, fixing bug 31333 (again).
22557
22558         * environment.c: System.Environment internall calls (so far just
22559         ExitCode is here, the others are still in icall.c)
22560
22561         * appdomain.c (mono_runtime_cleanup): All threads running managed
22562         code should have finished before mono_runtime_cleanup() is
22563         reached, so no need to clean up threads.
22564
22565 2003-01-22  Martin Baulig  <martin@ximian.com>
22566
22567         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
22568         `gpointer func' arguments.      
22569         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
22570         but added `MonoThread *thread' argument.
22571         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
22572
22573         * threads.c (mono_new_thread_init): Added `gpointer func' argument
22574         and pass it to the mono_thread_start_cb callback.
22575         (mono_install_thread_callbacks): New public function to install a
22576         set of callbacks which are set by the debugger.
22577         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
22578
22579 2003-01-22  Martin Baulig  <martin@ximian.com>
22580
22581         * Makefile.am: Install debug-mono-symfile.h.
22582
22583 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
22584
22585         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
22586
22587 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
22588
22589         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
22590         * class.c (mono_ptr_class_get): correctly set access levels of pointers
22591         (mono_array_class_get): correctly set access levels of arrays
22592
22593 2003-01-20      Patrik Torstensson
22594         * image.h (MonoAssemblyName): changed major, minor, build, revision
22595         from signed to unsigned.
22596
22597 2003-01-20  sean kasun <skasun@azstarnet.com>
22598
22599         * reflection.c (load_cattr_value): Now this handles
22600         MONO_TYPE_SZARRAY.  Fixes bug #35629
22601
22602 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
22603
22604         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
22605         integer value
22606
22607 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22608
22609         * decimal.c: fixed bug #26056.
22610
22611 2003-01-17  Martin Baulig  <martin@ximian.com>
22612
22613         * gc.c: Raise an ExecutionEngineException instead of using g_error().
22614
22615 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22616
22617         * exception.[ch]:
22618         (mono_get_exception_type_initialization): new function.
22619
22620         * object.c: throw a TypeInitializationException when an exception is
22621         thrown invoking the class constructor.
22622
22623 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22624
22625         * reflection.c: fixed attribute reading.
22626
22627 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22628
22629         * icall.c:
22630         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
22631         provided, look for the type in the calling assembly and then in
22632         mscorlib; if the assembly name is provided, only try that one.
22633
22634 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
22635
22636         * object.c: register the vtable before there is a chance it's
22637         queried again recursively.
22638
22639 2003-01-13  Duncan Mak  <duncan@ximian.com>
22640
22641         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
22642         gc-internal.h. 
22643         
22644 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
22645
22646         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
22647
22648 2003-01-11  Martin Baulig  <martin@ximian.com>
22649
22650         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
22651         this to 20 for the release.
22652
22653 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
22654
22655         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
22656
22657         * loader.c (mono_method_get_marshal_info): bug fix
22658
22659         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
22660         structures with explicit layout
22661
22662 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22663
22664         * profiler.c: made the output more readable (and sorted). 
22665         Added caller information for the allocation profiler.
22666
22667 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
22668
22669         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
22670
22671 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22672
22673         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
22674         to get value types.
22675         
22676 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
22677
22678         * object.c, profiler.h, profiler.c, profiler-private.h:
22679         Added object allocation profiler.
22680
22681 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
22682
22683         * reflection.h, reflection.c: handle global methods.
22684         Compress blob entries.
22685
22686 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
22687
22688         * marshal.c: fix compilation.
22689
22690 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
22691
22692         * loader.c (mono_method_get_marshal_info): impl.
22693
22694         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
22695
22696 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22697
22698         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
22699         for reference types.
22700
22701 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
22702
22703         * loader.c: fixed off by one error in loaded parameter names.
22704
22705 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
22706
22707         * marshal.c (mono_marshal_get_icall_wrapper): like
22708         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
22709         instead of a MonoMethod.
22710
22711 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22712
22713         * decimal.c: fixed bug #36537.
22714
22715 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
22716
22717         * marshal.c: throw a missing method exception if a
22718         P/Invoke method is not found.
22719
22720 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
22721
22722         * icall.c: allow a null this for constructors.
22723
22724 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
22725
22726         * icall.c: raise the proper exceptions if the arguments to the
22727         internal Invoke are incorrect.
22728
22729 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
22730
22731         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
22732
22733 2003-01-03  Martin Baulig  <martin@ximian.com>
22734
22735         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22736
22737 2002-12-31  Martin Baulig  <martin@ximian.com>
22738
22739         * debug-mono-symfile.c: Completely rewrote the type section.
22740         Instead of using individual malloc()ed fields, we use one big
22741         continuous memory area and offsets into this area.
22742         See the comments in the source code for details.
22743
22744 2002-12-30  Martin Baulig  <martin@ximian.com>
22745
22746         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
22747
22748 2002-12-30  Martin Baulig  <martin@ximian.com>
22749
22750         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
22751         line number table in this data blob instead of using an external
22752         pointer.
22753
22754 2002-12-28  Martin Baulig  <martin@ximian.com>
22755
22756         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
22757
22758 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
22759
22760         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
22761         as a boxed return type.
22762
22763 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
22764
22765         * appdomain.c
22766         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
22767         g_build_filename to properly get separators on the filename created.
22768
22769         * object.h: Small change, introduce MonoMarshalByRefObject to
22770         track the layout of that structure in the C# universe as we make
22771         changes there.
22772
22773 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
22774
22775         * object.c: removed assert to allow static fields on interfaces.
22776         * loader.c: a TypeSpec may be used for any type, not just arrays.
22777
22778 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
22779
22780         * class.c, class.h: added mono_class_array_element_size ().
22781         Ignore static methods in interfaces.
22782
22783 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22784
22785         * threads.c: fixed the build under cygwin.
22786
22787 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
22788
22789         * reflection.c: handle nullref constants. Allocate keys for
22790         reflection handles with the GC.
22791
22792 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22793
22794         * threads.c, threads.h: added mono_thread_get_abort_signal()
22795         to get a suitable signal for thread abort.
22796
22797 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
22798
22799         * metadata.c: fix handling of ExportedType table.
22800
22801 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22802
22803         * icall.c: added WriteWindowsDebugString internal call.
22804
22805 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22806
22807         * reflection.h: added fields to match C# implementation.
22808
22809 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22810
22811         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
22812
22813 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
22814
22815         * gc.h, gc-internal.h: Rename header for GC internal calls to
22816         gc-internal.h from gc.h as to not clash with Boehm GC having its
22817         header installed as <gc.h> in outside include paths.
22818         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
22819         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
22820
22821 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22822
22823         * icall.c: assign minor, build and revision in FillName.
22824
22825 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
22826
22827         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
22828         Added support for running code generated by Reflection.Emit.
22829
22830 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22831
22832         * appdomain.c: check for NULL argument in LoadFrom.
22833
22834 2002-12-10  Dick Porter  <dick@ximian.com>
22835
22836         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
22837
22838 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22839
22840         * appdomain.c: fix buglet when building exe file name.  Handle full
22841         assembly name (needed after latest changes to AssemblyName).
22842         * image.c:
22843         (mono_image_close): free some hashtables.
22844
22845 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
22846
22847         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
22848         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
22849         on some systems (redhat 7.3) 
22850
22851 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
22852
22853         * threads.c: delete the critical section of a sync block,
22854         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
22855
22856 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
22857
22858         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
22859
22860 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22861
22862         * appdomain.[ch]: handle the assembly preload event to try loading the
22863         assemblies using the paths we have in the current domain.
22864
22865         * assembly.[ch]: created an assembly preload hook that is called to try
22866         loading the assembly by other means that the ones provided here.
22867
22868         * domain.c: initialize the domain search path.
22869
22870         From now on, assemblies (TODO: except corlib and System) are loaded
22871         according to these rules when using mono_assembly_load ():
22872
22873                 1. It tries to load the assembly from the ApplicationBase
22874                 of the current domain appending .dll and .exe (TODO: have to
22875                 try loading from name/name.dll and name/name.exe).
22876
22877                 2. It tries the search path specified in PrivateBinPath for the
22878                 current domain (if any).
22879
22880                 3. Previous behavior.
22881
22882 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
22883
22884         * icall.c: implemented GetInterfaceMap() related icall.
22885         * domain.c, loader.h: load MethodInfo in mono_defaults.
22886
22887 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
22888
22889         * gc.c: disable the finalizer thread for now, untill all the issues
22890         with it are resolved.
22891
22892 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
22893
22894         * string-icalls.c: handle embedded nulls in string ctor when the
22895         length is specified.
22896
22897 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
22898
22899         * class.c: look for explicit interface implementation in parent
22900         classes, too.
22901
22902 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
22903
22904         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
22905
22906 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
22907
22908         * gc.c: protect handles with a critical section.
22909
22910 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22911
22912         * icall.c:
22913         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
22914         parameters. If no assembly specified, try getting the type from all
22915         the assemblies in the current domain, else, load the assembly and get
22916         the type from it.
22917
22918 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22919
22920         * marshal.c: applied patch from Aleksey Demakov that fixes
22921         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
22922
22923 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22924
22925         * icall.c: fixed get_location.
22926
22927 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
22928
22929         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
22930         declarations to make it work with older gcc. 
22931
22932         * loader.c (mono_get_method): set signature->pinvoke for native calls
22933
22934 2002-11-20  Dick Porter  <dick@ximian.com>
22935
22936         * threads.c (mono_thread_init): Set the main thread's handle
22937
22938 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
22939
22940         * gc.c: allow compilation without GC support. Changed to match the
22941         mono coding style.
22942
22943 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
22944
22945         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
22946
22947 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
22948
22949         * reflection.c: set a public key token on the core assemblies.
22950
22951 2002-11-18  Dick Porter  <dick@ximian.com>
22952
22953         * threads.c: Split out some thread initialisation so that other
22954         files can set the start callback function.
22955
22956         * gc.c: Run finalisers in a separate thread, to avoid stack
22957         overflow.  Fixes bug 31333.
22958
22959         * appdomain.c: Set up GC finalisation thread.
22960
22961         * reflection.c: 
22962         * object.c: 
22963         * domain.c: Use gc.h macros for GC_malloc
22964         
22965 2002-11-15  Dick Porter  <dick@ximian.com>
22966
22967         * threadpool.c: 
22968         * threads.c:
22969         * appdomain.c: Removed mono_runtime_init_with_attach(),
22970         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
22971         merging the extra parameter with the existing function.  Removed
22972         unneeded code in mono_thread_attach().
22973
22974 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
22975
22976         * image.c (mono_image_loaded_by_guid): a method to get loaded
22977         images by guid. 
22978         (load_metadata_ptrs): we store the guid as string.
22979
22980 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
22981
22982         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
22983
22984         * metadata.c (mono_guid_to_string): imported method form Zoltan
22985         Varga (slightly modified)
22986
22987         * assembly.c (mono_assembly_open): load precompiled code
22988
22989         * loader.h (MonoMethod): we store the method token for use in the
22990         aot compiler. 
22991
22992 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22993
22994         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
22995         the hook function called when an assembly is loaded.
22996         
22997         * domain.c: Modified file.
22998         (mono_domain_assembly_load): removed hash table insertion of assemblies.
22999
23000         Fixes bug #33196.
23001
23002 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
23003
23004         * reflection.c: Map PEFileKind to the value expected by the WinNT
23005         image loader. 
23006
23007 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23008
23009         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
23010         Read until the buffer is filled completely.
23011
23012 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23013
23014         * icall.c: implemented MonoType.InternalGetEvent ().
23015
23016 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23017
23018         * appdomain.c: implemented InitAppDomainSetup. Delayed
23019         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
23020         the entry_assembly.
23021
23022         * assembly.c: base_dir is now an absolute path ending with
23023         G_DIR_SEPARATOR.
23024
23025         * icall.c: modified get_location according to the above changes.
23026
23027         * object.c: init AppDomain.SetupInformation for the default domain after
23028         we have the entry assembly.
23029
23030         * domain.c: when unloading a domain, setup = NULL.
23031
23032 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
23033
23034         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
23035
23036 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
23037
23038         * object.h, object.c: introduced mono_object_get_virtual_method ()
23039         to lookup the method invoked on an object when a callvirt is done on
23040         a method.
23041         * icall.c: make MethodInfo::Invoke() always do a virtual call.
23042
23043 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23044
23045         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
23046         current domain when loaded an assembly and failed to load it.
23047
23048         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
23049
23050 2002-10-31  Dick Porter  <dick@ximian.com>
23051
23052         * icall.c: 
23053         * file-io.h: 
23054         * file-io.c: Return the error status in a parameter, as the
23055         GetLastError() value has long since been blown away if we try and
23056         look it up in a subsequent internal call invocation.  Delete the
23057         GetLastError() internal call, because it's useless.
23058
23059 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
23060
23061         * class.[ch]: added cast_class to fix bug 29517
23062
23063 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
23064
23065         * marshal.c: create valid IL code in the filter clause:
23066         the new JIT is less forgiving:-)
23067
23068 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23069
23070         * icall.c: removed get_property internal call.
23071
23072 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
23073
23074         * appdomain.h domain.c: Added an ID to appdomains.
23075         
23076         * threads.c threads.h icall.c: Implement icall
23077         Thread:GetDomainID(), and remove unused icall 
23078         CurrentThreadDomain_internal.
23079
23080 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23081
23082         * icall.c: Don't recurse through the base types in GetConstructor.
23083         Fixes bug #32063. 
23084
23085 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
23086
23087         * mempool.h, mempool.c: added mono_mempool_empty() and
23088         mono_mempool_stats().
23089
23090 2002-10-23  Dick Porter  <dick@ximian.com>
23091
23092         * file-io.c: 
23093         * file-io.h: 
23094         * icall.c: Added MonoIO.GetFileType internal call
23095
23096 2002-10-17  Dick Porter  <dick@ximian.com>
23097
23098         * appdomain.c (mono_runtime_cleanup): Don't signal the async
23099         delegate semaphore before waiting for all threads to finish,
23100         because new threads can also call async delegates.  Fixes bug
23101         32004.
23102
23103         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
23104         of 3 seconds, in case another async job is queued.  (This part is
23105         needed because the bug fix reintroduced the 3s exit lag.)  This
23106         makes the mono_runtime_shutdown flag superfluous.
23107
23108 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
23109
23110         * reflection.c: include ehader size in method section headers.
23111         Really check for suplicated modules entries.
23112
23113 2002-10-17  Martin Baulig  <martin@gnome.org>
23114
23115         * debug-mono-symfile.c: Added back support for locals.
23116
23117 2002-10-14  Martin Baulig  <martin@gnome.org>
23118
23119         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
23120         MONO_TYPE_VOID.
23121
23122 2002-10-14  Martin Baulig  <martin@gnome.org>
23123
23124         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
23125         mono_class_get() instead of looking in the class cache. 
23126
23127 2002-10-13  Martin Baulig  <martin@gnome.org>
23128
23129         * debug-mono-symfile.c: Set version number to 28, include the
23130         signature in method names.
23131
23132 2002-10-13  Martin Baulig  <martin@gnome.org>
23133
23134         * debug-mono-symfile.h: Set version number to 27.
23135
23136 2002-10-11  Martin Baulig  <martin@gnome.org>
23137
23138         * gc.c: Don't register/unregister NULL pointers as disappearing links.
23139
23140 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23141
23142         * metadata.c, metadata.h: added helper function to allocate signatures.
23143
23144 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23145
23146         * icall.c: added internal call to get the location of machine.config.
23147
23148 2002-10-08  Martin Baulig  <martin@gnome.org>
23149
23150         * debug-mono-symfile.c: Ignore classes with a pending init for the
23151         moment.
23152
23153 2002-10-03  Dick Porter  <dick@ximian.com>
23154
23155         * threads.c: Freebsd pthread_t is a pointer
23156
23157 2002-10-03  Dick Porter  <dick@ximian.com>
23158
23159         * socket-io.c: Implemented GetHostName_internal
23160
23161 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23162
23163         * mono-config.c:
23164         (mono_config_parse_file): don't leak the text.
23165
23166 2002-10-02  Martin Baulig  <martin@gnome.org>
23167
23168         * debug-mono-symfile.c: Added support for methods.
23169
23170 2002-10-01  Martin Baulig  <martin@gnome.org>
23171
23172         * debug-mono-symfile.c: Don't emit methods and line numbers for
23173         the dynamic symbol file, just write the type table.  We can easily
23174         have an external helper program which creates a symbol file for an
23175         IL file.        
23176
23177 2002-10-01  Dick Porter  <dick@ximian.com>
23178
23179         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
23180         Only add the handle to the cleanup array when we're about to
23181         launch the thread.  Bug 31425 deadlocked when the test was run on
23182         mono under w32.
23183
23184 2002-10-01  Martin Baulig  <martin@gnome.org>
23185
23186         * debug-mono-symfile.c: Added support for properties.
23187
23188 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23189
23190         * reflection.c: unaligned store fix from Mark Crichton
23191         <crichton@gimp.org>.
23192
23193 2002-09-27  Martin Baulig  <martin@gnome.org>
23194
23195         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
23196         New interncall.
23197
23198 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
23199
23200         * assembly.h, assembly.c: use a sane API to hook into the assembly
23201         loading process instead of a useless special-purpouse hack
23202         (ngen needs a hook, too, for example).
23203
23204 2002-09-27  Dick Porter  <dick@ximian.com>
23205
23206         * threads.c (mono_thread_init): Call GetCurrentProcess() so
23207         io-layer can set up some process handle info.  Not needed on w32,
23208         but doesn't hurt either.
23209
23210         * process.c: Pass the program name in the second parameter to
23211         CreateProcess, so the path is searched.  Include the working
23212         directory. Implemented process name, process enumeration, and some
23213         process detail internal calls.
23214         
23215         * icall.c: Added internal calls for process lookup, and some
23216         process details
23217
23218 2002-09-26  Martin Baulig  <martin@gnome.org>
23219
23220         * assembly.c (mono_install_open_assembly_hook): New global
23221         function to install a function to be invoked each time a new
23222         assembly is loaded.
23223         (mono_assembly_open): Run this callback function if set.
23224
23225         * debug-mono-symfile.c: Put back line numbers for the dynamic
23226         symbol file and also record the .il file as source file.  This
23227         allows us to install the temporary symbol file as `file.dbg' just
23228         like a compiler-generated one.
23229
23230 2002-09-26  Nick Zigarovich <nick@chemlab.org>
23231
23232         * Corrected typo in gc.c (BOHEM vs BOEHM).
23233
23234 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23235
23236         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
23237         GetProperties. Also avoid calling g_slist_length in GetProperties and
23238         GetMethods.
23239
23240 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23241
23242         * reflection.c: avoid unaligned stores (bug spotted by
23243         Mark Crichton  <crichton@gimp.org>).
23244
23245 2002-09-25  Martin Baulig  <martin@gnome.org>
23246
23247         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
23248         instead of guint64 for addresses and added prologue/epilogue info.
23249
23250 2002-09-25  Martin Baulig  <martin@gnome.org>
23251
23252         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
23253         store line number info.  For the dynamic symbol file, we only need
23254         to provide the JIT generated dynamic line number info for the dynamic
23255         symbol file.
23256
23257 2002-09-25  Martin Baulig  <martin@gnome.org>
23258
23259         * debug-mono-symfile.h: Incremented version number.
23260
23261 2002-09-24  Martin Baulig  <martin@gnome.org>
23262
23263         * class.c (mono_debugger_class_init_func): New global function
23264         pointer variable.
23265         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
23266         call it.
23267
23268         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
23269         function.  This is called via the mono_debugger_class_init_func
23270         hook to add all types to the dynamic type table.
23271         (ves_icall_MonoDebugger_GetType): New interncall to get a class
23272         from its metadata token.
23273
23274         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
23275         New interncall for the debugger.
23276
23277 2002-09-24  Nick Drochak <ndrochak@gol.com>
23278
23279         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
23280         before using it in case it is null.
23281         
23282 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
23283
23284         * metadata.c: allow custom modifiers in local var signatures
23285         (bug spotted by Zoltan Varga).
23286
23287 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
23288
23289         * class.c: deal with the <Module> class that may have a NULL vtable.
23290         Eliminate warnings.
23291
23292 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23293
23294         * image.c, image.h: more strong name helpers.
23295         * monosn.c: more work: convert pem keys to cryptoapi format.
23296
23297 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23298
23299         * string-icalls.c: speedup IndexOf.
23300
23301 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23302
23303         * icall.c: updates from Zoltan.2.Varga@nokia.com.
23304
23305 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23306
23307         * icall.c: cleanup: use mono_object_domain ().
23308
23309 2002-09-23  Martin Baulig  <martin@gnome.org>
23310
23311         * debug-mono-symfile.c: Improved type support.
23312
23313 2002-09-22  Martin Baulig  <martin@gnome.org>
23314
23315         * debug-mono-symfile.c: Added support for reference types and strings.
23316
23317 2002-09-22  Martin Baulig  <martin@gnome.org>
23318
23319         * debug-mono-symfile.c: Started to work on the type table.
23320
23321 2002-09-21  Martin Baulig  <martin@gnome.org>
23322
23323         * debug-mono-symfile.c: Largely reworked the symbol table format.
23324         The symbol table is now incrementally updated each time a new
23325         method is added.  We're now also using our own magic and version
23326         so that you don't need to recompile all your classes if the
23327         dynamic table changes.
23328         (mono_debug_update_mono_symbol_file): Removed.
23329         (mono_debug_symfile_add_method): New function to add a method.
23330
23331 2002-09-21  Martin Baulig  <martin@gnome.org>
23332
23333         * icall.c
23334         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
23335         New interncall.
23336
23337         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
23338         New interncall to get a method from its metadata token.
23339
23340 2002-09-21  Martin Baulig  <martin@gnome.org>
23341
23342         * debug-mono-symfile.c: Create type table.
23343
23344 2002-09-20  Martin Baulig  <martin@gnome.org>
23345
23346         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
23347
23348 2002-09-20  Martin Baulig  <martin@gnome.org>
23349
23350         * debug-mono-symfile.c: Provide information about params and locals.
23351
23352 2002-09-20  Martin Baulig  <martin@gnome.org>
23353
23354         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
23355         New interncall.
23356
23357         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
23358         interncall to get a method from its metadata token.
23359
23360 2002-09-20  Martin Baulig  <martin@gnome.org>
23361
23362         * debug-mono-symfile.c: Added a few checks for method->header
23363         being non-NULL.  This should never happen, but for the moment
23364         let's use a g_warning() rather than a g_assert().
23365
23366 2002-09-19  Mark Crichton  <crichton@gimp.org>
23367
23368         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
23369         even if support for it isn't present.  Added an #ifdef to fix this.
23370
23371         * socket-io.c: Added checks back for Solaris support.
23372
23373 2002-09-19  Martin Baulig  <martin@gnome.org>
23374
23375         * debug-mono-symfile.c (read_string, write_string): Reflect latest
23376         changes in the symbol file format.
23377
23378 2002-09-18  Martin Baulig  <martin@gnome.org>
23379
23380         * debug-mono-symfile.c: Set version number to 21.
23381
23382 2002-09-18  Dick Porter  <dick@ximian.com>
23383
23384         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
23385         on netbsd.  Fixes bug 30051.
23386
23387 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23388
23389         * reflection.c:
23390         (set_version_from_string): little fix.
23391
23392 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23393
23394         * monosn.c, Makefile.am: added strong name utility.
23395         * reflection.h, reflection.c: implemented delayed signing,
23396         locale, version and hash id assembly attributes.
23397
23398 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
23399
23400         * loader.c, metadata.c: load param attributes in signatures.
23401
23402 2002-09-16  Martin Baulig  <martin@gnome.org>
23403
23404         * debug-mono-symfile.c: Added string table with all method names.
23405
23406 2002-09-14  Martin Baulig  <martin@gnome.org>
23407
23408         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
23409         fast method lookup.
23410
23411 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23412
23413         * reflection.c: record the public key token of referenced assemblies.
23414
23415 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
23416
23417         * image.c, image.h: added functions to get the strong name and the
23418         public key of an assembly.
23419         * pedump.c: use them.
23420
23421 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
23422
23423         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
23424
23425 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
23426
23427         * marshal.c (mono_marshal_get_managed_wrapper): Added
23428         MONO_TYPE_BOOLEAN 
23429
23430 2002-09-11  Martin Baulig  <martin@gnome.org>
23431
23432         * gc.c: Call GC_unregister_disappearing_link() on all links when
23433         finalizing them, this is necessary to aviod a crash in boehm's
23434         finalize handler.
23435
23436 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23437
23438         * gc.c: handle GetTarget for finalized objects spotted and fixed by
23439         nick@chemlab.org.
23440
23441 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
23442
23443         * icall.c: implemented MonoType::Module.
23444         * reflection.c, reflection.h: mono_module_get_object () from
23445         Tomi Pakarinen <tomi.pakarinen@welho.com>.
23446
23447 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
23448
23449         * icall.c: ignore overridden methods in GetMethods ().
23450         Fix for FieldInfo::SetValue().
23451         * object.c: handle float/double in runtime invoke.
23452
23453 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
23454
23455         * object.c: allow a constructor to be called again on an object.
23456
23457 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23458
23459         * class.h, class.c: move field layout code to it's own function and
23460         export it. Get an interface id earlier. Move fields in MonoClass
23461         so they are more cache friendly and align the bitfields.
23462         * loader.c: temporary handle get_param_names() for a runtime method.
23463         * reflection.c, reflection.h: more code to handle runtime creation of
23464         types.
23465
23466 2002-09-09  Martin Baulig  <martin@gnome.org>
23467
23468         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
23469         signature with the pinvoke field being set for the actual call.
23470
23471 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
23472
23473         * icall.c: removed some unused icalls. Start of map of glib charsets
23474         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
23475
23476 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23477
23478         * debug-helpers.c: break infinite loop (found and fixed by
23479         Holger Arnold <harnold@gmx.de>).
23480
23481 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
23482
23483         * icall.c: target may be null in create_delegate.
23484
23485 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
23486
23487         * marshal.c: handle a boolean return type.
23488
23489 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
23490
23491         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
23492
23493 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23494
23495         * gc.c: fix weakreferences.
23496
23497 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
23498
23499         * icall.c: added icall to get default codepage.
23500
23501 2002-09-03  Dick Porter  <dick@ximian.com>
23502
23503         * threads.h: 
23504         * threads.c: Use MonoThread instead of MonoObject where
23505         apropriate.
23506
23507         Store running thread objects in a hash table, so that we have all
23508         the info to hand when waiting for them to finish
23509         (means we don't need OpenThread() any more, so mingw builds should
23510         be fully functional again.)
23511
23512         * verify.c:
23513         * object.h: Added thread ID to MonoThread
23514
23515 2002-09-03  Martin Baulig  <martin@gnome.org>
23516
23517         * icall.c (System.Reflection.Assembly::get_location): New interncall.
23518
23519 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23520
23521         * icall.c: fixed leak in get_temp_path. Thanks lupus.
23522
23523 2002-09-03  Martin Baulig  <martin@gnome.org>
23524
23525         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
23526         argument to store the end address of the disassembled instruction.
23527
23528         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
23529         here from debug-symfile.h.
23530         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
23531         JIT into this struct.
23532         (MonoSymbolFile): Added `char *image_file' field.
23533         (MonoDebugGetMethodFunc): Removed.
23534         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
23535         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
23536         (mono_debug_find_method): New method.
23537
23538         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
23539         create a full symbol file.
23540         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
23541         and static symbol files.
23542         (mono_debug_find_method): The symbol file keeps an internal method hash,
23543         call this to get a MonoDebugMethodInfo from a MonoMethod.
23544
23545         * debug-symfile.[ch]: Removed.
23546
23547 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
23548
23549         * image.c (do_mono_image_open): Remove linker version check.
23550
23551 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
23552
23553         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
23554         wrappers for instance methods.
23555         
23556 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23557
23558         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
23559
23560 2002-08-28  Dick Porter  <dick@ximian.com>
23561
23562         * Makefile.am: Export HOST_CC for w32 builds
23563
23564 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
23565
23566         * file-io.c process.c: MonoString are null terminated, no
23567         need for mono_string_to_utf16() anymore.
23568
23569 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23570
23571         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
23572
23573 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
23574
23575         * icall.c, reflection.h: speedup System.MonoType.
23576
23577 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
23578
23579         * reflection.c: allow null as the value of a string argument in
23580         custom attributes constructors.
23581
23582 2002-08-27  Martin Baulig  <martin@gnome.org>
23583
23584         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
23585         `trampoline_address' field.
23586
23587 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
23588
23589         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
23590         check (fixes bug #29486) 
23591
23592 2002-08-27  Martin Baulig  <martin@gnome.org>
23593
23594         * debug-mono-symfile.c: Changed the file format in a way that allows us
23595         open it read-only and to use a specially malloced area for all the
23596         dynamic data.  We can now also generate a symbol file on-the-fly if we're
23597         debugging IL code and there is no MCS generated symbol file for it.
23598
23599 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
23600
23601         * object.c: added a define for a good string and array
23602         creation speedup (not enabled by default because we need to deal with
23603         the synch stuff).
23604
23605 2002-08-26  Martin Baulig  <martin@gnome.org>
23606
23607         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
23608         function to create a dynamic symbol file.  This is used by the
23609         debugger to create a symbol file for IL code on-the-fly.
23610
23611 2002-08-26  Martin Baulig  <martin@gnome.org>
23612
23613         * loader.c (mono_lookup_pinvoke_call): Include the error message
23614         from g_module_error() in the error message.
23615
23616 2002-08-24  Martin Baulig  <martin@gnome.org>
23617
23618         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
23619         function to update the symbol file.  The symbol file is mmap()ed
23620         writable, but private.  This allows us to install the symbol file
23621         together with the assembly.
23622
23623 2002-08-24  Martin Baulig  <martin@gnome.org>
23624
23625         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
23626         but they can read the new symbol file format which mcs is now creating.
23627
23628         * debug-symfile.c (mono_debug_find_source_location): Moved to
23629         debug-mono-symfile.c; this is now operating on the new symbol file.
23630
23631 2002-08-23  Martin Baulig  <martin@gnome.org>
23632
23633         * debug-helpers.c (mono_method_desc_from_method): New function to get
23634         a MonoMethodDesc from a MonoMethod.
23635
23636 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
23637
23638         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
23639         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
23640
23641 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
23642
23643         * string-icalls.[ch]: make helper methods static.
23644
23645 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23646
23647         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
23648         types to it and to SetValueInternal.
23649
23650         * object.c: Moved handle_enum label to its proper place. This was the
23651         f... bug! ;-)
23652
23653         This time i compiled mcs and gtk-sharp and they both work.
23654
23655 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23656
23657         * icall.c: reverted partially my previous patch until 
23658         object.c:set_value handles enums correcly.
23659
23660 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23661
23662         * icall.c:
23663         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
23664         (ves_icall_System_Environment_get_MachineName): removed warning when
23665         compiling under cygwin.
23666
23667 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
23668
23669         * object.c: fixed field_get_value() for reference types.
23670
23671 2002-08-22  Dick Porter  <dick@ximian.com>
23672
23673         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
23674         Don't free a buffer while it's still needed.  Patch from Jonathan
23675         Liger <Jonathan.liger@wanadoo.fr>
23676
23677 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
23678
23679         * icall.c (ves_icall_System_Environment_get_Platform): Add new
23680         internal call.
23681
23682 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
23683
23684         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
23685         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
23686
23687         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
23688         we call unmanaged code which throws exceptions.
23689
23690 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23691
23692         * appdomain.h: added per-domain entry_assembly.
23693         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
23694         arguments.
23695         * icall.c: Assembly::GetEntryAssembly icall.
23696         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
23697         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
23698
23699 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23700
23701         * appdomain.h, gc.c: added mono_domain_finalize ().
23702
23703 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23704
23705         * object.c:
23706         (mono_print_unhandled_exception): changed g_warning by g_printerr
23707         because g_log has a 1024 characters limit (yeah, i got a big stack
23708         trace). Don't print exception name, that should be in ToString 
23709         returned string.
23710
23711 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23712
23713         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
23714         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
23715
23716 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23717
23718         * object.c:
23719         (mono_print_unhandled_exception): after previous commit, i realized
23720         that MS calls ToString on the exception. I changed this function to
23721         do that. This way we get stack_trace for free.
23722
23723 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23724
23725         * object.c:
23726         (mono_print_unhandled_exception): invoke Message property instead of
23727         getting 'message' field from Exception. Don't allocate memory for
23728         'trace' and 'message' if not needed.
23729
23730 2002-08-18  Dick Porter  <dick@ximian.com>
23731
23732         * unicode.c: Fix asserts to match Encoder.cs checks
23733
23734 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
23735
23736         * marshal.c: fix unaligned store issue and a few wrong
23737         opcode argument types.
23738
23739 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23740
23741         * icall.c: added GetUninitializedObjectInternal internal call.
23742
23743 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
23744
23745         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
23746         to the right domain.
23747
23748 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
23749
23750         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
23751
23752         * class.c (class_compute_field_layout): set blittable to false for Strings
23753
23754         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
23755
23756 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23757
23758         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
23759         first chunk of code to create types at runtime. Code to
23760         handle ReflectedType/DeclaringType. Make reflection handles
23761         domain specific.
23762
23763 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
23764
23765         * class.c: set correct name in arrays.
23766
23767 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
23768
23769         * appdomain.c (mono_domain_transfer_object): make it work with
23770         valuetypes. bug fixes.
23771
23772 2002-08-12  Dick Porter  <dick@ximian.com>
23773
23774         * object.h: Rename some parameters to avoid c++ keywords (Patch
23775         from Joseph Wenninger <kde@jowenn.at>)
23776
23777 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
23778
23779         * icall.c: added icall to implement Assembly.GetFile*.
23780
23781 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23782
23783         * reflection.h, reflection.c: code to embed managed resources.
23784
23785 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
23786
23787         * class.c: move all the type size stuff into
23788         class_compute_field_layout().
23789
23790 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
23791
23792         * class.c: ensure enums have always the correct instance size.
23793         * unicode.c: remove wrong assert.
23794
23795 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
23796
23797         * assembly.c: fix mem corruption issue.
23798         * image.h, image.c: added mono_image_get_resource () to access
23799         managed resources.
23800         * icall.c: implemented Assembly.EntryPoint property and some
23801         Managed Resources related internalcalls.
23802
23803
23804 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
23805
23806         * image.c, image.h: impemented mono_image_get_entry_point ().
23807         * appdomain.c: use mono_image_get_entry_point.
23808
23809 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23810
23811         * reflection.c: support the object type argument when loading
23812         custom attributes.
23813
23814 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
23815
23816         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
23817         String as return type.
23818
23819 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
23820
23821         * reflection.c: fix encoding of named args for custom attrs to match
23822         the ms implementation. Read them back when instantiating custom
23823         attributes.
23824
23825 2002-08-02  Radek Doulik  <rodo@ximian.com>
23826
23827         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
23828         by Dietmar as quick fix
23829         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
23830         16 as stack size, used on more places as quick fix before Dietmar
23831         will fix it properly
23832
23833 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
23834
23835         * object.h, object.c: added accessors for fields and properties.
23836
23837 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
23838
23839         * class.c, class.h: made mono_class_get_field_from_name ()
23840         loop on parent types.
23841         Added mono_class_get_property_from_name ().
23842
23843 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
23844
23845         * class.c, class.h: move the code to setup the type vtable in its own
23846         function so that it can be reused also for types created at runtime.
23847         Eliminate the "class" identifier from the header file.
23848         * reflection.c: setup the vtable for enums so that we can create
23849         objects for use in SetConstant ().
23850
23851 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
23852
23853         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
23854         instead of the delegate itself as this pointer (bug #28383)
23855
23856 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
23857
23858         * marshal.c (mono_marshal_get_managed_wrapper): added return type
23859         conversions.
23860
23861 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23862
23863         * loader.c: don't set the pinvoke bit on icalls.
23864
23865 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
23866
23867         * debug-helpers.c (mono_method_full_name): only print a number to
23868         indicate wrapper type (so that the output is more readable in traces).
23869
23870 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
23871
23872         * class.c (mono_class_init): include method override patch from Paolo
23873
23874 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
23875
23876         * icall.c: fixed GetTypeCode().
23877
23878 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
23879
23880         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
23881         use real delegate invoke function to make it work with multicast
23882         delegates (fix bug# 28291).
23883
23884 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
23885
23886         * object.c: load constant strings.
23887
23888 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
23889
23890         * reflection.c: no magic numbers.
23891         * tabledefs.h: security action enum.
23892
23893 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
23894
23895         * assembly.c: fix possible memory corruption.
23896
23897 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
23898
23899         * reflection.h, reflection.c: added support for linking resources.
23900         * verify.c: check we have an updated corlib.
23901
23902 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
23903
23904         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
23905         string arrays.
23906         (mono_marshal_string_array): null terminate unmanaged string arrays.
23907         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
23908
23909 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
23910
23911         * icall.c: Type.GetType () can now return also types from the
23912         calling assembly.
23913
23914 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23915
23916         * loader.h, loader.c: stack walking support.
23917         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
23918         GetCallingAssembly.
23919
23920 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
23921
23922         * marshal.c: added optimisations for blittable types 
23923
23924         * class.c (mono_array_class_get): do not set blittable attribute on arrays
23925         (mono_class_setup_mono_type): set blittable attribute for single
23926         and double.
23927
23928         * marshal.c (mono_string_utf8_to_builder): impl.
23929         (mono_string_builder_to_utf8): impl.
23930         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
23931
23932 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
23933
23934         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
23935         (mono_marshal_get_managed_wrapper): impl. byref types
23936
23937 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23938
23939         * icall.c:
23940         (search_method): don't display debug message. 
23941
23942 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
23943
23944         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
23945
23946 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
23947
23948         * appdomain.c: set the missing filename when throwing exception.
23949
23950 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
23951
23952         * metadata.c (mono_type_size): code cleanup
23953         (mono_type_stack_size): removed some test code
23954
23955 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
23956
23957         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
23958         mono_get_exception_file_not_found now.
23959
23960         * exception.c (mono_exception_from_name_two_strings): New version
23961         that will call a constructor with two string arguments. 
23962         (mono_get_exception_file_not_found): New helper routine, used to
23963         report file-not-found errors.
23964
23965 2002-07-20  Dick Porter  <dick@ximian.com>
23966
23967         * process.h:
23968         * process.c: Pass file handles to CreateProcess
23969         
23970         * icall.c:
23971         * file-io.h:
23972         * file-io.c: Implemented CreatePipe
23973
23974 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
23975
23976         * metadata.c (mono_get_param_info): set alignment for value types
23977
23978 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
23979
23980         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
23981         Constify mono_domain_assembly_open().
23982         * loader.c: handle null namespace in icalls.
23983
23984 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
23985
23986         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
23987         (emit_str_to_ptr_conv): marshal object as structs
23988
23989         * metadata.c (mono_type_to_unmanaged): marshal object as structs
23990
23991         * marshal.c (mono_marshal_get_runtime_invoke): support value types
23992
23993 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
23994
23995         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
23996         (mono_marshal_get_native_wrapper): we an now return value types
23997
23998 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
23999
24000         * verify.c: more checks implemented.
24001
24002 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
24003
24004         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
24005         (fix bug #27695)
24006         (mono_marshal_get_native_wrapper): allow byref arguments
24007         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
24008         impl. PtrToStringXXX methods
24009         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
24010         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
24011         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
24012         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
24013         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
24014
24015 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24016
24017         * reflection.c: fix buglet in parsing an assembly name.
24018
24019 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
24020
24021         * marshal.c (emit_ptr_to_str_conv): first impl.
24022
24023 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24024
24025         * object.c, class.h: cache the vtable in the class as suggested by
24026         vargaz@freemail.hu (Zoltan Varga).
24027
24028 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24029
24030         * class.h, loader.c: added mono_field_from_token().
24031         * verify.c: first cut of type checking code.
24032
24033 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
24034
24035         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
24036
24037 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
24038
24039         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
24040         (fix bug #27782)
24041         (mono_marshal_get_remoting_invoke): impl.
24042         (mono_delegate_begin_invoke): impl.
24043         (mono_mb_emit_save_args): impl.
24044         (mono_delegate_end_invoke): impl.
24045         (mono_marshal_get_delegate_begin_invoke):
24046         (mono_marshal_get_delegate_end_invoke):
24047         (mono_marshal_get_delegate_invoke): generate a special name for
24048         those methods (including the signature) and associate them whith
24049         the delegate class. 
24050
24051 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
24052
24053         * reflection.[ch]: 
24054         (mono_reflection_type_from_name): now it has a MonoImage parameter
24055         which is used as the default image to search the type in. If the image
24056         is NULL or getting the type from it fails, it defaults to corlib.
24057
24058         * icall.c: changed 1 call to mono_reflection_type_from_name to match
24059         new parameter.
24060
24061 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24062
24063         * reflection.c: update the parameter table index.
24064
24065 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24066
24067         * domain.c: don't include the mark byte in the string hash.
24068
24069 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24070
24071         * icall.cs: icall for Type.GetTypeCode ().
24072         * verify: a couple of fixes and disabled local initialization checks.
24073
24074 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
24075
24076         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
24077
24078         * debug-helpers.c (mono_method_full_name): print the type of the
24079         runtime wrapper
24080
24081         * metadata.c (mono_signature_hash): a hash function for signatures
24082         (mono_signature_hash): better hash algorithm
24083
24084         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
24085
24086         * debug-helpers.c (mono_method_full_name): this can now generate
24087         method names with signatures
24088
24089         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
24090         method dont have this pointers.
24091
24092 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
24093
24094         * reflection.c: fixup typebuilder tokens.
24095         * image.c: fix buglet.
24096         * marshal.h: remove whitespace.
24097         * metadata.h, metadata.c: reinstate code that was removed.
24098         * verify.c: handle catch directives and fix another couple of bugs.
24099
24100 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
24101
24102         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
24103         (mono_marshal_get_native_wrapper): make it comp. with the old code
24104         (mono_marshal_get_native_wrapper): support boolean
24105         (mono_marshal_get_managed_wrapper): support more types
24106
24107 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
24108
24109         * class.c (class_compute_field_layout): compute class->blittable attribute.
24110
24111 2002-07-09  Dick Porter  <dick@ximian.com>
24112
24113         * threads.c: Make the thread cleaning up cope with threads that
24114         call ExitThread()
24115
24116 2002-07-08  Radek Doulik  <rodo@ximian.com>
24117
24118         * reflection.c (method_encode_code): use non-translated values to
24119         compute finally_start, this fixes exception handling on ppc, yay!
24120
24121         * decimal.h (struct signscale): fix endianess
24122
24123 2002-07-07  Radek Doulik  <rodo@ximian.com>
24124
24125         * reflection.c: swap box_val and not val
24126
24127 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
24128
24129         * reflection.c, reflection.h: handle full assembly info in type name.
24130         Handle Type arguments when loading custom attributes.
24131         * icall.c: updated to use new mono_reflection_type_from_name () method.
24132
24133 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24134
24135         * loader.c:
24136         (method_from_memberref): also print assembly name when method not found.
24137
24138 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24139
24140         * icall.c:
24141         (ves_icall_TypeGetProperties): fixed bug #27473. 
24142
24143 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24144
24145         * reflection.c: display image name and token when cannot find the
24146         .ctor for an attribute.
24147
24148 2002-07-05  Martin Baulig  <martin@gnome.org>
24149
24150         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
24151
24152 2002-07-04  Dick Porter  <dick@ximian.com>
24153
24154         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
24155         compile on mingw.  This will cause mingw builds to not wait for
24156         subthreads to terminate after the main thread does.  I've lodged a
24157         bug with the mingw developers for them to wrap OpenThread().
24158
24159 2002-07-03  Dick Porter  <dick@ximian.com>
24160
24161         * threads.c: Store thread IDs instead of handles, because
24162         GetCurrentThread() returns a pseudohandle and therefore stores
24163         useless values.  mono_thread_cleanup() continues checking the
24164         array of threads until it is empty, to cope with subthreads
24165         spawning new threads after the main thread has finished.
24166
24167         * profiler.h:
24168         * profiler.c:
24169         * profiler-private.h: Pass the thread ID to thread profiler
24170         functions, instead of a handle
24171
24172 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24173
24174         * verify.c: fixes to make it more usable.
24175         * pedump.c: added --verify code to verify IL code in an assembly.
24176
24177 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24178
24179         * reflection.c: turn errors into warnings to allow compiling corlib.
24180
24181 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
24182
24183         * reflection.c: add special cases to compile corlib.
24184
24185 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24186
24187         * reflection.c: handle properties with only a set method.
24188
24189 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24190
24191         * opcodes.h: add enum with opcodes in opval order.
24192
24193 2002-07-01  Dick Porter  <dick@ximian.com>
24194         
24195         * object.h:
24196         * object.c (mono_runtime_run_main): Removed unneeded argument
24197
24198 2002-06-28  Martin Baulig  <martin@gnome.org>
24199
24200         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
24201
24202 2002-06-27  Dick Porter  <dick@ximian.com>
24203
24204         * threads.c: Store the handle in both the parent thread and in the
24205         subthread, to minimise the time between starting a new thread and
24206         storing its ID.
24207
24208 2002-06-26  Dick Porter  <dick@ximian.com>
24209
24210         * appdomain.c (mono_runtime_cleanup): Close the socket library
24211         after all the threads have finished, not before
24212
24213 2002-06-26  Martin Baulig  <martin@gnome.org>
24214
24215         * debug-symfile.c (mono_debug_find_source_location): Added
24216         `guint32 *line_number' argument.  If it's not NULL, store the line number
24217         there and return the file name without the line number.
24218
24219 2002-06-25  Dick Porter  <dick@ximian.com>
24220
24221         * icall.c:
24222         * process.h:
24223         * process.c: Process forking and other support functions
24224
24225 2002-06-25  Dick Porter  <dick@ximian.com>
24226
24227         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
24228         things dont happen when the image is closed.
24229         (mono_image_lookup_resource): Walk the resource section looking
24230         for a particular entry
24231
24232         * cil-coff.h: PE resource section decoding
24233
24234 2002-06-25  Dick Porter  <dick@ximian.com>
24235         
24236         * assembly.h:
24237         * assembly.c: 
24238         (mono_assembly_foreach): Accessor functions to walk the list of
24239         loaded assemblies
24240         (mono_assembly_set_main):
24241         (mono_assembly_get_main): Process methods need to know which
24242         assembly is the "main" one
24243
24244         * object.c (mono_runtime_run_main): Record the main assembly
24245
24246         * debug-helpers.c: Fix typo
24247
24248 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
24249
24250         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
24251         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
24252
24253 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24254
24255         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
24256
24257 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
24258
24259         * image.c (do_mono_image_open): Initialize reference count,
24260         otherwise we leak the MonoImage.
24261
24262 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24263
24264         * reflection.c: small tweak to handle self-hosting.
24265
24266 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24267
24268         * reflection.c: fix type name parse code.
24269
24270 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24271
24272         * reflection.c: break out of the loop.
24273         * image.c: special case corlib.
24274
24275 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24276
24277         * reflection.c: add all the custom attrs at the end to ensure the
24278         ctors have been properly initialized when the attributes are defined
24279         in the current assembly.
24280
24281 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24282
24283         * reflection.c: handle correctly multiple-nested types.
24284
24285 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24286
24287         * row-indexes.h: fix typos.
24288         * reflection.c: adjust for typos and fix method_def_or_ref
24289         encoding in MethodImpl table.
24290
24291 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24292
24293         * reflection.c: fix entry point patching (thanks Serge!).
24294
24295 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
24296
24297         * verify.c: add check for System.Exception
24298
24299 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
24300
24301         * image.c, class.c: minifix for code just c&p'ed.
24302         * reflection.c: warning fix.
24303         * object.h, loader.h, domain.c: load also StringBuilder.
24304
24305 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24306
24307         * marshal.h, marshal.c: some support code to handle complex marshaling.
24308
24309 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24310
24311         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
24312         Better signatures with vtable error dump.
24313
24314 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
24315
24316         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
24317
24318 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
24319
24320         * icall.c (ves_icall_Type_GetField): impl.
24321
24322 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24323
24324         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
24325         to retrieve a marshal description blob for a field or param.
24326
24327 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24328
24329         * reflection.h, reflection.c: change order of nested type emission
24330         to avoid table corruption. The NestedTypes table is sorted.
24331         * icall.c: change order of GetConstructor results to workaround mcs bug.
24332
24333 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24334
24335         * reflection.h, reflection.c: handle field and param marshal
24336         information.
24337
24338 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24339
24340         * icall.c, marshal.c marshal.h: more Marshal class implementation.
24341
24342 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24343
24344         * reflection.c: fix call convention.
24345
24346 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24347
24348         * reflection.h, reflection.c: mono_image_get_memberref_token()
24349         takes a type instead of a class, now. Added
24350         mono_image_get_array_token() to create tokens for the special
24351         multi-dim array methods.
24352
24353 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24354
24355         * assembly.c: handle modules (no assembly table). Split
24356         loading references in its own function.
24357         * class.c: handle moduleref resolution scope.
24358         * image.c, image.h: cache module name in image.
24359
24360 2002-06-07  Martin Baulig  <martin@gnome.org>
24361
24362         * reflection.c (mono_image_get_type_info): Only add a class layout entry
24363         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
24364
24365 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24366
24367         * icall.c: more signature fixes that used uint instead of int.
24368
24369 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24370
24371         * reflection.c: fixed signature of field refs.
24372
24373 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24374
24375         * class.c, reflection.c: handle typerefs of nested types
24376         (both on read and when writing files).
24377
24378 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
24379
24380         * icall.c: fix method signatures that tried to workaround the previous
24381         typo, d'oh!
24382
24383 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24384
24385         * debug-helpers.c: fix typo.
24386
24387 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
24388
24389         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
24390         rewrote the PE/COFF writing code (our programs are understood by the
24391         ms runtime, now).
24392
24393 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24394
24395         * gc.c, gc.h, icall.c: weakreference support.
24396
24397 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24398
24399         * Makefile.am, mono-config.c: use $(sysconfdir).
24400
24401 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24402
24403         * icall.c: changed default precision of Double.ToString() to 15.
24404         Fixed memory leak. Unified with Single.ToString.
24405
24406 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
24407
24408         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
24409
24410 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24411
24412         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
24413         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
24414         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
24415         and myself.
24416
24417 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24418
24419         * debug-symfile.c, sysmath.c: yet more compilation fixes.
24420
24421 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24422
24423         * reflection.c, socket-io.c: more compilation fixes.
24424
24425 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24426
24427         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
24428         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
24429         unicode.c: warning and compiler compatibility fixes.
24430
24431 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24432
24433         * class.h, metadata.c: fixed warnings/compilation errors.
24434
24435 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
24436
24437         * Makefile.am, mono-config.c, mono-config.h: configuration file
24438         support routines.
24439         * loader.c, loader.h: make Dll mapping configurable at runtime in the
24440         config file. Export methods to insert and lookup mappings.
24441
24442 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24443
24444         * reflection.c: handle types and boxed objects in custom attr
24445         constructors.
24446
24447 2002-05-30  Martin Baulig  <martin@gnome.org>
24448
24449         * debug-symfile.c
24450         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
24451
24452 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
24453
24454         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
24455         to lookup the implmap row for a P/Invoke method.
24456         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
24457         P/Invoke method from the runtime on an as needed basis.
24458
24459 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
24460
24461         * metadata.c (mono_metadata_parse_signature): impl.
24462
24463 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24464
24465         * class.c: handle .pack directive.
24466
24467 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24468
24469         * object.c: initialize static fields with RVA data.
24470
24471 2002-05-25  Martin Baulig  <martin@gnome.org>
24472
24473         * debug-symfile.c
24474         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
24475
24476 2002-05-24  Martin Baulig  <martin@gnome.org>
24477
24478         * debug-symfile.c
24479         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
24480         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
24481         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
24482
24483 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24484
24485         * object.c: special case string ctros in invoke.
24486         * gc.c: silly whitespace changes.
24487
24488 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
24489
24490         * threadpool.[ch]: impl. a threadpool that can
24491         be used by mint and mono.
24492
24493 2002-05-22  Martin Baulig  <martin@gnome.org>
24494
24495         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
24496         The first argument is now a `MonoReflectionModuleBuilder *', the return
24497         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
24498         `methods' field to get the method builder.  The `token' argument is the
24499         unfixed token.
24500
24501         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
24502         invalid characters instead of g_assert_not_reached()ing.  This seems
24503         to be the behaviour of mscorlib.
24504
24505 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
24506
24507         * object.c (mono_runtime_invoke_array): applied patch from Rachel
24508         Hestilow to fix bug #25104
24509
24510 2002-05-21  Martin Baulig  <martin@gnome.org>
24511
24512         * debug-symfile.c (mono_debug_find_source_location): New function.
24513         Looks up an IL offset in the line number table and returns the source
24514         location as a string.
24515
24516 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24517
24518         * icall.c:
24519         (mono_double_ToStringImpl): changed %f by %g until we have something
24520         better.
24521
24522 2002-05-21  Nick Drochak  <ndrochak@gol.com>
24523
24524         * icall.c : Use different name for Math.Pow's icall.  Needed to check
24525         parameters first in C#.
24526
24527 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24528
24529         * icall.c, reflection.h: added icall to get info about an event.
24530
24531 2002-05-20  Radek Doulik  <rodo@ximian.com>
24532
24533         * object.c (mono_value_box): don't use memcpy for boxing on BIG
24534         endian
24535         (mono_value_box): don't use memcpy for small sizes on
24536         architectures with unaligned access
24537
24538 2002-05-20  Martin Baulig  <martin@gnome.org>
24539
24540         * reflection.c (mono_reflection_setup_internal_class): Don't crash
24541         if `tb->parent == NULL'.
24542         (mono_reflection_create_internal_class): New function.  This is
24543         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
24544         for enum types.
24545
24546         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
24547         New interncall.
24548
24549 2002-05-19  Martin Baulig  <martin@gnome.org>
24550
24551         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
24552         argument to get the length, don't default to the array length.
24553
24554 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
24555
24556         * assembly.c (mono_assembly_setrootdir): New function used to
24557         override the MONO_ASSEMBLIES directory.
24558
24559 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24560
24561         * icall.c: ValueType_GetHashCode() initialize local var.
24562
24563 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24564
24565         * reflection.c: sort custom attributes table.
24566
24567 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24568
24569         * reflection.c: support named args in custom attributes (write support).
24570
24571 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
24572
24573         * reflection.c: fix finally position calculation.
24574
24575 2002-05-15  Radek Doulik  <rodo@ximian.com>
24576
24577         * reflection.c: fixed endianess at many places
24578
24579         * icall.c (ves_icall_InitializeArray): comment out debug msg
24580
24581 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
24582
24583         * object.c (mono_unhandled_exception): new function to handle
24584         unhandled exceptions.
24585         (mono_unhandled_exception): call the UnhandledException event.
24586         (mono_runtime_delegate_invoke): impl.
24587
24588 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
24589
24590         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
24591         returns the RVA, not the direct pointer to the data. Handle the case
24592         when the class size is fixed.
24593
24594 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24595
24596         * reflection.c: fix some endianess issues.
24597
24598 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
24599
24600         * object.c (mono_runtime_invoke): is now able to catch exceptions.
24601
24602         * threads.c (mono_thread_init): added a callback which is invoked
24603         at thread start.
24604
24605 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
24606         
24607         * icall.c: make GetHashCode return non-negative values.
24608
24609 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
24610
24611         * object.c, icall.c, gc.c: revert to address-based hashcode.
24612
24613 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
24614
24615         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
24616
24617 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24618
24619         * icall.c, class.c: special case <Module>.
24620
24621 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
24622
24623         * icall.c: fix bug in GetNow().
24624
24625 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
24626
24627         * object.c (mono_runtime_class_init): make sure that we call all
24628         static class constructors.
24629
24630 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24631
24632         * reflection.c: sort methodsemantics table.
24633
24634 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24635
24636         * reflection.h, reflection.c: honour init locals setting.
24637
24638 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
24639
24640         * icall.c: copied Double ToStringImpl for Single ToStringImpl
24641
24642 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24643
24644         * reflection.c: support ContructorBuilders in attribute blob creation.
24645
24646 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24647
24648         * reflection.c: some changes to build a binary that can be run
24649         directly in windows.
24650
24651 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24652
24653         * loader.c: print a big message when an icall can't be found.
24654
24655 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24656
24657         * string-icalls.c: fix bug 24248.
24658
24659 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
24660
24661         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
24662         icall.c, reflection.h: separate assembly loading by pathname and by
24663         assembly name. Use the MONO_PATH env var to search for assemblies.
24664
24665 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24666
24667         * assembly.c, image.h: add some support for assemblies
24668         with multiple modules.
24669         * class.c, class.h: export mono_class_from_typeref().
24670         * loader.c: remove duplicated code and use mono_class_from_typeref(),
24671         instead.
24672
24673 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24674
24675         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
24676         documentation says (the ECMA one is correct).
24677
24678 2002-05-02  Dick Porter  <dick@ximian.com>
24679
24680         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
24681         Don't name the synchronisation mutex.
24682
24683 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
24684
24685         * rand.c
24686         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
24687         Make the prototypes match.
24688         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
24689         Same.
24690
24691         * icall.c
24692         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
24693         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
24694         all systems have tm.tm_zone, so use strftime() with %Z to print
24695         the timezone abreviation into a temp string.
24696
24697         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
24698         rather than mono_array_addr() on a MonoString on Big Endian
24699         machines.
24700
24701 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
24702
24703         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
24704         fix bug 24041
24705
24706 2002-04-30  Dick Porter  <dick@ximian.com>
24707
24708         * socket-io.c: Cope with SOCKET being an integer rather than a
24709         pointer now.
24710
24711         * threads.c: Added Thread_free_internal, to deal with thread
24712         handle cleanup.  Moved calls to handle_store() and handle_remove()
24713         to start_wrapper(), so each can only be called once.  Allocate
24714         synchronisation blocks with GC_malloc(), and use GC finalisation
24715         to close the handles.
24716
24717         * icall.c: added System.Threading.Thread::Thread_free_internal
24718
24719 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24720
24721         * icall.c: support Environment.Exit, CommandLineArgs().
24722
24723 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24724
24725         * object.c, object.h: added mono_runtime_run_main () and
24726         mono_runtime_get_main_args () for use in System.Environment.
24727
24728 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24729
24730         * gc.c: fix thinko, enable actual finalization since the jit is now
24731         fixed.
24732
24733 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24734
24735         * gc.c, object.c: take into account that an object may be offset wrt the address
24736         returned by GC_malloc().
24737
24738 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24739
24740         * image.c: handle files without entries in the assembly table (modules).
24741
24742 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
24743
24744         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
24745         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
24746         allowed to be null when it's System.Object class setup.
24747
24748 2002-04-27  Martin Baulig  <martin@gnome.org>
24749
24750         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
24751         if `tb->parent == NULL' rather than crashing.
24752
24753 2002-04-28  Nick Drochak  <ndrochak@gol.com>
24754
24755         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
24756         calling acos() where asin() should have been called.
24757
24758 2002-04-26  Martin Baulig  <martin@gnome.org>
24759
24760         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
24761         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
24762         there's a subdirectory called `System', but we don't want to read that
24763         subdirectory as an assembly.
24764
24765 2002-04-25  Martin Baulig  <martin@gnome.org>
24766
24767         * debug-symfile.c: Reflect latest MonoString changes.
24768
24769 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24770
24771         * rand.c, rand.h: instance method icalls need to have an explicit
24772         this pointer as first argument in the C implementation.
24773
24774 2002-04-25  Nick Drochak <ndrochak@gol.com>
24775
24776         * icall.c: Fix typo in map for GetNonZeroBytes
24777
24778 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24779
24780         * string-icalls.c : String does now passes unit tests without any 
24781         errors, the following changes has been made:
24782         
24783         Implemented replace methods.
24784         Renaming of methods to (try) follow the standard.
24785         Fixed compare ordinal
24786         Made all memory allocated directly to function instead of via icall function.
24787         Small performance fix in is_in_array function
24788                         
24789  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
24790
24791         c (mono_string_Internal_ctor_charp_int_int):
24792         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
24793         sindex < 0, throw ArgumentOutOfRangeException instead of
24794         ArgumentNullException.
24795
24796         Added new check for length == 0, however
24797         I need to make it return String.Empty from the C code.
24798         
24799         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
24800         that calculate the length for us here.
24801         
24802         (mono_string_Internal_ctor_sbytep_int_int): Replaced
24803         mono_string_new_utf16 with mono_string_new, since value is utf8.
24804
24805 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24806
24807         * object.c: register the object for finalization if needed.
24808         Allocate one more char in the string for the terminating 0 char.
24809
24810 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24811
24812         * class.c, class.h, image.c: check if a type implemenst a destructor.
24813         Use the proper key for array class lookups.
24814         * icall.c: register the icalls in the System.GC class.
24815         * gc.c, gc.h: GC-related functions and icalls.
24816
24817 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24818
24819         * icall.c:
24820         * socket-io.c:
24821         * unicode.c: free some strings gotten from mono_string_to_utf8 and
24822         changed a couple of free () by g_free ().
24823
24824         * decimal.c: one-liner in the comments for decimal2string ().
24825
24826 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24827
24828         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
24829
24830 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
24831
24832         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
24833         * object.c (mono_runtime_invoke_array) : handle null in params
24834
24835 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24836
24837         * string-icalls.c: fixed bug in split (one off bug)
24838
24839 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24840
24841         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
24842         * icalls.c: added String::Equals as internal method
24843
24844 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
24845
24846         * threads.c: fixed bug in the double interlocked functions
24847
24848 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
24849
24850         * threads.c: implemented all of the new interlocked icalls.
24851         * string-icalls.c: fix a bug in insert.
24852         * icalls.c: added the icalls for interlocked, removed old string functions.
24853         
24854 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24855
24856         * loader.c: fix off-by-one error when reading argument names.
24857
24858 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24859
24860         * profiler.c: win32 counter implementation (untested).
24861         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
24862         (the latter needs testing and more complete impl. from win32 folks).
24863
24864 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
24865
24866         * object.c: mono_array_new_full workaround mono_array_class_get
24867         problem.
24868
24869 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24870
24871         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
24872         * object.h (mono_string_chars): Changed casting type.
24873
24874 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24875
24876         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
24877                            method signatures to use gunichar2 instead of gint16.
24878
24879 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
24880
24881         * object.h, object.c: domain-specific versions of mono_object_new and
24882         mono_array_new.
24883
24884 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
24885
24886         * object.c: changed String layout
24887
24888         * string-icalls.c (mono_string_Internal_ctor_chara): added
24889         internal string constructors.
24890
24891 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
24892
24893         * threads.c: pass 'this' to the thread start routine.
24894
24895 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24896
24897         * string-icalls.c: fix IndexOf and LastIndexOf. Now
24898         InternalCompareStr don't call twice mono_string_cmp_char for the last
24899         character. Improved performance in mono_string_cmp_char.
24900
24901 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24902
24903         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
24904         code into its own library: libmonoruntime.
24905
24906 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
24907
24908         * object.h, object.c: changed array format so that szarrays do not
24909         require a bounds structure.
24910         * icall.c, appdomain.c: support for new szarray format.
24911
24912 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
24913
24914         * metadata.c: compare also the retuns type when comparing signatures:
24915         we didn't do this as an optimization since really overloaded methods
24916         must differ also in the arguments, but this doesn't work with
24917         low-level IL code (or when using explicit conversion operators: see
24918         bug#23498 for an example).
24919
24920 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24921
24922         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
24923
24924 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24925
24926         * icall.c: make MonoType::GetElementType its own icall.
24927
24928 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
24929
24930         * icall.c: remove MonoMethod_get_Name().
24931         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
24932         object.
24933
24934 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24935
24936         * string-icalls.c: optimized a few methods.
24937
24938 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
24939
24940         * icall.c: added all new string internal calls
24941         * string-icalls.c: added, new string internal call implementation.
24942         * object.c: added mono_string_new_size for allocating a string a size
24943
24944 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
24945
24946         * object.c (mono_object_isinst): use the same code as in the
24947         optimized x86 version.
24948
24949 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24950
24951         * profiler.c: TSC-based timer code (faster and more accurate).
24952         Not hooked up in configure, yet (set USE_X86TSC to 1).
24953
24954 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
24955
24956         * profiler.c, profiler.h: track time spent compiling methods.
24957         * threads.c: track thread creation/destruction.
24958
24959 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
24960
24961         * profiler.c, profiler.h, profiler-private.h: profiling interface
24962         and sample implementation. Moved here so that it can be used also by
24963         the jit.
24964
24965 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
24966
24967         * reflection.c, reflection.h: keep types and other handles separate in
24968         the hash tables for referred tokens. Add guid for modules.
24969
24970 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
24971
24972         * assembly.c: fix bugs found with valgrind.
24973         * metadata.h, metadata.c: added mono_metadata_guid_heap().
24974
24975 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
24976
24977         * threads: added icall support for getting current domain for
24978                    the thread.
24979  
24980 2002-04-13  Martin Baulig  <martin@gnome.org>
24981
24982         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
24983         (MonoDebugVarInfo): Added `index' field for register based addresses.
24984         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
24985         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
24986         `MonoDebugVarInfo *params' and `guint32 this_offset' with
24987         `MonoDebugVarInfo *this_var'.
24988
24989         * debug-symfile.c (relocate_variable): New static function to write
24990         a location description for a local variable or method parameter.
24991
24992 2002-04-12  Martin Baulig  <martin@gnome.org>
24993
24994         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
24995         stack offset and begin/end scope address of a local variable.
24996         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
24997         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
24998         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
24999
25000         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
25001         Added new relocation types for start/end scope of a local variable.
25002
25003 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25004
25005         * object.h: add mono_object_domain() macro.
25006         * reflection.c: handle typespecs.
25007         * icall.c: MonoMethod::get_Name() implementation.
25008
25009 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25010
25011         * icall.c: String::GetHashCode() icall implementation.
25012
25013 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25014
25015         * icall.c: String::IndexOfAny icall.
25016         * object.c, object.h: make array->max_length more useful.
25017         Intrduced mono_object_class() and mono_string_length() macros.
25018
25019 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25020
25021         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
25022         instead of g_unichar_isdigit.
25023
25024 2002-04-11  Nick Drochak  <ndrochak@gol.com>
25025
25026         * icall.c: Implement a simple Double.ToString().
25027
25028 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25029
25030         * appdomain.h: only io-layer.h is supposed to be included.
25031         * icall.c: explicitly import environ. Fix warning.
25032
25033 2002-04-10  Nick Drochak  <ndrochak@gol.com>
25034
25035         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
25036                 return true even if it's not Daylight Savings time.
25037                 Only return false for the case where the function isn't
25038                 implemented for a plaform (read Windows).
25039
25040 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25041
25042         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
25043         data with a mutex.
25044
25045 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
25046
25047         * mempool.c (mono_mempool_alloc): only use g_malloc when
25048         absolutely necessary.
25049
25050 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
25051
25052         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
25053
25054         * class.c (mono_class_vtable): use domain mempool to allocate vtable
25055         (mono_class_proxy_vtable): use domain mempool
25056
25057 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25058
25059         * appdomain.h, appdomain.c: split initialization that requires the
25060         execution engine support into mono_runtime_init().
25061
25062 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
25063
25064         * class.c (mono_class_init): don't include vtable inside MonoClass
25065         to save some memory, gather some statistics.
25066         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
25067
25068 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25069
25070         * icall.c: internalcall implementation for ValueType.Equals().
25071
25072 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
25073
25074         * object.c (mono_message_init): moved 
25075         (mono_runtime_exec_main): new arch. independent impl.
25076         (mono_runtime_invoke_array): new method - like
25077         mono_runtime_invoke, but you can pass an array of objects.
25078         (mono_remoting_invoke): new arch. independent impl.
25079         (mono_message_invoke): new arch. independent impl.
25080         (mono_runtime_class_init): new arch. independent impl.
25081         (mono_runtime_object_init): new arch. independent impl.
25082
25083 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25084
25085         * metadata.c, object.c, reflection.c: documented the exported
25086         functions.
25087
25088 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
25089
25090         * icall.c: simpler code to pass the assembly builder data to corlib.
25091         Implement GetNestedTypes() internalcall.
25092
25093 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25094
25095         * class.c: warn if a type can't be loaded.
25096
25097 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
25098
25099         * image.h: typedef MonoImageOpenStatus
25100         * types.h: removed unused file
25101         
25102 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
25103
25104         * icall.c: Enum_ToObject accepts enum value arguments.
25105
25106 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25107
25108         * class.c: move initialization of properties, events and nested
25109         classes, so that they happen for interfaces, too.
25110
25111 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25112
25113         * icall.c: cleanup some ugly casts in Array_SetValue*.
25114
25115 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25116
25117         * icall.c: the values array fro enums is of the correct type, now.
25118         Implement (correctly) getFullName instead of assQualifiedName for
25119         MonoType.
25120         * reflection.h, reflection.c: added mono_type_get_name ().
25121
25122 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25123
25124         * assembly.c, image.h: for each MonoImage, record from wich assembly
25125         it was loaded.
25126         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
25127         Make Type.Assembly work.
25128
25129 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
25130
25131         * debug-symfile.h: use char* instead of gpointer to avoid
25132         unnecessary casts.
25133
25134         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
25135
25136         * icall.c (ves_icall_InternalExecute): impl. FielSetter
25137         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
25138
25139 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
25140
25141         * icall.c (mono_message_init): impl. (code cleanup)
25142         (ves_icall_InternalExecute): impl. FieldGetter
25143
25144         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
25145         defined we call all (non-static)methods through the vtable. 
25146
25147 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
25148
25149         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
25150         finalizer even though the memory is still referenced (and the chunk of
25151         memory is not freed).
25152
25153 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
25154
25155         * assembly.c: fix brokeness.
25156
25157 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
25158
25159         * class.c: kill some warnings. Check explicit interface method
25160         implementation also without considering the namespace.
25161         Load also literal strings in static class data.
25162
25163 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
25164
25165         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
25166         (default_assembly_name_resolver): Make the resolver take the
25167         "base" directory where the assembly was originally defined, so we
25168         can load DLLs that are in the same directory as the assembly that
25169         is being referenced.
25170
25171 2002-03-28  Dick Porter  <dick@ximian.com>
25172
25173         * file-io.h: 
25174         * file-io.c:
25175         * socket-io.c: 
25176         * unicode.h: 
25177         * unicode.c: Warning cleanups
25178
25179 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
25180
25181         * object.h, reflection.h: use the correct type instead of MonoObject.
25182
25183 2002-03-28  Martin Baulig  <martin@gnome.org>
25184
25185         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
25186         (mono_debug_update_symbol_file): Initialize classes if necessary.
25187
25188 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
25189
25190         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
25191         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
25192
25193 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
25194
25195         * assembly.h: fix function prototype.
25196         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
25197         * mono-endian.h: use const cast.
25198
25199 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
25200
25201         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
25202
25203 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
25204
25205         * loader.c: don't assert when a typeref can't be loaded, give
25206         a chance to the runtime to trow an exception instead.
25207         * loader.h: fix warning.
25208
25209 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
25210
25211         * class.c (mono_class_proxy_vtable): added proxy support
25212
25213 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
25214
25215         * icall.c: removed last of PAL calls, added System.Environment
25216         * file-io.h, file-io.c: MonoIO implementation
25217         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
25218
25219 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
25220
25221         * appdomain.c: do not use the byte marker in ldstr table lookup.
25222         * debug-helpers.c: allow two ':' to separate class and method name.
25223         * object.c: allocate arrays bounds with the GC, too.
25224         * verify: add a few more checks.
25225
25226 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
25227
25228         * reflection.c: output also literal strings. Allocate parameter data
25229         with GC_malloc() (thanks, Martin, for catching this!).
25230
25231 2002-03-26  Martin Baulig  <martin@gnome.org>
25232
25233         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
25234         include the `this' offset in the `param_offsets'.
25235
25236 2002-03-25  Martin Baulig  <martin@gnome.org>
25237
25238         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
25239         mono_debug_get_class() function to get the classes. Added new
25240         relocation types for arrays and strings.
25241         (mono_debug_get_class): New static function to search in all
25242         referenced assemblies for a metadata token.
25243
25244         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
25245
25246 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
25247
25248         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
25249         hold gc-allocated objects. Make the string heap a stream like the
25250         others. Removed duplicated code when writing stream info.
25251         Added asserts to catch possible buffer overflows. Set the sorted map
25252         for tables that need sorting. Added some documentation.
25253
25254 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
25255
25256         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
25257         for interned strings and vtables.
25258
25259 2002-03-24  Martin Baulig  <martin@gnome.org>
25260
25261         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
25262         it in the array since it was created with g_slist_prepend().
25263
25264 2002-03-24  Martin Baulig  <martin@gnome.org>
25265
25266         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
25267         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
25268         (mono_debug_method_from_token): Renamed to
25269         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
25270         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
25271
25272         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
25273         relocation types.
25274
25275         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
25276
25277 2002-03-24  Martin Baulig  <martin@gnome.org>
25278
25279         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
25280         (mono_debug_method_from_token): New func.
25281
25282         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
25283         New interncall, calls mono_debug_local_type_from_signature().
25284         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
25285         calls mono_debug_method_from_token().
25286
25287 2002-03-23  Martin Baulig  <martin@gnome.org>
25288
25289         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
25290         specifies the number of bytes to be converted, not the array size.
25291         Return the number of chars, not the number of bytes.
25292         (ves_icall_iconv_get_chars): The `byteCount' argument
25293         specifies the number of bytes to be converted, not the array size.
25294
25295 2002-03-23  Martin Baulig  <martin@gnome.org>
25296
25297         * reflection.h (MonoReflectionSigHelper): New type.
25298
25299         * reflection.c (mono_reflection_sighelper_get_signature_local),
25300         (mono_reflection_sighelper_get_signature_local): New functions.
25301
25302         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
25303         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
25304         interncalls.
25305
25306 2002-03-23  Martin Baulig  <martin@gnome.org>
25307
25308         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
25309         is_writeable is set.
25310         (mono_raw_buffer_update): New function to write the modified map
25311         back to disk.
25312
25313         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
25314
25315         * debug-symfile.c (mono_debug_update_symbol_file): Call
25316         mono_raw_buffer_update() when done writing.
25317
25318 2002-03-23  Martin Baulig  <martin@gnome.org>
25319
25320         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
25321
25322         * debug-symfile.c: Added support for arguments and local variables.
25323
25324 2002-03-23  Dick Porter  <dick@ximian.com>
25325
25326         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
25327         protected by ifdefs, hence breaking the w32 build.
25328
25329 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25330
25331         * object.c: implement is_interned() the right way.
25332
25333 2002-03-21  Martin Baulig  <martin@gnome.org>
25334
25335         * debug-symfile.[ch]: New files to handle debugging information
25336         files. There's also support to dynamically update these symbol
25337         files to include machine dependent information.
25338
25339 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
25340
25341         * threads.c (mono_thread_create): new function to create thread
25342         from C
25343
25344 2002-03-20  Martin Baulig  <martin@gnome.org>
25345
25346         * icall.c (ves_icall_InternalInvoke): Create a new object if the
25347         method is a constructor.
25348         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
25349         points to ves_icall_InternalInvoke().
25350
25351 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
25352
25353         * file-io.c: Flush shouldn't throw exceptions.
25354
25355 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
25356
25357         * file-io.c: FileStream flush support; FileSetLength now
25358         restores file pointer.
25359
25360 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25361
25362         * class.c: set image for pointer classes.
25363
25364 2002/03/19  Nick Drochak <ndrochak@gol.com>
25365
25366         * sysmath.c: Forgot one.
25367
25368 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
25369
25370         * sysmath.c: Avoid redefining existing names.
25371
25372 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
25373
25374         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
25375         handled by runtime as icall rather than dllimport from libm.so
25376         * file-io.c, file-io.h: fixed handle argument type.
25377
25378 2002-03-18  Dick Porter  <dick@ximian.com>
25379
25380         * reflection.c (mono_image_get_type_info): rename interface to
25381         iface, because of "#define interface struct" on windows.
25382
25383 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
25384
25385         * class.c, class.h: rename and export mono_ptr_class_get().
25386         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
25387         * reflection.c, reflection.h, icall.c: better/saner type name
25388         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
25389         method signatures.
25390
25391 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
25392
25393         * class.c (mono_class_init): removed hardcoded GHC_SLOT
25394
25395         * icall.c (ves_icall_InternalInvoke): impl.
25396
25397 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25398
25399         * reflection.c: output the interface map table, too.
25400
25401 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
25402
25403         * class.c (class_compute_field_layout): separate computation of 
25404         static field layout
25405
25406 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
25407
25408         * icall.c: added System.Buffer support.
25409         * file-io.c: moved file icalls from PAL to FileStream.
25410
25411 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
25412
25413         * icall.c (ves_icall_System_Object_GetHashCode): impl.
25414
25415 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
25416
25417         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
25418
25419 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25420
25421         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
25422
25423 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25424
25425         * debug-helpers.{c,h}: moved here from monograph some useful functions
25426         to locate a method by name/signature in a class or image. Included
25427         also a small and flexible IL disassembler.
25428
25429 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25430
25431         * reflection.c: fixup tokens in methods with small header size, too.
25432
25433 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
25434
25435         * object.c (mono_string_to_utf8): remove assert(!error), instead
25436         print a warning. 
25437
25438 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
25439
25440         * icall.c: update to the new mono_Array_class_get interface.
25441
25442 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
25443
25444         * appdomain.c, object.c: Boehm-GC enable.
25445         * icall.c: make get_data_chunk() support split data requests.
25446         Ensure a class is initialized in more cases. Return only the first
25447         property found in GetProperties() or the compiler gets confused. 
25448         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
25449         * reflection.h, reflection.c: add fixup mechanism for field and method
25450         tokens. Initialize assembly->typeref in a single place. Output
25451         properties after events. Support custom attributes for events, too.
25452         Typo fix for paramter custom attrs.
25453
25454 2002-03-07  Martin Baulig  <martin@gnome.org>
25455
25456         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
25457
25458 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
25459
25460         * class.c (mono_array_class_get): fix. for multi. dim. arrays
25461
25462 2002-03-06  Martin Baulig  <martin@gnome.org>
25463
25464         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
25465         non-zero lower bounds. See testcases #F10-#F13.
25466
25467 2002-03-05  Martin Baulig  <martin@gnome.org>
25468
25469         * exception.c (mono_get_exception_argument_out_of_range): New exception.
25470
25471         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
25472         ves_icall_System_Array_GetValue(), only calculate the absolute array position
25473         here.
25474         (ves_icall_System_Array_SetValue): Likewise.
25475         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
25476         as argument and does the actual work. This function is used when copying a
25477         multi-dimensional array.
25478         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
25479         now do all the widening conversions of value types.
25480         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
25481
25482 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25483
25484         * class.c: remove some magic numbers and use the smbolic names,
25485         instead. Added init_events() to load event info at class init time.
25486         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
25487         and mono_metadata_methods_from_event().
25488         * reflection.h, reflection.c: added support for writing out the evnets
25489         related information.
25490
25491 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
25492
25493         * reflection.h, icall.c: use a different method (GetInterfaces)
25494         to gather interface info and add isbyref, isprimitive and
25495         ispointer to the ves_icall_get_type_info() return value.
25496
25497 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
25498
25499         * class.h: stared adding support for events.
25500         * icall.c: split find_members implementation. Added debug icall to get
25501         the address of an object.
25502         * reflection.c: handle TypeBuilders in mono_type_get_object().
25503
25504 2002-03-01  Martin Baulig  <martin@gnome.org>
25505
25506         * icall.c (ves_icall_System_Array_GetLength): This must throw an
25507         ArgumentOutOfRangeException(), not an ArgumentException().
25508         (ves_icall_System_Array_GetLowerBound): Likewise.
25509         (ves_icall_System_Array_GetValue): Improved argument checking.
25510         (ves_icall_System_Array_SetValue): Improved argument checking.
25511
25512 2002-03-01  Martin Baulig  <martin@gnome.org>
25513
25514         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
25515         called with invalid arguments rather than just dying with g_assert().
25516         (ves_icall_System_Array_SetValue): Likewise.
25517         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
25518         raise a NotImplementedException instead.
25519         (ves_icall_System_Array_GetLength): Added argument checking.
25520         (ves_icall_System_Array_GetLowerBound): Added argument checking.
25521
25522 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
25523
25524         * object.h (mono_assert): new macros mono_assert and
25525         mono_assert_not_reached
25526
25527 2002-02-28  Martin Baulig  <martin@gnome.org>
25528
25529         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
25530         and "System::String::IsInterned" to "System::String::_IsInterned".
25531
25532 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
25533
25534         * icall.c: remove hacks for typebuilder. Added icall to create a
25535         modified type from a tybebuilder.
25536         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
25537         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
25538         to create a backing MonoClass for a TypeBuilder.
25539
25540 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25541
25542         * class.c, class.h: more refactoring of class init.
25543         Export mono_class_setup_mono_type() and mono_class_setup_parent().
25544
25545 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
25546
25547         * marshal.c, marshal.h: start of marshaling interface.
25548
25549 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
25550
25551         * icall.c: fix order in assembly qualified name icall.
25552
25553 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
25554
25555         * class.c: do not free str, since we store it in the hash table.
25556         * reflection.h: add label field to MonoILExceptionInfo.
25557         * reflection.c: handle references to more than one assembly. Handle
25558         case when there isn't a module created in the assembly.
25559
25560 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
25561
25562         * class.c: Fix typo. Start refactoring of class init code.
25563
25564 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
25565
25566         * appdomain.c: exit with 1 on error.
25567         * class.c: we already have the name in MonoClassField.
25568         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
25569         MonoStreamHeader instead of an offset of image->raw_metadata.
25570
25571 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
25572
25573         * appdomain.c (mono_init): Be even more descriptive about the error.
25574
25575 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
25576
25577         * appdomain.c: give the user an informative message when corlib can't
25578         be loaded.
25579
25580 2002-02-26  Martin Baulig  <martin@gnome.org>
25581
25582         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
25583         New icall to get the time zone data.
25584
25585 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25586
25587         * reflection.c: set virtual and raw size of section correctly.
25588         * threads.c: transfer domain information to newly created threads.
25589
25590 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
25591
25592         * class.c: when instancing a class in a domain, load the default
25593         vaules for static fields from the constant table. Fix System.Enum to
25594         not be an enum.
25595         * icall.c: implement Object::GetType() internalcall. Implemented
25596         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
25597         Fixed checking of binding flags in find_members().
25598         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
25599         * reflection.c: handle enumerations when writing to the constant
25600         table. Use a different object cache for types.
25601
25602
25603 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
25604
25605         * object.c (mono_object_isinst): fix for arrays
25606
25607         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
25608
25609 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
25610
25611         * object.c: don't use mprotect ()  and fix intern pool hash table
25612         lookup for big endian systems.
25613
25614 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25615
25616         * icall.c: change type_is_subtype_of () signature.
25617
25618 2002-02-21  Mark Crichton  <crichton@gimp.org>
25619
25620         * rand.c, rand.h: Added random number generator for
25621         System.Security.Cryptography classes.
25622
25623         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
25624
25625         * icall.c: Added System.Security.Cryptography calls.
25626
25627 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
25628
25629         * class.c, icall.c, metadata.c: better support for pointer types.
25630         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
25631         * reflection.c: Add support for getting custom attrs for properties
25632         and simplify some code.
25633
25634 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
25635
25636         * icall.c: change getToken () and add custom attribute GetBlob()helper
25637         method.
25638         * reflection.h: add custom attrs array to the reflection builder structures.
25639         * reflection.c: encode and emit custom attributes for all the relevant
25640         reflection objects. Cache fieldref and methodref tokens. Change
25641         mono_image_create_token() interface to take a MonoDynamicAssembly.
25642         More complete custom attributes decoder. Load custom attributes for
25643         Assembly, Field, Method and Constructor objects, too. Make the
25644         returned array an Attribute[] one, not object[]. Added
25645         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
25646         custom attribute constructor.
25647
25648 2002-02-20  Dick Porter  <dick@ximian.com>
25649
25650         * icall.c:
25651         * rawbuffer.c:
25652         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
25653         problem code out for now).
25654
25655 2002-02-19  Radek Doulik  <rodo@ximian.com>
25656
25657         * object.c (mono_ldstr): use hash table to avoid multiple swapping
25658
25659 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
25660
25661         * icall.c: register the GetCustomAttributes method.
25662         * object.c, object.h: add mono_string_new_len ().
25663         * reflection.h, reflection.c: added mono_runtime_invoke(),
25664         mono_install_runtime_invoke(). Added
25665         mono_reflection_get_custom_attrs () to load custom attributes and
25666         create the attribute objects.
25667
25668 2002-02-19  Dick Porter  <dick@ximian.com>
25669         * threads-dummy-types.c:
25670         * threads-dummy-types.h:
25671         * threads-dummy.c:
25672         * threads-dummy.h:
25673         * threads-pthread-types.c:
25674         * threads-pthread-types.h:
25675         * threads-pthread.c:
25676         * threads-pthread.h:  Deleted obsolete files
25677
25678 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
25679
25680         * class.c (mono_class_vtable): runtime init the class when we
25681         allocate static class data.
25682
25683         * icall.c (ves_icall_System_Array_SetValue): check for null values.
25684
25685         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
25686         and String - but we will need generic marshalling support in the
25687         future. 
25688         (mono_init): set the domain name in a ms compatible way
25689
25690         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
25691         String[].
25692
25693 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
25694
25695         * object.c (mono_array_clone): use alloca() instead of g_malloc  
25696         for sizes
25697
25698         * appdomain.c (mono_domain_unload): impl.
25699
25700 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25701
25702         * appdomain.c, object.c: fix intern pool implementation.
25703         * class.c: fix alignment code.
25704
25705 2002-02-16  Radek Doulik  <rodo@ximian.com>
25706
25707         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
25708         and s2 > s1, just copy lower bytes to be compatible with little
25709         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
25710         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
25711
25712         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
25713         force big_endian to be 1 for big endian machines 
25714         (ves_icall_iconv_new_decoder): ditto
25715
25716 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
25717
25718         * socket-io.c (convert_sockopt_level_and_name): If the system
25719         doesn't define SOL_IP or SOL_TCP, get them by hand using
25720         getprotobyname() and caching the values (because this could be a
25721         slow operation).
25722         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
25723         Use the appropriate struct when the system does support it. Ie,
25724         not all systems have struct ip_mreqn so use struct ip_mreq when
25725         appropriate.
25726
25727 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
25728
25729         * reflection.c: handle finally clauses.
25730
25731 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
25732
25733         * socket-io.c: use g_snprintf() instead of snprintf.
25734
25735 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25736
25737         * reflection.c (mono_param_get_objects): Cast second argument to
25738         mono_method_get_param_names to a const char** to silence the
25739         compiler warning.
25740
25741         * appdomain.c (mono_domain_assembly_open): Put parens around the
25742         truth statement in the for-loop.
25743
25744         * unicode.c (iconv_convert): Got rid of a compiler warning about
25745         int i being unused when the system has a new iconv.
25746         (iconv_get_length): Same.
25747
25748         * image.c (load_class_names): Cast the second argument to
25749         g_hash_table_insert() to char* to hush compiler warnings about the
25750         arg being a const.
25751         (mono_image_open): Same here.
25752
25753         * socket-io.c: Don't conditionally include sys/filio.h or
25754         sys/sockio.h here anymore since we now get them from
25755         io-layer/io-layer.h
25756         (inet_pton): If the system doesn't support inet_aton, implement
25757         using inet_addr and also #define INADDR_NONE if it isn't defined
25758         by the system.
25759
25760 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
25761
25762         * metadata.c, metadata.h: added function to get packing and size info
25763         of a typedef.
25764         * reflection.h, reflection.c: handle field RVA data. Save info about
25765         the table layout if needed. Assign typedef indexes to all the types
25766         before dumping the info about them to avoid forward reference problems.
25767
25768 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
25769
25770         * socket-io.c (convert_sockopt_level_and_name): ifdef
25771         SO_ACCEPTCONN because it is not defined on my system (old debian)
25772
25773 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25774
25775         * opcode.c: use stddef.h to get NULL.
25776
25777 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
25778
25779         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
25780         for FIONBIO, FIONREAD and SIOCATMARK.
25781         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
25782         define INADDR_NONE and besides, inet_addr() is deprecated and
25783         should not be used. Use inet_pton() instead - it also has the
25784         added bonus that it can easily handle IPv6 addresses as well.
25785         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
25786
25787 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
25788
25789         * decimal.c: remove _MSC_VER conditional.
25790
25791 2002-02-13  Dick Porter  <dick@ximian.com>
25792
25793         * socket-io.c: 
25794         * icall.c: Internal calls for Blocking, Select, Shutdown,
25795         GetSocketOption and SetSocketOption
25796
25797 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25798
25799         * assembly.cs: better resolver: use it instead of some kludgy
25800         code.
25801
25802 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
25803
25804         * reflection.c: the best way to speed-up the compiler is to avoid
25805         infinite loops.
25806
25807 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
25808
25809         * class.c (mono_class_vtable): changed the object layout
25810         (obj->vtable->class). 
25811         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
25812
25813 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25814
25815         * assembly.c: look for assemblies in the assembly dir, too.
25816
25817 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25818
25819         * class.c: fix thinko in mono_class_from_type().
25820
25821 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25822
25823         * exception.h, exception.c: added TypeLoadException.
25824         * object.h, object.c: added mono_array_clone ().
25825         * icall.c: handle throwOnError in AssemblyGetType().
25826         Added Array.Clone().
25827         * opcode.h, opcode.c: use a single value for the opcode val.
25828         Compile fix for non-gcc compilers.
25829
25830 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
25831
25832         * opcodes.c, opcodes.h: export interesting info about opcodes.
25833
25834 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
25835
25836         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
25837         icalls. 
25838
25839         * class.c (class_compute_field_layout): set element_class for enums
25840         (mono_class_create_from_typedef): set element_class for normal classes
25841
25842         * icall.c (ves_icall_System_Enum_get_value): impl.
25843
25844         * class.c (mono_class_create_from_typedef): do not set valuetype
25845         flag for System.ValueType and System.Enum
25846
25847 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
25848
25849         * unicode.c (iconv_convert): fix big endian problem.
25850
25851 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25852
25853         * class.c: add asserts if we are ever going to scribble over memory.
25854         * socket-io.c: not all systems have AF_IRDA defined.
25855
25856 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
25857
25858         * class.c (class_compute_field_layout): do not consider static
25859         fields to compute alignment
25860
25861 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
25862
25863         * appdomain.c (mono_appdomain_get): impl.
25864         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
25865
25866 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
25867
25868         * icall.c: ignore "file://" prefix when loading an assembly.
25869
25870 2002-01-23  Dick Porter  <dick@ximian.com>
25871
25872         * socket-io.c:
25873         * icall.c:
25874         * Makefile.am: Added socket support
25875
25876 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25877
25878         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
25879         code back.  This should return the assemblies that are loaded by
25880         the runtime on behalf of an application domain. 
25881
25882         The current implementation is still broken, it just returns every
25883         assembly loaded, but until we get real applications domain this
25884         will do.
25885
25886 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
25887
25888         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
25889         AppDomain object.
25890
25891 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
25892
25893         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
25894         the mono_class_from_name lookup.
25895         (ves_icall_get_parameter_info): ditto.
25896         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
25897         method.
25898         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
25899
25900 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
25901
25902         * class.c: load also nested classes on class init.
25903         System.ValueType instance methods gets passed boxed
25904         values, unless methods in derived classed that get a pointer to the
25905         data.
25906         * icall.c: use better name parsing code in GetType().
25907         * image.c, image.h: add mono_image_loaded ().
25908         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
25909         * reflection.c, reflection.h: added mono_reflection_parse_type().
25910
25911 2002-01-22  Veronica De Santis <veron78@interfree.it>
25912
25913         * icall.c : Added mapping of internal calls for Manual and Auto reset events
25914         * threads.c : Added the implementation of internal calls for events
25915         * threads.h : Added prototypes of internal calls for events
25916         
25917 2002-01-21  Radek Doulik  <rodo@ximian.com>
25918
25919         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
25920
25921 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
25922
25923         * class.c (mono_class_init): set min_align to 1 (instead of 0)
25924         (mono_class_value_size): use min_align
25925
25926 2002-01-20  Dick Porter  <dick@ximian.com>
25927
25928         * threads.h:
25929         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
25930         so it compiles on w32.
25931
25932 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
25933
25934         * metadata.c (mono_type_stack_size): impl.
25935
25936         * class.c (mono_class_get_field): impl. memberref token
25937
25938 2002-01-16 Veronica De Santis <veron78@@interfree.it>
25939
25940         * icall.h : Added the internal calls mapping for CreateMutex_internal
25941                     and ReleaseMutex_internal.
25942         * threads.h : Added the prototype of mutexes internal calls.
25943         * threads.c : Added the implementations of mutexes internal calls.
25944
25945 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
25946
25947         * metaparse.h: removed unused file.
25948         * reflection.c, reflection.h: added stream_data_align () function 
25949         to align data in streams and keep stream aligned. Add support for
25950         exception support in method headers.
25951
25952 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
25953
25954         * unicode.c: make iconv_convert () return the number of bytess written
25955         in the output buffer.
25956
25957 2002-01-15  Dick Porter  <dick@ximian.com>
25958         * threads.c: Make the runtime's idea of infinite timeouts coincide
25959         with the class library's
25960
25961         Fix a particularly egregious bug in mono_thread_cleanup(). That
25962         code was so utterly bogus it must have been written on a Monday.
25963
25964 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
25965
25966         * reflection.h: add subtypes field to TypeBuilder.
25967         * reflection.c: encode constants for literal fields.
25968         Handle subtypes. Fix user string token (and add a zero byte)
25969         at the end.
25970         
25971 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
25972
25973         * class.c (mono_class_init): bug fix: assign slot numbers for
25974         abstract methods.
25975
25976 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25977
25978         * reflection.c: don't try to output a code RVA for abstract methods.
25979         Small fixes for method header format. Output parameter info to the
25980         ParamDef table. Save method overriding info to MethodImpl table.
25981         Fix property support. Allow typedef.extends to be a type in the
25982         building assembly.
25983         * verify.c: fix off-by-one error.
25984
25985 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
25986
25987         * class.c: fix mono_class_from_mono_type () for szarray types.
25988         Remove unused cache check in mono_class_from_type_spec().
25989         * icall.c: *type_from_name () functions handle simple arrays and byref.
25990         * reflection.c: handle byref and szarray types. Handle methods without
25991         body (gets P/Invoke compilation working). Handle types and fields in
25992         get_token ().
25993         * reflection.h: add rank to MonoTypeInfo.
25994
25995 2002-01-10  Dick Porter  <dick@ximian.com>
25996
25997         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
25998         internal calls
25999
26000 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
26001
26002         * icall.c: initialize class in type_from_handle ().
26003         Loop also in parent classes for get_method ().
26004         * reflection.c: properly encode class and valuetype types.
26005         Start on encoding TypeBuilder types. Handle fieldrefs.
26006         Use correct length when registering a user string.
26007         Handle ConstructorBuilder and MonoMethod in get_token ().
26008         Make mono_type_get_object () aware of cached types.
26009         * object.c: back out change to mono_string_new ().
26010
26011 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
26012         * object.c: mono_string_new should return a NULL when the string 
26013         passed in is NULL -- not try to deference it.
26014         
26015 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26016
26017         * icall.c: hack to make IsSubType work for TypeBuilders.
26018         * reflection.c: emit constructors before methods.
26019         Retrieve param names in mono_param_get_objects().
26020
26021 2002/01/05  Nick Drochak  <ndrochak@gol.com>
26022
26023         * Makefile.am: fix list of headers and sources so automake 1.5
26024         doesn't complain. Removed \# at end of list.
26025
26026 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
26027
26028         * reflection.c: get token for a method ref. Set return type of
26029         constructor to void.
26030         * loader.c: debug message.
26031         * class.c: typo fix.
26032
26033 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
26034
26035         * icall.c: fix array init with rank > 1. FindMembers
26036         loops in parent class as well.
26037         * image.c: do not insert nested types in name cache.
26038         * reflection.c: warning fix.
26039         * reflection.h: add override method (for interface impl).
26040
26041 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
26042
26043         * metadata.c: fix customattr decoding.
26044
26045 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
26046
26047         * rawbuffer.cs: Added native Win32 implementation, avoids using
26048         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
26049
26050 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
26051
26052         * class.c: make the low-level routines handle the cache.
26053
26054 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
26055
26056         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
26057
26058 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
26059
26060         * class.c: fix mono_array_element_size() for objects.
26061         * class.h, class.c: add properties to MonoClass and load them
26062         at init time.
26063         * icall.c: check with isinst() when assigning a value to an array
26064         instead of requiring the classes to match exactly.
26065         Implemented icall for System.Type::GetType().
26066         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
26067         enums. Handle bindingflags when looking for methods and fields.
26068         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
26069         and mono_metadata_methods_from_property().
26070         * reflection.h, reflection.c: added structures for propreties,
26071         parameters and enums. Implemented mono_property_get_object() and
26072         mono_param_get_objects().
26073
26074 2001-12-18  Dick Porter  <dick@ximian.com>
26075
26076         * file-io.c: Use mono_string_to_utf16() instead of
26077         mono_string_chars()
26078
26079         * object.c: Added mono_string_to_utf16(), which copies the non
26080         NULL-terminated MonoString into a new double-null-terminated
26081         buffer.
26082
26083 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
26084
26085         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
26086
26087 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
26088
26089         * file-io.c: raise exceptions if handle is invalid.
26090
26091 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
26092
26093         * assembly.c: yet another check for mscorlib.
26094         * class.c, class.h: load nesting info for classes.
26095         * icall.c: many new functions to support the Reflection classes.
26096         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
26097         * reflection.h, reflection.c: mono_image_create_token(),
26098         mono_assembly_get_object(), mono_type_get_object(),
26099         mono_method_get_object(), mono_field_get_object(): methods to return
26100         objects that parallel the C representation of assemblies, types,
26101         methods, fields.
26102
26103 2001-12-11  Dick Porter  <dick@ximian.com>
26104
26105         * icall.c:
26106         * file-io.c: Internal calls for file IO.
26107
26108 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
26109
26110         * tabledefs.h: missing FileAttributes.
26111         * verify.h, verify.c: use is_valid_string () to simplify and check for
26112         valid strings more correctly. Fix warnings and speeling.
26113         Check more tables: Filed, File, ModuleRef, StandAloneSig.
26114         Check code: branches, maxstack, method calls.
26115
26116 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
26117
26118         * object.c (mono_object_allocate): removed static, so that the jit
26119         can allocate value types.
26120
26121         * icall.c (ves_icall_System_DateTime_GetNow): impl.
26122
26123 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26124
26125         * class.c: init enum types right away and register the
26126         token->MonoClass map in mono_class_create_from_typedef ().
26127         * verify.h, verify.c: first cut of the verifier.
26128         * pedump.c: add --verify switch to verify metadata tables.
26129         * tabledefs.h: add some missing enums.
26130
26131 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
26132
26133         * class.c (mono_install_runtime_class_init): impl.
26134         (mono_class_init): renamed mono_class_metadata_init to
26135         mono_class_init, also removed the metadata_inited flag
26136
26137         * object.c (mono_object_isinst): use faster algorithm
26138
26139 2001-11-30  Radek Doulik  <rodo@ximian.com>
26140
26141         * mono-endian.h: reverted last change
26142         added function prototypes
26143
26144         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
26145         add mono-endian.c back
26146
26147         * mono-endian.c: returned back, as Paolo pointed out, it's needed
26148         for unaligned access, I've mistaked it with endianess. I am
26149         sorry.
26150         (mono_read16): fix reverted endianess
26151         (mono_read64): ditto
26152         (mono_read32): ditto
26153
26154 2001-11-30  Dick Porter  <dick@ximian.com>
26155
26156         * exception.c: Implement mono_exception_from_name()
26157
26158 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
26159
26160         * metadata.h, metadata.c: remove params_size and locals_size and their
26161         calculation from the metadata code: they are only usefult to the
26162         interp.
26163
26164 2001-11-29  Radek Doulik  <rodo@ximian.com>
26165
26166         * object.c (mono_ldstr): swap bytes here, it's probably not the
26167         best place, but works for me now, I'll redo it once I know mono
26168         better, also note that I add PROT_WRITE and don't reset back, also
26169         note that it's only affects big endians, so x86 should be OK
26170
26171         * mono-endian.h (read16): use just glib macros for both endians
26172
26173         * mono-endian.c: removed as glib macros are used in in
26174         mono-endian.h so we don't need to care about endianess for read
26175         macros as glib does that for us already
26176
26177 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
26178
26179         * class.h, class.h: take minimum alignment into consideration so
26180         that the fields of a class remain aligned also when in an array.
26181
26182 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26183
26184         * loader.h, loader.c: add mono_method_get_param_names().
26185         * class.c: 0-init class fields.
26186
26187 2001-11-26  Dick Porter  <dick@ximian.com>
26188
26189         * icall.c:
26190         * threads-types.h:
26191         * threads.c: New file that handles System.Threading on all platforms
26192
26193         * object.c: 
26194         * object.h: Remove the synchronisation struct from MonoObject,
26195         replace it with a pointer that gets initialised on demand
26196
26197         * Makefile.am: Replace all the system-specific threading code with
26198         a single file that uses the new wrapper library
26199
26200 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
26201
26202         * class.c, class.h: add mono_install_trampoline() so that the runtime
26203         can register a function to create a trampoline: removes the ugly
26204         requirement that a runtime needed to export arch_create_jit_trampoline.
26205         * object.h, object.c: added mono_install_handler() so that the runtime
26206         can install an handler for exceptions generated in C code (with
26207         mono_raise_exception()). Added C struct for System.Delegate.
26208         * pedump.c: removed arch_create_jit_trampoline.
26209         * reflection.c: some cleanups to allow registering user strings and
26210         later getting a token for methodrefs and fieldrefs before the assembly
26211         is built.
26212         * row-indexes.h: updates and fixes from the new ECMA specs.
26213
26214 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
26215
26216         * class.h, class.c: add enum_basetype field to MonoClass.
26217         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
26218         to get index in the constant table reated to a field, param or
26219         property.
26220         * reflection.h, reflection.c: handle constructors. Set public-key and
26221         version number of the built assembly to 0.
26222         * row-indexes.h: update from new ECMA spec.
26223
26224 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
26225
26226         * class.h, class.c: add a max_interface_id to MonoClass.
26227         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
26228         since it's used to do that. Added mono_type_type_from_obj().
26229         Make GetType() return NULL instead of segfaulting if the type was not
26230         found. Handle simple arrays in assQualifiedName.
26231         * object.h: add a struct to represent an Exception.
26232         * reflection.c: output call convention in method signature.
26233         Add code to support P/Invoke methods and fixed offsets for fields.
26234
26235 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
26236
26237         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
26238         the value.
26239         * icall.c: use mono_array_addr instead of array->vector: fixes the
26240         reflection image writing.
26241         * reflection.c: init call convention byte to 0 in method signature.
26242         Encode the property signature. Don't output property-related methods
26243         twice. Really process the properties for a type (don't cast a field to
26244         a property, my mom always told me that).
26245         Fix 64 bit issues in pointer alignment in a different and more
26246         readable way.
26247
26248 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
26249
26250         * loader.h: Removed type class from MonoDefaults, added monotype
26251
26252         * loader.c: Loaded MonoType, removed loading of Type
26253
26254         * icall.c (my_mono_new_object): Now returns a System.MonoType,
26255         and fills in System.Type._impl with a RuntimeTypeHandle rather
26256         than the actual MonoClass *
26257
26258         (ves_icall_type_from_handle): change from type_class to
26259         monotype_class
26260
26261         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
26262         implemented
26263
26264         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
26265         implemented
26266
26267         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
26268
26269         (ves_icall_System_Reflection_Assembly_GetType): implemented
26270
26271         (ves_icall_System_MonoType_assQualifiedName): implemented
26272
26273         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
26274
26275 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
26276
26277         * assembly.c (mono_assembly_open): Implement a cache for the
26278         assemblies. 
26279
26280         (mono_assembly_close): only destroy the assembly when the last
26281         reference is gone.
26282         
26283 2001-11-09  Dick Porter  <dick@ximian.com>
26284
26285         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
26286
26287 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
26288
26289         * class.c (mono_class_metadata_init): bug fix: compute the right slot
26290
26291 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
26292
26293         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
26294         from Martin Weindel.
26295         * object.h: add mono_string_chars ().
26296
26297 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
26298
26299         * reflection.c (build_compressed_metadata): Eliminates warnings
26300         and uses 64-bit clean code.
26301
26302         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
26303         (mono_type_equal): Change signature to eliminate warnings.
26304
26305 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
26306
26307         * icall.c, loader.c: remove the internalcall array constructors.
26308         Changes to match the new MonoArray structure.
26309         * object.h, object.c: an array object doesn't allocate an extra
26310         vector. Add mono_array_new_full () to create jagged arrays easily.
26311
26312 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
26313
26314         * metadata.h, metadata.c: add mono_metadata_field_info () to
26315         retreive all the info about a field from vairous tables.
26316         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
26317         * class.h, class.c: augment MonoClassField with more info.
26318         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
26319         policy and load a field's RVA if needed.
26320
26321 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
26322
26323         * class.c (mono_class_metadata_init): create a trampoline for all
26324         virtual functions instead of actually compiling them.
26325
26326 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
26327
26328         * class.h, class.c: include name in MonoClassField.
26329         * class.c: fix fundamental type of System.Object and System.String.
26330         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
26331         tokens in ldtoken.
26332         * icall.c: remove internalcalls for the Reflection stuff that is now
26333         done in C# code.
26334         * loader.c: mono_field_from_memberref () implementation.
26335         * mono-endian.c: thinko (s/struct/union/g).
26336         * object.c, object.h: make the mono_string_* prototypes actually use
26337         MonoString instead of MonoObject.
26338         * reflection.c, reflection.h: updates for changes in the reflection
26339         code in corlib: we use C structures that map to the actual C# classes.
26340         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
26341         fat method header if needed and use the info from the ILGenerator for
26342         methods. Handle fields in types. Misc fixes.
26343
26344 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
26345
26346         * class.c (mono_class_metadata_init): bug fix: always allocate
26347         space for static class data
26348
26349 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
26350
26351         * class.c (mono_compute_relative_numbering): use relative
26352         numbering to support fast runtime type checks.
26353
26354 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
26355
26356         * class.c (mono_class_create_from_typeref): added debugging output
26357         to print class name when MonoDummy is returned instead of real class
26358
26359 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
26360
26361         * class.c (mono_class_metadata_init): interface offset table now
26362         contains pointers into the vtable - this is more efficient for the jit
26363
26364 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
26365
26366         * class.c (mono_class_metadata_init): use a temporary vtable (the
26367         old algorithm only worked for the interpreter, but not for the jit)
26368
26369 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
26370
26371         * loader.c (method_from_memberref): use mono_class_get to get the
26372         class of an array instead of using System.Array directly.
26373         (mono_get_method): also add MEMBERREF methods to the method cache
26374         which usefull for arrays.
26375
26376 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
26377
26378         * pedump.c (arch_compile_method): added to compute vtable entry
26379
26380         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
26381         number of interfaces.
26382         
26383         * class.h: merged MonoArrayClass into MonoClass
26384
26385         * class.c (mono_class_create_from_typedef): compute the vtable size and
26386         allocate space to include the vtable inside MonoClass
26387         (mono_class_metadata_init): initialize the vtable
26388
26389 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
26390
26391         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
26392         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
26393         * image.c: endian fixes by Laurent Rioux.
26394         * object.h, object.c: rename MonoStringObject to MonoString and
26395         MonoArrayObject to MonoArray. Change some function names to conform to
26396         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
26397         guint16* as first argument, so don't use char*.
26398         Provide macros to do the interesting things on arrays in a portable way.
26399         * threads-pthread.c: updates for the API changes and #include <sched.h>
26400         (required for sched_yield()).
26401         * icall.c: updates for the API changes above.
26402         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
26403         platforms that need them.
26404
26405 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
26406
26407         * class.c: set the correct type for all the fundamental
26408         type when loading the class.
26409
26410 2001-10-05  Dick Porter  <dick@ximian.com>
26411
26412         * threads-pthread.c (pthread_mutex_timedlock): Simple
26413         compatibility version for C libraries that lack this call.
26414
26415 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26416
26417         * class.c: MonoTypes stored in MonoClass are stored as
26418         fundamental MonoTypes when the class represents a
26419         fundamental type (System.Int32, ...).
26420         The TypeHandle return by ldtoken is a MonoType*.
26421         * icall.c: ves_icall_get_data_chunk () write out all the
26422         PE/COFF stuff. Implement ves_icall_define_method (),
26423         ves_icall_set_method_body (), ves_icall_type_from_handle ().
26424         * image.c: properly skip unknown streams.
26425         * loader.h, loader.c: add type_class to mono_defaults.
26426         * metadata.c, metadata.h: export compute_size () as
26427         mono_metadata_compute_size () with a better interface.
26428         Typo and C&P fixes.
26429         * pedump.c: don't try to print the entry point RVA if there is no entry point.
26430         * reflection.c, reflection.h: many cleanups, fixes, output method
26431         signatures and headers, typedef and typeref info, compress the metadata
26432         tables, output all the heap streams, cli header etc.
26433         * row-indexes.h: typo fixes.
26434
26435 2001-10-04  Dick Porter  <dick@ximian.com>
26436
26437         * object.h: Add a synchronisation mutex struct to MonoObject
26438
26439         * object.c (mono_new_object): Initialise the object
26440         synchronisation mutexes
26441
26442         * icall.c: System.Threading.Monitor internal calls
26443         
26444         * threads-pthread.h:
26445         * threads-pthread.c: System.Threading.Monitor internal calls
26446
26447         * threads-types.h: New file, includes the system-specific thread
26448         structures
26449         
26450         * threads-pthread-types.h:
26451         * threads-pthread-types.c: New files, handle pthread-specific
26452         synchronisation types
26453
26454         * threads-dummy-types.h: 
26455         * threads-dummy-types.c: New files of dummy support for
26456         thread-specific types
26457
26458         * metadata.c:
26459         * image.c:
26460         * pedump.c: include mono-endian.h not endian.h
26461         
26462         * Makefile.am: More threads files.
26463         Name mono-endian.h not endian.h
26464
26465 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
26466
26467         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
26468         stuff and implement a few more bits.
26469         * icall.c: a field needs to be dereferenced twice. Do not use the same
26470         name for two variables in the same scope.
26471         * image.c, image.h: cleanups.
26472
26473 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
26474
26475         * class.c (mono_class_metadata_init): bug fix: compute the right size
26476
26477 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
26478
26479         * icall.c: implemented some of the Reflection internalcalls.
26480         * image.c, image.h: start writing out the PE/COFF image.
26481         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
26482         that does the reverse than decode_blob_size ().
26483         * object.c: use mono_metadata_encode_value (). Move here
26484         temporary implementation of mono_string_to_utf8 ().
26485         * rawbuffer.c: make malloc_map static.
26486
26487 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26488
26489         * metadata.c: fix type comparison for arrays.
26490         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
26491         Added a couple of new classes to monodefaults.
26492         * icall.c: added a couple of Reflection-related internalcalls.
26493         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
26494         Added a byval_arg MonoType to MonoClass.
26495
26496 2001-09-28  Dick Porter  <dick@ximian.com>
26497
26498         * icall.c:
26499         * threads-pthread.h: 
26500         * threads-pthread.c: Implemented internal calls for
26501         LocalDataStoreSlot operations.  Applied mutexes around all shared
26502         data.  Reworked the thread creation and Start() operations to
26503         avoid a race condition.
26504         
26505         * threads-dummy.h:
26506         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
26507
26508 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
26509
26510         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
26511
26512 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
26513
26514         * class.c, loader.c: warn and return NULL instead of erroring out.
26515         * icall.c: added System.AppDomain::getCurDomain().
26516         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
26517
26518 2001-09-25  Dick Porter  <dick@ximian.com>
26519
26520         * threads-pthread.h:
26521         * threads-pthread.c: Implemented timed thread joining and added
26522         System.Threading.Thread::Join_internal internal call
26523
26524         * icall.c: Added System.Threading.Thread::Join_internal internal call
26525
26526         * threads-dummy.h:
26527         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
26528
26529 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
26530
26531         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
26532         mono_string_intern () to implement the semantics of the ldstr opcode
26533         and the interning of System.Strings.
26534         * icall.c: provide hooks to make String::IsIntern and String::Intern
26535         internalcalls.
26536
26537 2001-09-23  Dick Porter  <dick@ximian.com>
26538
26539         * threads-dummy.c: 
26540         * threads-dummy.h: New files of dummy threading routines
26541
26542         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
26543         support code based on system specifics
26544
26545         Rename PTHREAD_LIBS to THREAD_LIBS
26546         
26547 2001-09-23  Dick Porter  <dick@ximian.com>
26548
26549         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
26550         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
26551         internal calls.
26552         (mono_thread_init): Set up a Thread object instance to return when
26553         the main thread calls Thread.CurrentThread
26554         (mono_thread_cleanup): Wait for all subthreads to exit
26555
26556         * icall.c: New internal calls for System.Threading.Thread::Sleep
26557         (including Schedule) and CurrentThread
26558
26559         * threads.h: New file, to insulate thread-specific stuff from the
26560         rest of the code
26561
26562 2001-09-21  Dick Porter  <dick@ximian.com>
26563
26564         * threads-pthread.h: 
26565         * threads-pthread.c: New file, for handling pthreads-style
26566         threading support.  Start() now starts a new thread and executes
26567         the ThreadStart delegate instance.
26568
26569         * icall.c: Added the internalcall for
26570         System.Threading.Thread::Start_internal
26571
26572         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
26573
26574 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
26575
26576         * loader.c: work around the different signatures for delegates
26577         constructors csc generates in compiled code vs the ones compiled in mscorlib.
26578
26579 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26580
26581         * class.h, class.c: add mono_class_get_field_from_name ().
26582         * *: Fix C comments and other ANSI C issues.
26583
26584 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
26585
26586         * endian.h, assembly.c: fix some endianness issues.
26587
26588 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
26589
26590         * loader.h, load.c: add delegate_class to mono_defaults.
26591         Handle runtime provided methods in mono_get_method ().
26592
26593 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
26594
26595         * loader.c (mono_get_method): use pinvoke for internal call
26596
26597         * icall.c: use pinvoke for internal call
26598
26599         * loader.c (method_from_memberref): set the method name
26600
26601 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
26602
26603         * metadata.c: help the compiler generate better code for
26604         mono_class_from_mono_type ().
26605
26606 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
26607
26608         * class.c (mono_class_metadata_init): delayed computing of the
26609         class size to mono_class_metadata_init ()
26610
26611 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
26612
26613         * class.c, class.h: add an interfaces member to MonoClass.
26614         * image.c, image.h: add assembly_name field to MonoImage
26615         from the assembly table.
26616         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
26617
26618 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26619
26620         * class.c: Handle Array in mono_class_from_mono_type ().
26621         * metadata.c, pedump.c: some endian fixes.
26622
26623 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
26624
26625         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
26626         * metadata.c: fix small problem introduced with the latest commit.
26627
26628 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
26629
26630         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
26631         We don't need a MonoMetadata pointer anymore to compare signatures in
26632         mono_metadata_signature_equal (), update callers.
26633         Reduced memory usage an number of allocations for MonoMethodHeader and
26634         MonoMethodSignature.
26635
26636 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
26637
26638         * metadata.c: added compare for szarray.
26639
26640 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
26641
26642         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
26643         and add a couple more types to it and mono_defaults. Give an hint on
26644         classes that need implementing in our corlib and are referenced
26645         in mscorlib.
26646
26647 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
26648
26649         * class.h, class.c: keep track if a class is also an Enum.
26650         * loader.c: Implement a couple more types for use in libffi
26651         marshalling. Gives better diagnostics when failing to dlopen
26652         a library. Set method->klass for P/Invoke methods, too.
26653
26654 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
26655
26656         * class.c, class.h: add a MonoType this_arg to MonoClass that
26657         represents a pointer to an object of the class' type that
26658         can be used by the interpreter and later the type cache.
26659         Add best guess alignment info for valuetype objects.
26660
26661 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
26662
26663         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
26664         into MonoType: one less level of indirection and allocation and
26665         simplifies quite a bit of code. Added cache for MonoTypes that are
26666         used frequently, so that we don't need to allocate them all the time.
26667
26668 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
26669
26670         * class.c (mono_class_create_from_typedef): System.Enum is also a
26671         value type, although it does not derive from System.ValueType
26672         (maybe a bug in the ms compiler?)
26673
26674         * metadata.c (mono_type_size): return the right size for value types
26675
26676         * loader.c (mono_get_method): only initialize method header if not abstract
26677
26678         * class.c (mono_class_from_mono_type): use mono_default values. 
26679
26680 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
26681
26682         * *: use MonoClass pointers instead of <type_tokens>
26683         
26684         * class.h: new flag: metadata_inited.
26685
26686         * class.c (mono_class_metadata_init): impl.
26687         (mono_class_instance_size): impl.
26688         (mono_class_data_size): impl.
26689
26690 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
26691
26692         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
26693         MonoClass now has the name and name_space fields. 
26694         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
26695         mono_get_method () takes and optional MonoClass as argument.
26696         Removed mono_typedef_from_name() and added mono_class_token_from_name()
26697         instead that takes advantage of a map from class names to typedef
26698         tokens in MonoImage.
26699
26700 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
26701
26702         * metadata.c: zero is not a valid alignment boundary.
26703         Merge MONO_TYPE_VOID in default decoding code.
26704
26705 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
26706
26707         * image.h: merged MonoMetadata into MonoImage
26708
26709         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
26710         identify the type of elements.
26711
26712 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
26713
26714         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
26715         * cil-coff.h: split MonoMSDOSHeader and add size info.
26716         * image.c: add some consistency checks.
26717         * metadata.c: fix row size computation: one programmer
26718         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
26719         add explanation for the locator routine.
26720         Fix decoding of size in method header.
26721         
26722 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
26723
26724         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
26725         (g_concat_dir_and_file): Bring g_concat_dir_and_file
26726         function from gnome-libs.  This uses the right path separator
26727         based on the OS, and also works around a bug in some systems where
26728         a double slash is not allowed. 
26729         (default_assembly_name_resolver): Use g_concat_dir_and_file
26730         (mono_assembly_open): ditto.
26731
26732 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
26733
26734         * metadata.c (mono_metadata_signature_equal): impl.
26735
26736         * *: void is now a realy MonoType (instead of using NULL)
26737         
26738         * metadata.c (do_mono_metadata_parse_type): use
26739         mono_metadata_parse_type to parse void value.
26740
26741 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
26742
26743         * metadata.c, metadata.h: in the signature and method header store
26744         only the space required for holding the loca vars and incoming arguments.
26745
26746 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
26747
26748         * metadata.c (do_mono_metadata_parse_type): treat void like any
26749         other type (instead of assigning NULL);
26750
26751 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
26752
26753         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
26754
26755 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
26756
26757         * image.c (do_mono_image_open): added a cache for arrays.
26758
26759 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26760
26761         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
26762         decode a single column from a row in a metadata table and changes
26763         to take advantage of it in the typedef locator (gives a nice speed up).
26764         Store offset info for function params.
26765
26766 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
26767
26768         * image.h (MONO_IMAGE_IS_CORLIB): removed 
26769
26770 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
26771
26772         * assembly.c: how could mono_assembly_close () had ever worked?
26773         * metadata.c, metadata.h: provide offset info for local vars.
26774         Implement mono_type_size () to take care of alignment as well
26775         as size (it was mono_field_type_size in cli/class.c before).
26776
26777 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
26778
26779         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
26780
26781         * assembly.h (CORLIB_NAME): set to corlib.dll
26782
26783         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
26784
26785 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
26786
26787         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
26788         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
26789         tokentype.h: massive namespace cleanup.
26790
26791 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
26792
26793         * metadata.h, metadata.c: decode exception clauses when parsing method header.
26794
26795 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
26796
26797         * metadata.c (mono_metadata_free_type): added check for type !=
26798         NULL (void) before calling mono_metadata_free_type()
26799
26800 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
26801
26802         * metadata.h, row_indexes.h: added header with enumerations to use
26803         to index in the columns from tables in metadata and to decode coded
26804         tokens: we should start using this instead of embedding magic numbers
26805         all over the code.
26806
26807 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
26808
26809         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
26810         Move metadata_t info from cli_image_info_t to MonoImage, where
26811         it's easily accessible. Changed all the uses accordingly.
26812         Added the method and class caches to MonoImage.
26813         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
26814         and mono_metadata_decode_value () signature to be more consistent
26815         with the other parse functions (and simplify code). Taken advantage
26816         of zero-length array allocation with GCC. Removed reduntant (and
26817         wrong) MonoFieldType struct and use MonoParam instead. Changed
26818         mono_metadata_parse_field_type () to use common code for parsing.
26819         Added mono_metadata_typedef_from_field () and
26820         mono_metadata_typedef_from_method () to lookup a typedef index from a
26821         field or method token.
26822         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
26823
26824 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
26825
26826         * metadata.c (mono_metadata_parse_field_type): Implement. 
26827         (do_mono_metadata_parse_type): Split engine from
26828         mono_metadata_parse_type, so that we can create smaller structures
26829         for things that just have one pointer to the MonoType (look at
26830         the MonoFieldType)
26831
26832 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
26833
26834         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
26835         as Jan Gray found out, it is incorrect. 
26836
26837 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
26838
26839         * assembly.c: Implement asssembly loading.  This loads an image
26840         and loads all the referenced assemblies.  Come to think of it, we
26841         could always do lazy loading of the assemblies. 
26842
26843         * image.c (mono_image_open): Keep loaded images in a hashtable.
26844
26845         * image.h (MonoImage): Add reference count.
26846
26847 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
26848
26849         * assembly.c (mono_assembly_open): Keep track of the file name in
26850         case the assembly has no ASSEMBLY table.
26851
26852         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
26853         from get.c here.
26854
26855 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
26856
26857         * metadata.c, metadata.h: decode local vars in method header
26858         parse function. Change callers accordingly.
26859
26860 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
26861
26862         * metadata.h, cil-coff.h: protect against multiple inclusion.
26863         Added some new structures to hold information decoded from metadata:
26864         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
26865         and relevant decoding/free functions.
26866         * metadata.c: implement decoding functions. Add warning for out of bounds
26867         index in mono_metadata_locate(). Implement mono_get_method () to retreive
26868         all the info about a method signature and invocation. Remove check on
26869         uninitialized local var in parse_mh() and fix memory leak.
26870
26871 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
26872
26873         * metadata.h: More macros.
26874
26875         * tokentype.h: New file.
26876
26877 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
26878
26879         * assembly.c: added a consistency check and initialize
26880         some structures with g_new0().
26881         * metadata.c: fixed a couple more bugs in table size computation
26882         and add other checks for out-of bound access to metadata.
26883
26884 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
26885
26886         * metatada.c: fix bugs computing table sizes. Spew a
26887         warning when index in string heap is out of bounds.
26888
26889 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
26890
26891         * metadata.h: Add a couple of macros to manipulate tokens. 
26892
26893 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
26894
26895         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
26896         cli_section_tables).
26897
26898 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
26899
26900         * metadata.c (mono_metadata_user_string): New function, provides
26901         access to the UserString heap. 
26902
26903 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
26904
26905         * metadata.c: Add inline documentation.
26906
26907 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
26908
26909         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
26910         files. 
26911
26912 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
26913
26914         * typeattr.h: New file, TypeAttribute flags. 
26915
26916 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
26917
26918         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
26919         mono_assembly_ensure_section): Section loading code.
26920         (load_section_tables): Load the sections.
26921
26922         * mono/metadata/metadata.c (mono_metadata_locate_token,
26923         mono_metadata_locate): Functions to locate the information
26924         definition given a token or a table and an index.
26925         (mono_metadata_compute_table_bases): New.
26926         (compute_size): New function to compute the sizes of the various
26927         tables.
26928
26929         * mono/metadata/metadata.h: Finish listing the different index
26930         types. 
26931
26932         * mono/metadata/pedump.c: Improve to dump new information.
26933
26934 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
26935
26936         * mono/metadata/metadata.c: Entered all the tables matching
26937         Beta2. 
26938
26939         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
26940
26941
26942